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

📄 symbol.c

📁 C写的语法分析 递归了程序法语法分析 来自龙书
💻 C
字号:
#include "global.h"

#define STRMAX 999 //lexemes数组大小
#define SYMMAX 999 //symtable数组大小

char lexemes[STRMAX];
int lastchar = -1; //lexemes中最后引用的位置
struct entry symtable[SYMMAX];
int lastentry = 0;

int lookup(s)//返回s表项位置
char s[];
{
    int p;
    for(p = lastentry; p > 0; p = p - 1)
    {
        if(strcmp(symtable[p].lexptr, s) == 0)
        {
            return p;
        }
        return 0;
    }
}
int insert(s, tok)//返回s表项位置
char s[];
int tok;
{
    int len;
    len = strlen(s); //s的长度
    if(lastentry + 1 >= SYMMAX)
    {
        error("symboltable full!");
    }
    if(lastentry + len + 1 >= SYMMAX)
    {
        error("lexemes array full!");
    }
    lastentry = lastentry + 1;
    symtable[lastentry].token = tok;
    symtable[lastentry].lexptr = &lexemes[lastchar + 1];
    lastchar = lastchar + len + 1;
    strcpy(symtable[lastentry].lexptr, s);
    return lastentry;
}

⌨️ 快捷键说明

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