Lexer passes all width tests
This commit is contained in:
parent
120976a0f3
commit
15eb96e8ac
@ -93,6 +93,7 @@ func (lexer *LexingOperation) tokenizeAlphaBeginning () (err error) {
|
||||
}
|
||||
|
||||
token.value = got
|
||||
token.location.SetWidth(len(got))
|
||||
|
||||
if len(got) == 2 {
|
||||
firstValid := got[0] == 'n' || got[0] == 'r' || got[0] == 'w'
|
||||
@ -143,6 +144,7 @@ func (lexer *LexingOperation) tokenizeSymbolBeginning () (err error) {
|
||||
}
|
||||
|
||||
token.value = indentLevel
|
||||
token.location.SetWidth(indentLevel)
|
||||
lexer.addToken(token)
|
||||
case '\n':
|
||||
// line break
|
||||
@ -183,6 +185,7 @@ func (lexer *LexingOperation) tokenizeSymbolBeginning () (err error) {
|
||||
if lexer.char == '.' {
|
||||
token.kind = TokenKindElipsis
|
||||
err = lexer.nextRune()
|
||||
token.location.SetWidth(2)
|
||||
}
|
||||
lexer.addToken(token)
|
||||
case ',':
|
||||
@ -218,6 +221,7 @@ func (lexer *LexingOperation) tokenizeSymbolBeginning () (err error) {
|
||||
if lexer.char == '+' {
|
||||
token.kind = TokenKindIncrement
|
||||
err = lexer.nextRune()
|
||||
token.location.SetWidth(2)
|
||||
}
|
||||
lexer.addToken(token)
|
||||
case '-':
|
||||
@ -260,6 +264,7 @@ func (lexer *LexingOperation) tokenizeSymbolBeginning () (err error) {
|
||||
if lexer.char == '<' {
|
||||
token.kind = TokenKindLShift
|
||||
err = lexer.nextRune()
|
||||
token.location.SetWidth(2)
|
||||
}
|
||||
lexer.addToken(token)
|
||||
case '>':
|
||||
@ -270,6 +275,7 @@ func (lexer *LexingOperation) tokenizeSymbolBeginning () (err error) {
|
||||
if lexer.char == '>' {
|
||||
token.kind = TokenKindRShift
|
||||
err = lexer.nextRune()
|
||||
token.location.SetWidth(2)
|
||||
}
|
||||
lexer.addToken(token)
|
||||
case '|':
|
||||
@ -280,6 +286,7 @@ func (lexer *LexingOperation) tokenizeSymbolBeginning () (err error) {
|
||||
if lexer.char == '|' {
|
||||
token.kind = TokenKindLogicalOr
|
||||
err = lexer.nextRune()
|
||||
token.location.SetWidth(2)
|
||||
}
|
||||
lexer.addToken(token)
|
||||
case '&':
|
||||
@ -290,6 +297,7 @@ func (lexer *LexingOperation) tokenizeSymbolBeginning () (err error) {
|
||||
if lexer.char == '&' {
|
||||
token.kind = TokenKindLogicalAnd
|
||||
err = lexer.nextRune()
|
||||
token.location.SetWidth(2)
|
||||
}
|
||||
lexer.addToken(token)
|
||||
default:
|
||||
@ -311,6 +319,7 @@ func (lexer *LexingOperation) tokenizeDashBeginning () (err error) {
|
||||
if lexer.char == '-' {
|
||||
token := lexer.newToken()
|
||||
token.kind = TokenKindDecrement
|
||||
token.location.SetWidth(2)
|
||||
|
||||
err = lexer.nextRune()
|
||||
if err != nil { return }
|
||||
@ -318,11 +327,13 @@ func (lexer *LexingOperation) tokenizeDashBeginning () (err error) {
|
||||
if lexer.char == '-' {
|
||||
token.kind = TokenKindSeparator
|
||||
lexer.nextRune()
|
||||
token.location.SetWidth(3)
|
||||
}
|
||||
lexer.addToken(token)
|
||||
} else if lexer.char == '>' {
|
||||
token := lexer.newToken()
|
||||
token.kind = TokenKindReturnDirection
|
||||
token.location.SetWidth(2)
|
||||
|
||||
err = lexer.nextRune()
|
||||
if err != nil { return }
|
||||
|
Reference in New Issue
Block a user