Added lexing various symbol tokens
This commit is contained in:
parent
861400b4a1
commit
64de897de5
@ -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
|
||||
}
|
||||
|
||||
//
|
||||
|
Reference in New Issue
Block a user