Added lexing various symbol tokens

This commit is contained in:
Sasha Koshka 2022-08-09 22:18:12 -04:00
parent 861400b4a1
commit 64de897de5
1 changed files with 61 additions and 38 deletions

View File

@ -40,6 +40,17 @@ func (lexer *LexingOperation) tokenize () (err error) {
} else if lowercase || uppercase {
// TODO: tokenize multi
} else {
err = lexer.tokenizeSymbolBeginning()
if err != nil { return err }
}
// TODO: skip whitespace
}
return
}
func (lexer *LexingOperation) tokenizeSymbolBeginning () (err error) {
switch lexer.char {
case '\t':
for lexer.char == '\t' {
@ -55,17 +66,35 @@ func (lexer *LexingOperation) tokenize () (err error) {
// TODO: tokenize rune literal
lexer.nextRune()
case ':':
// TODO: colon token
lexer.addToken (Token {
kind: TokenKindColon,
})
lexer.nextRune()
case '.':
// TODO: dot token
lexer.addToken (Token {
kind: TokenKindDot,
})
lexer.nextRune()
case '[':
// TODO: left bracket token
lexer.addToken (Token {
kind: TokenKindLBracket,
})
lexer.nextRune()
case ']':
// TODO: right bracket token
lexer.addToken (Token {
kind: TokenKindRBracket,
})
lexer.nextRune()
case '{':
// TODO: left brace token
lexer.addToken (Token {
kind: TokenKindLBrace,
})
lexer.nextRune()
case '}':
// TODO: right brace token
lexer.addToken (Token {
kind: TokenKindRBrace,
})
lexer.nextRune()
// TODO: add more for things like math symbols, return
// direction operators, indentation, etc
default:
@ -76,10 +105,6 @@ func (lexer *LexingOperation) tokenize () (err error) {
file.ErrorKindError)
return
}
}
// TODO: skip whitespace
}
return
}
@ -98,5 +123,3 @@ func (lexer *LexingOperation) nextRune () (err error) {
}
return
}
//