in src/language/semantics/xslLexer.ts [582:634]
private testChar(
char: string,
nextChar: string,
isText: boolean
): XMLCharState {
let rc: XMLCharState
switch (char) {
case ' ':
case '\t':
case '\r':
if (isText) {
rc = XMLCharState.lText
} else {
rc = XMLCharState.lWs
}
break
case '\n':
rc = XMLCharState.lWs
break
case '<':
switch (nextChar) {
case '?':
rc = XMLCharState.lPi
break
case '!':
rc = XMLCharState.lExclam
break
case '/':
rc = XMLCharState.lCt
break
default:
rc = XMLCharState.lSt
}
break
case '{':
if (nextChar === '{') {
rc = XMLCharState.escTvt
} else {
rc = XMLCharState.tvt
}
break
case '&':
// TODO: check next char is not ';'
rc = XMLCharState.lEntity
this.entityContext = EntityPosition.text
break
default:
rc = XMLCharState.lText
break
}
return rc
}