我正在尝试用boost :: spirit库编写一个python解析器.这是代码:
template <typename Iterator>
class Parser : public qi::grammar<Iterator, space_type>
{
public:
Parser() : Parser::base_type(small_stmt)
{
NEWLINE = lit("<NEWLINE>");
INDENT = lit("<INDENT>");
DEDENT = lit("<DEDENT>");
ENDMARKER = lit("<EOT>");
NAME = identifier.alias();
NUMBER = integer|longinteger|floatnumber|imagnumber;
STRING = stringliteral.alias();
identifier = (alpha | '_') >> *(alpha | digit | '_');
stringliteral = -stringprefix >> (shortstring | longstring);
stringprefix = lit("r") | lit("u") | lit("ur") | lit("R") | lit("U") | lit("UR") | lit("Ur") | lit("uR") | lit("b") | lit("B") | lit("br") …Run Code Online (Sandbox Code Playgroud)