Parser¶
The parser functions and their brief description.
-
lispereter.parser.
atom
(token)¶ Numbers become numbers; every other token is a symbol.
Parameters: token : str
The token to be turned to a LISP atom.
Returns: lisp_atom : Atom
A LISP atom.
Examples
>>> atom("11") 11
>>> atom(11) 11
>>> atom("11.0") 11.0
>>> atom("begin") 'begin'
-
lispereter.parser.
parse
(program)¶ Read a Scheme expression from a string.
Parameters: program : str
The expression to parse.
Returns: expression : Exp
A Scheme expression (list/atom).
Examples
>>> parse("(begin (define r 10) (* pi (* r r)))") ['begin', ['define', 'r', 10], ['*', 'pi', ['*', 'r', 'r']]]
-
lispereter.parser.
read_from_tokens
(tokens)¶ Read an expression from a sequence of tokens.
Parameters: tokens : list
A list of tokens.
Returns: parsable : Exp
An expression to be parsed.
Examples
>>> read_from_tokens(['(', 'begin', '(', 'define', 'r', '10', ')', '(', '*', 'pi', '(', '*', 'r', 'r', ')', ')', ')']) ['begin', ['define', 'r', 10], ['*', 'pi', ['*', 'r', 'r']]]
-
lispereter.parser.
tokenize
(chars)¶ Convert a string of characters into a list of tokens.
Parameters: chars : str
The input string to tokenize.
Returns: token_list : List
A list of tokens.
Examples
>>> tokenize("(begin (define r 10) (* pi (* r r)))") ['(', 'begin', '(', 'define', 'r', '10', ')', '(', '*', 'pi', '(', '*', 'r', 'r', ')', ')', ')']