⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cparse.py

📁 linux下基于c++的处理器仿真平台。具有处理器流水线
💻 PY
📖 第 1 页 / 共 2 页
字号:
# Optional fields in abstract declaratorsdef p_constant_expression_opt_1(t):    'constant_expression_opt : empty'    passdef p_constant_expression_opt_2(t):    'constant_expression_opt : constant_expression'    passdef p_parameter_type_list_opt_1(t):    'parameter_type_list_opt : empty'    passdef p_parameter_type_list_opt_2(t):    'parameter_type_list_opt : parameter_type_list'    pass# statement:def p_statement(t):    '''    statement : labeled_statement              | expression_statement              | compound_statement              | selection_statement              | iteration_statement              | jump_statement              '''    pass# labeled-statement:def p_labeled_statement_1(t):    'labeled_statement : ID COLON statement'    passdef p_labeled_statement_2(t):    'labeled_statement : CASE constant_expression COLON statement'    passdef p_labeled_statement_3(t):    'labeled_statement : DEFAULT COLON statement'    pass# expression-statement:def p_expression_statement(t):    'expression_statement : expression_opt SEMI'    pass# compound-statement:def p_compound_statement_1(t):    'compound_statement : LBRACE declaration_list statement_list RBRACE'    passdef p_compound_statement_2(t):    'compound_statement : LBRACE statement_list RBRACE'    passdef p_compound_statement_3(t):    'compound_statement : LBRACE declaration_list RBRACE'    passdef p_compound_statement_4(t):    'compound_statement : LBRACE RBRACE'    pass# statement-list:def p_statement_list_1(t):    'statement_list : statement'    passdef p_statement_list_2(t):    'statement_list : statement_list statement'    pass# selection-statementdef p_selection_statement_1(t):    'selection_statement : IF LPAREN expression RPAREN statement'    passdef p_selection_statement_2(t):    'selection_statement : IF LPAREN expression RPAREN statement ELSE statement '    passdef p_selection_statement_3(t):    'selection_statement : SWITCH LPAREN expression RPAREN statement '    pass# iteration_statement:def p_iteration_statement_1(t):    'iteration_statement : WHILE LPAREN expression RPAREN statement'    passdef p_iteration_statement_2(t):    'iteration_statement : FOR LPAREN expression_opt SEMI expression_opt SEMI expression_opt RPAREN statement '    passdef p_iteration_statement_3(t):    'iteration_statement : DO statement WHILE LPAREN expression RPAREN SEMI'    pass# jump_statement:def p_jump_statement_1(t):    'jump_statement : GOTO ID SEMI'    passdef p_jump_statement_2(t):    'jump_statement : CONTINUE SEMI'    passdef p_jump_statement_3(t):    'jump_statement : BREAK SEMI'    passdef p_jump_statement_4(t):    'jump_statement : RETURN expression_opt SEMI'    passdef p_expression_opt_1(t):    'expression_opt : empty'    passdef p_expression_opt_2(t):    'expression_opt : expression'    pass# expression:def p_expression_1(t):    'expression : assignment_expression'    passdef p_expression_2(t):    'expression : expression COMMA assignment_expression'    pass# assigment_expression:def p_assignment_expression_1(t):    'assignment_expression : conditional_expression'    passdef p_assignment_expression_2(t):    'assignment_expression : unary_expression assignment_operator assignment_expression'    pass# assignment_operator:def p_assignment_operator(t):    '''    assignment_operator : EQUALS                        | TIMESEQUAL                        | DIVEQUAL                        | MODEQUAL                        | PLUSEQUAL                        | MINUSEQUAL                        | LSHIFTEQUAL                        | RSHIFTEQUAL                        | ANDEQUAL                        | OREQUAL                        | XOREQUAL                        '''    pass# conditional-expressiondef p_conditional_expression_1(t):    'conditional_expression : logical_or_expression'    passdef p_conditional_expression_2(t):    'conditional_expression : logical_or_expression CONDOP expression COLON conditional_expression '    pass# constant-expressiondef p_constant_expression(t):    'constant_expression : conditional_expression'    pass# logical-or-expressiondef p_logical_or_expression_1(t):    'logical_or_expression : logical_and_expression'    passdef p_logical_or_expression_2(t):    'logical_or_expression : logical_or_expression LOR logical_and_expression'    pass# logical-and-expressiondef p_logical_and_expression_1(t):    'logical_and_expression : inclusive_or_expression'    passdef p_logical_and_expression_2(t):    'logical_and_expression : logical_and_expression LAND inclusive_or_expression'    pass# inclusive-or-expression:def p_inclusive_or_expression_1(t):    'inclusive_or_expression : exclusive_or_expression'    passdef p_inclusive_or_expression_2(t):    'inclusive_or_expression : inclusive_or_expression OR exclusive_or_expression'    pass# exclusive-or-expression:def p_exclusive_or_expression_1(t):    'exclusive_or_expression :  and_expression'    passdef p_exclusive_or_expression_2(t):    'exclusive_or_expression :  exclusive_or_expression XOR and_expression'    pass# AND-expressiondef p_and_expression_1(t):    'and_expression : equality_expression'    passdef p_and_expression_2(t):    'and_expression : and_expression AND equality_expression'    pass# equality-expression:def p_equality_expression_1(t):    'equality_expression : relational_expression'    passdef p_equality_expression_2(t):    'equality_expression : equality_expression EQ relational_expression'    passdef p_equality_expression_3(t):    'equality_expression : equality_expression NE relational_expression'    pass# relational-expression:def p_relational_expression_1(t):    'relational_expression : shift_expression'    passdef p_relational_expression_2(t):    'relational_expression : relational_expression LT shift_expression'    passdef p_relational_expression_3(t):    'relational_expression : relational_expression GT shift_expression'    passdef p_relational_expression_4(t):    'relational_expression : relational_expression LE shift_expression'    passdef p_relational_expression_5(t):    'relational_expression : relational_expression GE shift_expression'    pass# shift-expressiondef p_shift_expression_1(t):    'shift_expression : additive_expression'    passdef p_shift_expression_2(t):    'shift_expression : shift_expression LSHIFT additive_expression'    passdef p_shift_expression_3(t):    'shift_expression : shift_expression RSHIFT additive_expression'    pass# additive-expressiondef p_additive_expression_1(t):    'additive_expression : multiplicative_expression'    passdef p_additive_expression_2(t):    'additive_expression : additive_expression PLUS multiplicative_expression'    passdef p_additive_expression_3(t):    'additive_expression : additive_expression MINUS multiplicative_expression'    pass# multiplicative-expressiondef p_multiplicative_expression_1(t):    'multiplicative_expression : cast_expression'    passdef p_multiplicative_expression_2(t):    'multiplicative_expression : multiplicative_expression TIMES cast_expression'    passdef p_multiplicative_expression_3(t):    'multiplicative_expression : multiplicative_expression DIVIDE cast_expression'    passdef p_multiplicative_expression_4(t):    'multiplicative_expression : multiplicative_expression MOD cast_expression'    pass# cast-expression:def p_cast_expression_1(t):    'cast_expression : unary_expression'    passdef p_cast_expression_2(t):    'cast_expression : LPAREN type_name RPAREN cast_expression'    pass# unary-expression:def p_unary_expression_1(t):    'unary_expression : postfix_expression'    passdef p_unary_expression_2(t):    'unary_expression : PLUSPLUS unary_expression'    passdef p_unary_expression_3(t):    'unary_expression : MINUSMINUS unary_expression'    passdef p_unary_expression_4(t):    'unary_expression : unary_operator cast_expression'    passdef p_unary_expression_5(t):    'unary_expression : SIZEOF unary_expression'    passdef p_unary_expression_6(t):    'unary_expression : SIZEOF LPAREN type_name RPAREN'    pass    #unary-operatordef p_unary_operator(t):    '''unary_operator : AND                    | TIMES                    | PLUS                     | MINUS                    | NOT                    | LNOT '''    pass# postfix-expression:def p_postfix_expression_1(t):    'postfix_expression : primary_expression'    passdef p_postfix_expression_2(t):    'postfix_expression : postfix_expression LBRACKET expression RBRACKET'    passdef p_postfix_expression_3(t):    'postfix_expression : postfix_expression LPAREN argument_expression_list RPAREN'    passdef p_postfix_expression_4(t):    'postfix_expression : postfix_expression LPAREN RPAREN'    passdef p_postfix_expression_5(t):    'postfix_expression : postfix_expression PERIOD ID'    passdef p_postfix_expression_6(t):    'postfix_expression : postfix_expression ARROW ID'    passdef p_postfix_expression_7(t):    'postfix_expression : postfix_expression PLUSPLUS'    passdef p_postfix_expression_8(t):    'postfix_expression : postfix_expression MINUSMINUS'    pass# primary-expression:def p_primary_expression(t):    '''primary_expression :  ID                        |  constant                        |  SCONST                        |  LPAREN expression RPAREN'''    pass# argument-expression-list:def p_argument_expression_list(t):    '''argument_expression_list :  assignment_expression                              |  argument_expression_list COMMA assignment_expression'''    pass# constant:def p_constant(t):    '''constant : ICONST              | FCONST              | CCONST'''   passdef p_empty(t):    'empty : '    passdef p_error(t):    print "Whoa. We're hosed"import profile# Build the grammarprofile.run("yacc.yacc()")

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -