chore: remove checkWsBeforeIfSymbol hack
Now the `app` parsing rule always require some whitespace before the first argument. cc @Kha
This commit is contained in:
parent
f0ebf426b7
commit
36bddc91cb
2 changed files with 1 additions and 22 deletions
|
|
@ -1078,27 +1078,6 @@ let sym := sym.trim;
|
|||
{ info := symbolNoWsInfo sym,
|
||||
fn := symbolNoWsFn sym }
|
||||
|
||||
def checkWsBeforeIfSymbolFn (sym : String) (errorMsg : String) : ParserFn :=
|
||||
fun c s =>
|
||||
let left := s.stxStack.back;
|
||||
if checkTailNoWs left then
|
||||
let iniSz := s.stackSize;
|
||||
let iniPos := s.pos;
|
||||
let s := strAux sym "" 0 c s;
|
||||
if s.hasError then
|
||||
-- next token is not `sym`
|
||||
s.restore iniSz iniPos
|
||||
else
|
||||
let s := s.restore iniSz iniPos;
|
||||
s.mkError errorMsg
|
||||
else
|
||||
s -- there whitespace before `sym`
|
||||
|
||||
-- This parser fails if the next token is `sym`, but there is no space before it.
|
||||
def checkWsBeforeIfSymbol (sym : String) (errorMsg : String) : Parser :=
|
||||
{ info := epsilonInfo,
|
||||
fn := checkWsBeforeIfSymbolFn sym errorMsg }
|
||||
|
||||
def unicodeSymbolFnAux (sym asciiSym : String) (expected : List String) : ParserFn :=
|
||||
satisfySymbolFn (fun s => s == sym || s == asciiSym) expected
|
||||
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ def bracketedDoSeq := parser! "{" >> doSeq >> "}"
|
|||
@[builtinTermParser] def uminus := parser!:65 "-" >> termParser 100
|
||||
|
||||
def namedArgument := parser! try ("(" >> ident >> " := ") >> termParser >> ")"
|
||||
@[builtinTermParser] def app := tparser!:(maxPrec-1) checkWsBeforeIfSymbol "[" "expected space before '['" >> many1 (namedArgument <|> termParser maxPrec)
|
||||
@[builtinTermParser] def app := tparser!:(maxPrec-1) checkWsBefore "expected space" >> many1 (namedArgument <|> termParser maxPrec)
|
||||
|
||||
@[builtinTermParser] def proj := tparser! symbolNoWs "." >> (fieldIdx <|> ident)
|
||||
@[builtinTermParser] def arrow := tparser! unicodeInfixR " → " " -> " 25
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue