stred

Stred: Streaming Tree Editor. Like sed but for JSON
git clone http://shtanton.xyz/git/repo/stred
Log | Files | Refs

commit b95e5ddaa1b182dfe58a386bfc107fa7d95c4393
parent 6a77b63c3cd4edb992b94e42c5a222a1480a3f33
Author: Charlie Stanton <charlie@shtanton.xyz>
Date:   Thu, 20 Apr 2023 09:36:50 +0100

Remove the need for a semicolon after each command

Diffstat:
Mmain/lex.go | 6+-----
Mmain/parse.go | 8++------
2 files changed, 3 insertions(+), 11 deletions(-)

diff --git a/main/lex.go b/main/lex.go @@ -460,13 +460,9 @@ func lexCommandEnd(l *lexer) stateFunc { l.emit(TokenEOF) return nil } - if l.accept(";") { - l.emit(TokenSemicolon) - return lexCommand - } if l.accept("}") { l.emit(TokenRBrace) return lexCommandEnd } - return l.errorf("Expected ; found something else") + return lexCommand } diff --git a/main/parse.go b/main/parse.go @@ -307,14 +307,10 @@ func (p *parser) parseCommands() []Command { return commands } commands = append(commands, p.parseCommand()) - semicolon := p.next() - if semicolon.typ == TokenEOF || semicolon.typ == TokenRBrace { - p.rewind(semicolon) + endToken := p.peek() + if endToken.typ == TokenEOF || endToken.typ == TokenRBrace { return commands } - if semicolon.typ != TokenSemicolon { - panic("Expected ; after command") - } } }