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

📄 init.h

📁 编译原理SLR(1)语法分析器
💻 H
字号:
#include <fstream>
#include "data.h"


void getalph(char t,char* str)
{
    if(Vhash[t]==-1)    
    {
        Vn[vn_cnt]=t;
        Vhash[t]=vn_cnt;
        vn_cnt++;
    }
    for(int i=0;i<strlen(str);i++)
    if(Vhash[str[i]]==-1)
    {
        if(str[i]>='A' && str[i]<='Z')
        {
            Vn[vn_cnt]=str[i];
            Vhash[str[i]]=vn_cnt;
            vn_cnt++;
        }
        else
        {
            Vt[vt_cnt]=str[i];
            Vhash[str[i]]=vt_cnt;
            vt_cnt++;
        }

    }
}

void init()
{
    char str[100];
    int i,k,flag;
    ifstream in("1.in");
    g_cnt=0;
    vt_cnt=0;
    vn_cnt=0;
    memset(Vhash,-1,sizeof(Vhash));
    while(in.getline(str,100))
    {
        flag=0;
        i=3;
        while(i<strlen(str))
        {
            g[g_cnt].left=str[0];
            int j=0;
            while(str[i]!='|' && i<strlen(str))
            {
                g[g_cnt].right[j++]=str[i];
                i++;
            }
            g[g_cnt].l=j;
            g_cnt++;
            i++;
        }   
    }
    for(i=0;i<g_cnt;i++)
    {
        getalph(g[i].left,g[i].right);
    } 
    Vt[vt_cnt++]='#';
}

⌨️ 快捷键说明

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