#include "parse.hpp"Functions | |
| bool | iswhitespace (char ch) |
| Check whether the character is whitespace. | |
| bool | is_legalnumeric (string str) |
| Check whether numericstr is an legal numericstr string. | |
| bool | is_legaloperator (string str) |
| Check whether str is a legal operator. | |
| void | readsinglesymbol (string &substring, string &sexpr) |
| void | clearwhitespace (string &sexpr) |
| Clear the whitespace at the begining and end of string sexpr. | |
| bool | is_legalexpr (string sexpr) |
| Check whether the s-expression legal. | |
| Cell * | makecell (string str) |
| Make the cell. | |
| Cell * | separate_parse (string &instr) |
| Separately parse the sexpr and build the tree. | |
| Cell * | parse (string sexpr) |
| Recursively parse sexpr and build the parse tree. | |
Variables | |
| bool | inparsecar |
| void clearwhitespace | ( | string & | sexpr | ) |
Clear the whitespace at the begining and end of string sexpr.
| sexpr | The string. |
References iswhitespace().
Referenced by is_legalexpr(), parse(), and separate_parse().
| bool is_legalexpr | ( | string | sexpr | ) |
Check whether the s-expression legal.
References clearwhitespace(), is_legalnumeric(), and is_legaloperator().
Referenced by parse().
| bool is_legalnumeric | ( | string | str | ) |
Check whether numericstr is an legal numericstr string.
| str | The string to be checked |
Referenced by is_legalexpr(), and makecell().
| bool is_legaloperator | ( | string | str | ) |
| bool iswhitespace | ( | char | ch | ) |
Check whether the character is whitespace.
| ch | The character to check. |
Referenced by clearwhitespace(), readfile(), readsinglesymbol(), and separate_parse().
| Cell* makecell | ( | string | str | ) |
Make the cell.
| str | The string to represent the symbol, int or double. |
References is_legalnumeric(), is_legaloperator(), make_double(), make_int(), and make_symbol().
Referenced by parse().
| Cell* parse | ( | string | sexpr | ) |
Recursively parse sexpr and build the parse tree.
| sexpr | The s-expression stored in a string variable (note that this version of parse has side effects: it may alter the contents of sexpr). |
References clearwhitespace(), is_legalexpr(), makecell(), and separate_parse().
Referenced by parse_eval_print(), and separate_parse().
| void readsinglesymbol | ( | string & | substring, | |
| string & | sexpr | |||
| ) |
References iswhitespace().
| Cell * separate_parse | ( | string & | instr | ) |
Separately parse the sexpr and build the tree.
| instr | The string which consists of s-expressions. |
References car(), cdr(), clearwhitespace(), cons(), inparsecar, iswhitespace(), parse(), and readsinglesymbol().
Referenced by parse().
| bool inparsecar |
Referenced by separate_parse().
1.5.8