資源簡介
相關(guān)博客見 https://blog.csdn.net/boss_crabe/article/details/80760471

代碼片段和文件信息
#include?
#include?
#include?
using?namespace?std;
struct?grammar?{
??int?n?p?cnt;
??struct?node?{
????int?line;
????string?word;
????node()?{}
????node(int?_line?string?_word){
??????line?=?_line;
??????word?=?_word;
????}
??}?que[100005];
??node?get(int?p)?{
????if?(p?==?n)?{
??????return?node(-1?““);
????}
????else?return?que[p];
??}
??void?read()?{
????freopen(“file_out.txt“?“r“?stdin);
????int?t;
????string?s;
????while?(cin?>>?t?&&?cin?>>?s)?{
??????que[n++]?=?node(t?s);
????}
??}
??bool?is_number(char?c)?{
????return?c?>=?‘0‘?&&?c?<=?‘9‘;
??}
??bool?is_loweralpha(char?c)?{
????return?c?>=?‘a(chǎn)‘?&&?c?<=?‘z‘;
??}
??bool?is_upperalpha(char?c)?{
????return?c?>=?‘A‘?&&?c?<=?‘Z‘;
??}
??bool?is_alpha(char?c)?{
????return?is_loweralpha(c)?||?is_upperalpha(c);
??}
??void?print(int?x?int?y)?{
??}
??bool?check_number()?{
????int?tp?=?p;
????node?t?=?get(p);
????p++;
????int?l?=?t.word.length();
????for?(int?i?=?0;?i???????if?(!is_number(t.word[i]))?{
????????print(tp?p);
????????return?false;
??????}
????print(tp?p);
????return?true;
??}
??bool?check_identifier()?{
????int?tp?=?p;
????node?t?=?get(p++);
????int?l?=?t.word.length();
????if?(!is_alpha(t.word[0]))?{
??????print(tp?p);
??????return?false;
????}
????for?(int?i?=?0;?i???????if?(!is_alpha(t.word[i])?&&?!is_number(t.word[i]))?{
????????print(tp?p);
????????return?false;
??????}
????}
????print(tp?p);
????return?true;
??}
??bool?check_const_definition()?{
????int?tp?=?p;
????if?(!check_identifier())?{
??????print(tp?p);
??????return?false;
????}
????if?(get(p).word?!=?string(“=“))?{
??????print(tp?p?+?1);
??????return?false;
????}
????else?p++;
????if?(!check_number())?{
??????print(tp?p);
??????return?false;
????}
????print(tp?p);
????return?true;
??}
??bool?check_const()?{
????int?tp?=?p;
????p++;
????if?(!check_const_definition())?{
??????print(tp?p);
??????return?false;
????}
????while?(true)?{
??????if?(get(p).word?==?string(““))?{
????????p++;
????????if?(!check_const_definition())?{
??????????print(tp?p);
??????????return?false;
????????}
??????}
??????else?if?(get(p).word?==?string(“;“))?{
????????p++;
????????break;
??????}
??????else?{
????????print(tp?p?+?1);
????????return?false;
??????}
????}
????print(tp?p);
????return?true;
??}
??bool?check_var()?{
????int?tp?=?p;
????p++;
????if?(!check_identifier())?{
??????print(tp?p);
??????return?false;
????}
????while?(true)?{
??????if?(get(p).word?==?string(““))?{
????????p++;
????????if?(!check_identifier())?{
??????????print(tp?p);
??????????return?false;
????????}
??????}
??????else?if?(get(p).word?==?string(“;“))?{
????????p++;
????????break;
??????}
??????else?{
????????print(tp?p);
????????return?false;
??????}
????}
????print(tp?p);
????return?true;
??}
??bool?is_addop(strin
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????152??2017-12-15?14:11??中間代碼生成\file_out.txt
?????文件????????8589??2017-12-15?14:06??中間代碼生成\中間代碼生成.cpp
?????文件???????25567??2018-06-21?14:29??中間代碼生成\中間代碼生成.docx
?????文件?????1883249??2018-01-09?15:08??中間代碼生成\中間代碼生成.exe
?????目錄???????????0??2018-06-21?14:29??中間代碼生成\
評論
共有 條評論