Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ee2e5c2001 | |||
| 330d885a60 |
+4
-5
@@ -15,13 +15,12 @@ func (p *Parser) lexStart() (lexer.StateFn, error) {
|
||||
r, _, err := p.src.ReadRune()
|
||||
switch {
|
||||
case err != nil:
|
||||
return p.emitError("", err)
|
||||
err = p.emitError("", err)
|
||||
return nil, err
|
||||
case IsNewLine(r):
|
||||
// new line
|
||||
p.lexMoreNewLine(r)
|
||||
p.lexNewLine(r)
|
||||
p.stepLine()
|
||||
case IsSpace(r):
|
||||
// whitespace
|
||||
p.stepRune()
|
||||
default:
|
||||
p.src.UnreadRune()
|
||||
@@ -30,7 +29,7 @@ func (p *Parser) lexStart() (lexer.StateFn, error) {
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Parser) lexMoreNewLine(r1 rune) {
|
||||
func (p *Parser) lexNewLine(r1 rune) {
|
||||
// r1 is warrantied to be either '\r' or '\n'
|
||||
r2, _, err := p.src.ReadRune()
|
||||
switch r1 {
|
||||
|
||||
+3
-3
@@ -60,15 +60,15 @@ func (p *Parser) emitString(typ TokenType) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (p *Parser) emitError(content string, err error) (lexer.StateFn, error) {
|
||||
func (p *Parser) emitError(content string, err error) error {
|
||||
err2 := p.OnError(p.pos, content, err)
|
||||
switch {
|
||||
case err2 != nil:
|
||||
// return wrapped error
|
||||
return nil, err2
|
||||
return err2
|
||||
default:
|
||||
// return original error
|
||||
return nil, err
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user