/**功能:词法分析初始化**/
void init_lex()
{
TkWord *tp;
static TkWord keywords[]={
{TK_PLUS,NULL,"+",NULL,NULL},
{TK_MINUS,NULL,"-",NULL,NULL},
{TK_STAR,NULL,"*",NULL,NULL},
{TK_DIVIDE,NULL,"/",NULL,NULL},
{TK_MOD,NULL,"%",NULL,NULL},
{TK_EQ,NULL,"==",NULL,NULL},
{TK_NEQ,NULL,"!=",NULL,NULL},
{TK_LT,NULL,"<",NULL,NULL},
{TK_LEQ,NULL,"<=",NULL,NULL},
{TK_GT,NULL,">",NULL,NULL},
{TK_GEQ,NULL,">=",NULL,NULL},
{TK_ASSIGN,NULL,"=",NULL,NULL},
{TK_POINTSTO,NULL,"->",NULL,NULL},
{TK_DOT,NULL,".",NULL,NULL},
{TK_AND,NULL,"&",NULL,NULL},
{TK_OPENPA,NULL,"(",NULL,NULL},
{TK_CLOSEBR,NULL,")",NULL,NULL},
{TK_OPENBR,NULL,"[",NULL,NULL},
{TK_CLOSEBR,NULL,"]",NULL,NULL},
{TK_BEGIN,NULL,"{",NULL,NULL},
{TK_END,NULL,"}",NULL,NULL},
{TK_SEMICOLON,NULL,";",NULL,NULL},
{TK_COMMA,NULL,",",NULL,NULL},
{TK_ELLIPSIS,NULL,"...",NULL,NULL},
{TK_EOF,NULL,"End_Of_File",NULL,NULL},
{TK_CINT,NULL,"整型常量",NULL,NULL},
{TK_CCHAR,NULL,"字符常量",NULL,NULL},
{TK_CSTR,NULL,"字符串常量",NULL,NULL},
{KW_CHAR,NULL,"char",NULL,NULL},
{KW_SHORT,NULL,"short",NULL,NULL},
{KW_INT,NULL,"int",NULL,NULL},
{KW_VOID,NULL,"void",NULL,NULL},
{KW_STRUCT,NULL,"struct",NULL,NULL},
{KW_IF,NULL,"if",NULL,NULL},
{KW_ELSE,NULL,"else",NULL,NULL},
{KW_FOR,NULL,"for",NULL,NULL},
{KW_CONTINUE,NULL,"continue",NULL,NULL},
{KW_BREAK,NULL,"break",NULL,NULL},
{KW_RETURN,NULL,"return",NULL,NULL},
{KW_SIZEOF,NULL,"sizeof",NULL,NULL},
{KW_ALIGN,NULL,"__align",NULL,NULL},
{KW_CDECL,NULL,"__cdecl",NULL,NULL},
{KW_STDCALL,NULL,"__stdcall",NULL,NULL},
{0,NULL,NULL,NULL,NULL}
};
dynarray_init(&tktable,8);
for(tp=&keywords[0];tp->spelling!=NULL;tp++)
TkWord_direct_insert(tp);
}
词法分析初始化
最新推荐文章于 2022-09-09 16:11:20 发布