in src/language/semantics/xpLexer.ts [1645:1706]
constructor(value: string, type: CharLevelState) {
this.value = value
this.charType = type
switch (type) {
case CharLevelState.lWs:
this.tokenType = TokenLevelState.Whitespace
break
case CharLevelState.lName:
this.tokenType = TokenLevelState.nodeNameTest
break
case CharLevelState.dSep:
this.tokenType =
value === ':='
? TokenLevelState.complexExpression
: TokenLevelState.operator
break
case CharLevelState.dot:
this.tokenType = TokenLevelState.nodeType
break
case CharLevelState.sep:
case CharLevelState.lB:
case CharLevelState.lBr:
case CharLevelState.lPr:
case CharLevelState.rB:
case CharLevelState.rBr:
case CharLevelState.rPr:
this.tokenType = TokenLevelState.operator
break
case CharLevelState.lAttr:
this.tokenType = TokenLevelState.attributeNameTest
break
case CharLevelState.lNl:
this.tokenType = TokenLevelState.number
break
case CharLevelState.lVar:
this.tokenType = TokenLevelState.variable
break
case CharLevelState.lSq:
case CharLevelState.lDq:
case CharLevelState.lSqEnt:
case CharLevelState.lDqEnt:
case CharLevelState.rDqEnt:
case CharLevelState.rSqEnt:
case CharLevelState.rLiteralSqEnt:
case CharLevelState.rLiteralDqEnt:
this.tokenType = TokenLevelState.string
break
case CharLevelState.lUri:
this.tokenType = TokenLevelState.uriLiteral
break
case CharLevelState.lC:
this.tokenType = TokenLevelState.comment
break
case CharLevelState.lLiteralSqEnt:
case CharLevelState.lLiteralDqEnt:
this.tokenType = TokenLevelState.entityRef
break
default:
this.tokenType = TokenLevelState.Unset
break
}
}