📄 syntaxnode.h
字号:
typedef enum { StmtK,ExpK }NodeKind;
typedef enum { IfK,RepeatK,AssignK,ReadK,WriteK }StmtKind;
typedef enum { OpK,ConstK,IdK }ExpKind;
#define MAX_CHILD 3
typedef struct TreeNode{
struct TreeNode *child[MAX_CHILD];
struct TreeNode *sibling;
int lineno;
NodeKind nodeKind;
union{ StmtKind stmt; ExpKind exp; } kind;
union{ int val; char *name;} attr;
}TreeNode;
void Match(TokenType expected);
TreeNode *StmtNode(StmtKind kind);
TreeNode *ExpNode(ExpKind kind);
void parseTree(TreeNode *root);
TreeNode *parse();
TreeNode* stmt_sequence();
TreeNode* statement();
TreeNode* if_stmt();
TreeNode* repeat_stmt();
TreeNode* assign_stmt();
TreeNode* read_stmt();
TreeNode* write_stmt();
TreeNode* exp();
TreeNode* simple_exp();
TreeNode* term();
TreeNode* factor();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -