Exemplo n.º 1
0
func lexCommod(l *lex.Lexer) lex.StateFn {
	l.AcceptRun(indent)
	l.Ignore()
	if l.AcceptRunNot(whitespace+meta+at) > 0 {
		l.Emit(tokCommod)
	}
	return nil
}
Exemplo n.º 2
0
func lexDate(l *lex.Lexer) lex.StateFn {
	fail := false
	if l.AcceptRun(digit) == 0 {
		fail = true
	} else if !l.Accept("/") {
		fail = true
	} else if l.AcceptRun(digit) == 0 {
		fail = true
	} else if !l.Accept("/") {
		fail = true
	} else if l.AcceptRun(digit) == 0 {
		fail = true
	}

	if fail {
		l.AcceptRunNot(whitespace + meta)
		l.Errorf("invalid date on line %v", l.LineNumber())
		l.Ignore()
	} else {
		l.Emit(tokDate)
	}
	return nil
}
Exemplo n.º 3
0
func lexText(l *lex.Lexer) lex.StateFn {
	l.AcceptRunNot(lineend + meta)
	l.Emit(tokText)
	return lexNewline
}
Exemplo n.º 4
0
func lexSkipLine(l *lex.Lexer) lex.StateFn {
	l.AcceptRunNot(lineend)
	l.AcceptRun(lineend)
	l.Ignore()
	return nil
}
Exemplo n.º 5
0
func lexPayee(l *lex.Lexer) lex.StateFn {
	if l.AcceptRunNot(lineend+meta) > 0 {
		l.Emit(tokPayee)
	}
	return nil
}