S-expressions: Difference between revisions
Content added Content deleted
m (→Python :: Functional: (factored out a helper function)) |
m (→Python :: Functional: (Disaggregated the expression parser)) |
||
Line 5,320: | Line 5,320: | ||
unparsed tokens that remain. |
unparsed tokens that remain. |
||
''' |
''' |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
return until(finished)(parseToken)( |
return until(finished)(parseToken)( |
||
([], tokens) |
([], tokens) |
||
) |
) |
||
# finished :: ([Expr], [String]) -> Bool |
|||
⚫ | |||
'''True if no tokens remain, |
|||
or the next token is a closing bracket. |
|||
''' |
|||
⚫ | |||
⚫ | |||
# parseToken :: ([Expr], [String]) -> ([Expr], [String]) |
|||
⚫ | |||
'''A tuple of an expanded expression |
|||
and a reduced token list. |
|||
''' |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
# --------------------- ATOM PARSER ---------------------- |
# --------------------- ATOM PARSER ---------------------- |