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

📄 main.h

📁 ll1文法分析器
💻 H
字号:
//---------------------------------------------------------------------------

#ifndef mainH
#define mainH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Dialogs.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TEdit *Edit1;
        TLabel *Label1;
        TMemo *Memo1;
        TGroupBox *GroupBox1;
        TGroupBox *GroupBox2;
        TGroupBox *GroupBox3;
        TMemo *Memo2;
        TMemo *Memo3;
        TButton *Button1;
        TButton *Button2;
        TButton *Button3;
        TButton *Button4;
        TButton *Button5;
        TOpenDialog *OpenDialog1;
        TSaveDialog *SaveDialog1;
        void __fastcall Button5Click(TObject *Sender);
        void __fastcall Button3Click(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall Button4Click(TObject *Sender);
        void __fastcall Button2Click(TObject *Sender);
private:

//int count=0;              /*分解的产生式的个数*/
int number;               /*所有终结符和非终结符的总数*/
char starter;               /*开始符号*/
char termin[50];          /*终结符号*/
char non_ter[50];         /*非终结符号*/
char v[50];               /*所有符号*/
char left[50];            /*左部*/
char right[50][50];       /*右部*/
char first[50][50],follow[50][50];       /*各产生式右部的FIRST和左部的FOLLOW集合*/
char first1[50][50];      /*所有单个符号的FIRST集合*/
char select[50][50];      /*各单个产生式的SELECT集合*/
char f[50],F[50];         /*记录各符号的FIRST和FOLLOW是否已求过*/
char empty[20];           /*记录可直接推出^的符号*/
char TEMP[50];            /*求FOLLOW时存放某一符号串的FIRST集合*/
//int validity=1;           /*表示输入文法是否有效*/
//int ll=1;                 /*表示输入文法是否为LL(1)文法*/
int M[20][20];            /*分析表*/
//char choose;              /*用户输入时使用*/
char empt[20];            /*求_emp()时使用*/
char fo[20];              /*求FOLLOW集合时使用*/
bool open;
char p[50][50];





public:	    void __fastcall ISVT(char *termin,char *non_ter);
        bool __fastcall SameVT(char buf,int nvtnum);
        bool __fastcall IsInNVT(char buf,int vtnum);
        int  __fastcall  Isright(int line);
        __fastcall TForm1(TComponent* Owner);
        int __fastcall in(char c,char *p);
        char __fastcall c();
        void __fastcall recur(char *point);
        void __fastcall non_re(char *point);
        char __fastcall grammer(char *t,char *n,char *left,char right[50][50]);
        void __fastcall merge(char *d,char *s,int type);
        void __fastcall emp(char c);
        int __fastcall _emp(char c);
        int __fastcall judge();
        void __fastcall first2(int i);
        void __fastcall FIRST(int i,char *p);
        void __fastcall FOLLOW(int i);
        int __fastcall ll1();
        void __fastcall MM();
        void __fastcall syntax();

};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

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