Lexer now eats :arf symbol at file beginning
This commit is contained in:
parent
c09c9860b8
commit
f4f19a809a
@ -28,6 +28,20 @@ func Tokenize (file *file.File) (tokens []Token, err error) {
|
|||||||
// tokenize converts a file into a slice of tokens (lexemes). It will always
|
// tokenize converts a file into a slice of tokens (lexemes). It will always
|
||||||
// return a non-nil error, but if nothing went wrong it will return io.EOF.
|
// return a non-nil error, but if nothing went wrong it will return io.EOF.
|
||||||
func (lexer *LexingOperation) tokenize () (err error) {
|
func (lexer *LexingOperation) tokenize () (err error) {
|
||||||
|
// check to see if the beginning of the file says :arf
|
||||||
|
var shebangCheck = []rune(":arf\n")
|
||||||
|
for index := 0; index < 5; index ++ {
|
||||||
|
err = lexer.nextRune()
|
||||||
|
|
||||||
|
if err != nil || shebangCheck[index] != lexer.char {
|
||||||
|
err = file.NewError (
|
||||||
|
lexer.file.Location(), 1,
|
||||||
|
"not an arf file",
|
||||||
|
file.ErrorKindError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = lexer.nextRune()
|
err = lexer.nextRune()
|
||||||
if err != nil { return }
|
if err != nil { return }
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user