InClosingTagName,
AfterClosingTagName,
- // Attributes
- BeforeAttributeName,
- InAttributeName,
- InDirectiveName,
- InDirectiveArg,
- InDirectiveDynamicArg,
- InDirectiveModifier,
- AfterAttributeName,
- BeforeAttributeValue,
- InAttributeValueDq, // "
- InAttributeValueSq, // '
- InAttributeValueNq,
+ // Attrs
+ BeforeAttrName,
+ InAttrName,
+ InDirName,
+ InDirArg,
+ InDirDynamicArg,
+ InDirModifier,
+ AfterAttrName,
+ BeforeAttrValue,
+ InAttrValueDq, // "
+ InAttrValueSq, // '
+ InAttrValueNq,
// Declarations
BeforeDeclaration, // !
private handleTagName(c: number) {
this.cbs.onopentagname(this.sectionStart, this.index)
this.sectionStart = -1
- this.state = State.BeforeAttributeName
- this.stateBeforeAttributeName(c)
+ this.state = State.BeforeAttrName
+ this.stateBeforeAttrName(c)
}
private stateBeforeClosingTagName(c: number): void {
if (isWhitespace(c)) {
this.sectionStart = this.index + 1
}
}
- private stateBeforeAttributeName(c: number): void {
+ private stateBeforeAttrName(c: number): void {
if (c === CharCodes.Gt) {
this.cbs.onopentagend(this.index)
if (this.inRCDATA) {
this.index
)
}
- this.handleAttributeStart(c)
+ this.handleAttrStart(c)
}
}
- private handleAttributeStart(c: number) {
+ private handleAttrStart(c: number) {
if (
c === CharCodes.LowerV &&
this.buffer.charCodeAt(this.index + 1) === CharCodes.Dash
) {
- this.state = State.InDirectiveName
+ this.state = State.InDirName
this.sectionStart = this.index
} else if (
c === CharCodes.Dot ||
c === CharCodes.Number
) {
this.cbs.ondirname(this.index, this.index + 1)
- this.state = State.InDirectiveArg
+ this.state = State.InDirArg
this.sectionStart = this.index + 1
} else {
- this.state = State.InAttributeName
+ this.state = State.InAttrName
this.sectionStart = this.index
}
}
this.sectionStart = this.index + 1
this.inRCDATA = false // Reset special state, in case of self-closing special tags
} else if (!isWhitespace(c)) {
- this.state = State.BeforeAttributeName
- this.stateBeforeAttributeName(c)
+ this.state = State.BeforeAttrName
+ this.stateBeforeAttrName(c)
}
}
- private stateInAttributeName(c: number): void {
+ private stateInAttrName(c: number): void {
if (c === CharCodes.Eq || isEndOfTagSection(c)) {
this.cbs.onattribname(this.sectionStart, this.index)
- this.handleAttributeNameEnd(c)
+ this.handleAttrNameEnd(c)
} else if (
(__DEV__ || !__BROWSER__) &&
(c === CharCodes.DoubleQuote ||
)
}
}
- private stateInDirectiveName(c: number): void {
+ private stateInDirName(c: number): void {
if (c === CharCodes.Eq || isEndOfTagSection(c)) {
this.cbs.ondirname(this.sectionStart, this.index)
- this.handleAttributeNameEnd(c)
+ this.handleAttrNameEnd(c)
} else if (c === CharCodes.Colon) {
this.cbs.ondirname(this.sectionStart, this.index)
- this.state = State.InDirectiveArg
+ this.state = State.InDirArg
this.sectionStart = this.index + 1
} else if (c === CharCodes.Dot) {
this.cbs.ondirname(this.sectionStart, this.index)
- this.state = State.InDirectiveModifier
+ this.state = State.InDirModifier
this.sectionStart = this.index + 1
}
}
- private stateInDirectiveArg(c: number): void {
+ private stateInDirArg(c: number): void {
if (c === CharCodes.Eq || isEndOfTagSection(c)) {
this.cbs.ondirarg(this.sectionStart, this.index)
- this.handleAttributeNameEnd(c)
+ this.handleAttrNameEnd(c)
} else if (c === CharCodes.LeftSqaure) {
- this.state = State.InDirectiveDynamicArg
+ this.state = State.InDirDynamicArg
} else if (c === CharCodes.Dot) {
this.cbs.ondirarg(this.sectionStart, this.index)
- this.state = State.InDirectiveModifier
+ this.state = State.InDirModifier
this.sectionStart = this.index + 1
}
}
- private stateInDynamicDirectiveArg(c: number): void {
+ private stateInDynamicDirArg(c: number): void {
if (c === CharCodes.RightSquare) {
- this.state = State.InDirectiveArg
+ this.state = State.InDirArg
} else if (c === CharCodes.Eq || isEndOfTagSection(c)) {
this.cbs.ondirarg(this.sectionStart, this.index + 1)
- this.handleAttributeNameEnd(c)
+ this.handleAttrNameEnd(c)
if (__DEV__ || !__BROWSER__) {
this.cbs.onerr(
ErrorCodes.X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END,
}
}
}
- private stateInDirectiveModifier(c: number): void {
+ private stateInDirModifier(c: number): void {
if (c === CharCodes.Eq || isEndOfTagSection(c)) {
this.cbs.ondirmodifier(this.sectionStart, this.index)
- this.handleAttributeNameEnd(c)
+ this.handleAttrNameEnd(c)
} else if (c === CharCodes.Dot) {
this.cbs.ondirmodifier(this.sectionStart, this.index)
this.sectionStart = this.index + 1
}
}
- private handleAttributeNameEnd(c: number): void {
+ private handleAttrNameEnd(c: number): void {
this.sectionStart = this.index
- this.state = State.AfterAttributeName
+ this.state = State.AfterAttrName
this.cbs.onattribnameend(this.index)
- this.stateAfterAttributeName(c)
+ this.stateAfterAttrName(c)
}
- private stateAfterAttributeName(c: number): void {
+ private stateAfterAttrName(c: number): void {
if (c === CharCodes.Eq) {
- this.state = State.BeforeAttributeValue
+ this.state = State.BeforeAttrValue
} else if (c === CharCodes.Slash || c === CharCodes.Gt) {
this.cbs.onattribend(QuoteType.NoValue, this.sectionStart)
this.sectionStart = -1
- this.state = State.BeforeAttributeName
- this.stateBeforeAttributeName(c)
+ this.state = State.BeforeAttrName
+ this.stateBeforeAttrName(c)
} else if (!isWhitespace(c)) {
this.cbs.onattribend(QuoteType.NoValue, this.sectionStart)
- this.handleAttributeStart(c)
+ this.handleAttrStart(c)
}
}
- private stateBeforeAttributeValue(c: number): void {
+ private stateBeforeAttrValue(c: number): void {
if (c === CharCodes.DoubleQuote) {
- this.state = State.InAttributeValueDq
+ this.state = State.InAttrValueDq
this.sectionStart = this.index + 1
} else if (c === CharCodes.SingleQuote) {
- this.state = State.InAttributeValueSq
+ this.state = State.InAttrValueSq
this.sectionStart = this.index + 1
} else if (!isWhitespace(c)) {
this.sectionStart = this.index
- this.state = State.InAttributeValueNq
- this.stateInAttributeValueNoQuotes(c) // Reconsume token
+ this.state = State.InAttrValueNq
+ this.stateInAttrValueNoQuotes(c) // Reconsume token
}
}
- private handleInAttributeValue(c: number, quote: number) {
+ private handleInAttrValue(c: number, quote: number) {
if (c === quote || (__BROWSER__ && this.fastForwardTo(quote))) {
this.cbs.onattribdata(this.sectionStart, this.index)
this.sectionStart = -1
quote === CharCodes.DoubleQuote ? QuoteType.Double : QuoteType.Single,
this.index + 1
)
- this.state = State.BeforeAttributeName
+ this.state = State.BeforeAttrName
} else if (!__BROWSER__ && c === CharCodes.Amp) {
this.startEntity()
}
}
- private stateInAttributeValueDoubleQuotes(c: number): void {
- this.handleInAttributeValue(c, CharCodes.DoubleQuote)
+ private stateInAttrValueDoubleQuotes(c: number): void {
+ this.handleInAttrValue(c, CharCodes.DoubleQuote)
}
- private stateInAttributeValueSingleQuotes(c: number): void {
- this.handleInAttributeValue(c, CharCodes.SingleQuote)
+ private stateInAttrValueSingleQuotes(c: number): void {
+ this.handleInAttrValue(c, CharCodes.SingleQuote)
}
- private stateInAttributeValueNoQuotes(c: number): void {
+ private stateInAttrValueNoQuotes(c: number): void {
if (isWhitespace(c) || c === CharCodes.Gt) {
this.cbs.onattribdata(this.sectionStart, this.index)
this.sectionStart = -1
this.cbs.onattribend(QuoteType.Unquoted, this.index)
- this.state = State.BeforeAttributeName
- this.stateBeforeAttributeName(c)
+ this.state = State.BeforeAttrName
+ this.stateBeforeAttrName(c)
} else if (
((__DEV__ || !__BROWSER__) && c === CharCodes.DoubleQuote) ||
c === CharCodes.SingleQuote ||
this.stateCDATASequence(c)
break
}
- case State.InAttributeValueDq: {
- this.stateInAttributeValueDoubleQuotes(c)
+ case State.InAttrValueDq: {
+ this.stateInAttrValueDoubleQuotes(c)
break
}
- case State.InAttributeName: {
- this.stateInAttributeName(c)
+ case State.InAttrName: {
+ this.stateInAttrName(c)
break
}
- case State.InDirectiveName: {
- this.stateInDirectiveName(c)
+ case State.InDirName: {
+ this.stateInDirName(c)
break
}
- case State.InDirectiveArg: {
- this.stateInDirectiveArg(c)
+ case State.InDirArg: {
+ this.stateInDirArg(c)
break
}
- case State.InDirectiveDynamicArg: {
- this.stateInDynamicDirectiveArg(c)
+ case State.InDirDynamicArg: {
+ this.stateInDynamicDirArg(c)
break
}
- case State.InDirectiveModifier: {
- this.stateInDirectiveModifier(c)
+ case State.InDirModifier: {
+ this.stateInDirModifier(c)
break
}
case State.InCommentLike: {
this.stateInSpecialComment(c)
break
}
- case State.BeforeAttributeName: {
- this.stateBeforeAttributeName(c)
+ case State.BeforeAttrName: {
+ this.stateBeforeAttrName(c)
break
}
case State.InTagName: {
this.stateBeforeTagName(c)
break
}
- case State.AfterAttributeName: {
- this.stateAfterAttributeName(c)
+ case State.AfterAttrName: {
+ this.stateAfterAttrName(c)
break
}
- case State.InAttributeValueSq: {
- this.stateInAttributeValueSingleQuotes(c)
+ case State.InAttrValueSq: {
+ this.stateInAttrValueSingleQuotes(c)
break
}
- case State.BeforeAttributeValue: {
- this.stateBeforeAttributeValue(c)
+ case State.BeforeAttrValue: {
+ this.stateBeforeAttrValue(c)
break
}
case State.BeforeClosingTagName: {
this.stateBeforeSpecialT(c)
break
}
- case State.InAttributeValueNq: {
- this.stateInAttributeValueNoQuotes(c)
+ case State.InAttrValueNq: {
+ this.stateInAttrValueNoQuotes(c)
break
}
case State.InSelfClosingTag: {
this.cbs.ontext(this.sectionStart, this.index)
this.sectionStart = this.index
} else if (
- this.state === State.InAttributeValueDq ||
- this.state === State.InAttributeValueSq ||
- this.state === State.InAttributeValueNq
+ this.state === State.InAttrValueDq ||
+ this.state === State.InAttrValueSq ||
+ this.state === State.InAttrValueNq
) {
this.cbs.onattribdata(this.sectionStart, this.index)
this.sectionStart = this.index
}
} else if (
this.state === State.InTagName ||
- this.state === State.BeforeAttributeName ||
- this.state === State.BeforeAttributeValue ||
- this.state === State.AfterAttributeName ||
- this.state === State.InAttributeName ||
- this.state === State.InDirectiveName ||
- this.state === State.InDirectiveArg ||
- this.state === State.InDirectiveDynamicArg ||
- this.state === State.InDirectiveModifier ||
- this.state === State.InAttributeValueSq ||
- this.state === State.InAttributeValueDq ||
- this.state === State.InAttributeValueNq ||
+ this.state === State.BeforeAttrName ||
+ this.state === State.BeforeAttrValue ||
+ this.state === State.AfterAttrName ||
+ this.state === State.InAttrName ||
+ this.state === State.InDirName ||
+ this.state === State.InDirArg ||
+ this.state === State.InDirDynamicArg ||
+ this.state === State.InDirModifier ||
+ this.state === State.InAttrValueSq ||
+ this.state === State.InAttrValueDq ||
+ this.state === State.InAttrValueNq ||
this.state === State.InClosingTagName
) {
/*