📄 astree.h
字号:
/**************************************************************************** * File name: ASTree.h * * Description: header file for ASTree.c * * Input: none * * Output: none * * Author: Luojian Chen * * Date: April 16, 1997 * ****************************************************************************/#ifndef _AS_TREE_H_#define _AS_TREE_H_#include "symbolTable.h"#define FIRST_LOCAL_VAR_OFFSET 34#define FIRST_CLASS_VAR_OFFSET 2#define STRING_IF "if"#define STRING_MAIN "main"#define STRING_THIS "this"#define STRING_PRINT "print"#define STRING_WHILE "while"#define STRING_LENGTH "length"#define STRING_SQUARE_BRACKETS "[]"#define STRING_EQUAL "="#define STRING_EQUAL_EQUAL "=="#define STRING_NOT_EQUAL "!="#define STRING_LESS_EQUAL "<="#define STRING_GREATER_EQUAL ">="#define STRING_LESS "<"#define STRING_GREATER ">"#define STRING_LEFT_PARENTHESIS "("typedef enum { NODE_TYPE_PROGRAM = 0, NODE_TYPE_CLASS_DEC_LIST, NODE_TYPE_CLASS_DEC, NODE_TYPE_CLASS_BODY, NODE_TYPE_VAR_DEC_LIST, NODE_TYPE_VAR_DEC, NODE_TYPE_TYPE, NODE_TYPE_INT_ARRAY_DEC, NODE_TYPE_OTHER_ARRAY_DEC, NODE_TYPE_DIM, NODE_TYPE_CONSTRUCTOR_DEC, NODE_TYPE_METHOD_DEC_LIST, NODE_TYPE_METHOD_DEC, NODE_TYPE_PARA_LIST, NODE_TYPE_PARAMETER, NODE_TYPE_R_PARA_LIST, NODE_TYPE_BLOCK, NODE_TYPE_L_VAR_DEC_LIST, NODE_TYPE_L_VAR_DEC, NODE_TYPE_STMT_LIST, NODE_TYPE_STMT, NODE_TYPE_EMPTY_STMT, NODE_TYPE_ASGN_STMT, NODE_TYPE_FUNC_STMT, NODE_TYPE_PRINT_STMT, NODE_TYPE_IF_STMT, NODE_TYPE_WHILE_STMT, NODE_TYPE_RETURN_STMT, NODE_TYPE_BLOCK_STMT, NODE_TYPE_NAME, NODE_TYPE_ARRAY_ACCESS, NODE_TYPE_ARG_LIST, NODE_TYPE_R_ARG_LIST, NODE_TYPE_EXP, NODE_TYPE_NEW_EXP, NODE_TYPE_RELATION_EXP, NODE_TYPE_FUNCTION_EXP, NODE_TYPE_READ_EXP, NODE_TYPE_UNARY_EXP, NODE_TYPE_INDEX_LIST, NODE_TYPE_EMPTY_INDEX_LIST, NODE_TYPE_EMPTY_INDEX, NODE_TYPE_IDENTIFIER, NODE_TYPE_NUMBER, NODE_TYPE_KEYWORD, NODE_TYPE_OPERATOR, NODE_TYPE_ERROR} NodeType;/* data structure for a parse tree node */typedef struct node { NodeType type; /* type of node */ int numberOfChildren; /* number of child nodes */ struct node **children; /* array of pointers to child nodes */ ElementPtr typePtr; union { SymbolTablePtr symbolTablePtr; String lexeme; int value; } info; int lineNumber; int columnNumber;} Node;typedef Node *NodePtr;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -