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