diff options
| author | Rose Hogenson <rhogenson@posteo.net> | 2022-09-11 21:06:15 -0700 |
|---|---|---|
| committer | Rose Hogenson <rhogenson@posteo.net> | 2022-09-11 21:06:15 -0700 |
| commit | 86991830c05279583910758551a9c3974437623e (patch) | |
| tree | f9f0ca2cb0d366045ce4b4473057e087cda9e527 /parser.sml | |
| parent | 8d0e50cdf3b84a5a840143598235c51f5e6717ca (diff) | |
| download | sml-86991830c05279583910758551a9c3974437623e.tar.zst | |
Fix a performance issues in parser.sml.
Diffstat (limited to 'parser.sml')
| -rw-r--r-- | parser.sml | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -77,12 +77,12 @@ struct fun newState (fileName : string) (fileStream : TextIO.instream) : state = State (TextIO.getInstream fileStream, newLoc fileName, makeUserState defaultInfixOperators) - fun updateUserState (f : userState -> infixTable) (State (stream, loc, us) : state) : userState parserResponse = - let val st' = makeUserState (f us) + fun updateUserState (f : userState -> userState) (State (stream, loc, us) : state) : userState parserResponse = + let val st' = f us in (Empty, Either.Right (st', State (stream, loc, st'), Hints [])) end - val getUserState : userState parser = updateUserState (fn (UserState (_, opTable)) => opTable) + val getUserState : userState parser = updateUserState (fn x => x) fun runParser (p : 'a parser) (fileName : string) : (string, 'a) Either.either = unpackParserResponse (p (newState fileName (TextIO.openIn fileName))) |
