1用C++编写简单绘图语言的语法分析器——程序清单//-----------------------------parser.h---------------------------------
 2用C++编写简单绘图语言的语法分析器——程序清单#ifndef PARSER_H
 3用C++编写简单绘图语言的语法分析器——程序清单#define PARSER_H
 4用C++编写简单绘图语言的语法分析器——程序清单
 5用C++编写简单绘图语言的语法分析器——程序清单#include "scanner.h"
 6用C++编写简单绘图语言的语法分析器——程序清单
 7用C++编写简单绘图语言的语法分析器——程序清单typedef double (*FuncPtr)(double);
 8用C++编写简单绘图语言的语法分析器——程序清单struct ExprNode        // 语法树节点类型
 9#endif

 

  1用C++编写简单绘图语言的语法分析器——程序清单//-------------------------parser.cpp-----------------------------
  2用C++编写简单绘图语言的语法分析器——程序清单
  3用C++编写简单绘图语言的语法分析器——程序清单#include "parser.h"
  4用C++编写简单绘图语言的语法分析器——程序清单
  5用C++编写简单绘图语言的语法分析器——程序清单#define PARSER_DEBUG
  6用C++编写简单绘图语言的语法分析器——程序清单
  7用C++编写简单绘图语言的语法分析器——程序清单#ifndef PARSER_DEBUG
  8用C++编写简单绘图语言的语法分析器——程序清单    #include "semantic.h"
  9用C++编写简单绘图语言的语法分析器——程序清单#endif
 10用C++编写简单绘图语言的语法分析器——程序清单
 11用C++编写简单绘图语言的语法分析器——程序清单#ifdef PARSER_DEBUG
 12用C++编写简单绘图语言的语法分析器——程序清单    #define enter(x) printf("enter in "); printf(x); printf("\n")
 13用C++编写简单绘图语言的语法分析器——程序清单#else
 14用C++编写简单绘图语言的语法分析器——程序清单    #define enter(x)
 15用C++编写简单绘图语言的语法分析器——程序清单#endif
 16用C++编写简单绘图语言的语法分析器——程序清单
 17用C++编写简单绘图语言的语法分析器——程序清单#ifdef PARSER_DEBUG
 18用C++编写简单绘图语言的语法分析器——程序清单    #define back(x) printf("exit from "); printf(x); printf("\n")
 19用C++编写简单绘图语言的语法分析器——程序清单#else
 20用C++编写简单绘图语言的语法分析器——程序清单    #define back(x)
 21用C++编写简单绘图语言的语法分析器——程序清单#endif
 22用C++编写简单绘图语言的语法分析器——程序清单
 23用C++编写简单绘图语言的语法分析器——程序清单#ifdef PARSER_DERBUG
 24用C++编写简单绘图语言的语法分析器——程序清单    #define call_match(x) printf("match token "); printf(x); printf("\n")
 25用C++编写简单绘图语言的语法分析器——程序清单#else
 26用C++编写简单绘图语言的语法分析器——程序清单    #define call_match(x)
 27用C++编写简单绘图语言的语法分析器——程序清单#endif
 28用C++编写简单绘图语言的语法分析器——程序清单
 29用C++编写简单绘图语言的语法分析器——程序清单#ifdef PARSER_DEBUG
 30用C++编写简单绘图语言的语法分析器——程序清单    #define Tree_trace(x) PrintSyntaxTree(x, 1);
 31用C++编写简单绘图语言的语法分析器——程序清单#else
 32用C++编写简单绘图语言的语法分析器——程序清单    #define Tree_trace
 33用C++编写简单绘图语言的语法分析器——程序清单#endif
 34用C++编写简单绘图语言的语法分析器——程序清单
 35用C++编写简单绘图语言的语法分析器——程序清单#ifdef PARSER_DEBUG
 36用C++编写简单绘图语言的语法分析器——程序清单    double Parameter = 0;            //参数T的存储空间
 37用C++编写简单绘图语言的语法分析器——程序清单#else
 38用C++编写简单绘图语言的语法分析器——程序清单    double Parameter = 0,            //参数存储空间
 39用C++编写简单绘图语言的语法分析器——程序清单    Origin_x = 0, Origin_y = 0,        //横纵坐标平移距离
 40用C++编写简单绘图语言的语法分析器——程序清单    Scale_x = 1,Scale_y = 1,        //横纵比例因子
 41用C++编写简单绘图语言的语法分析器——程序清单    Rot_angle = 0;                    //旋转角度
 42用C++编写简单绘图语言的语法分析器——程序清单#endif
 43用C++编写简单绘图语言的语法分析器——程序清单
 44用C++编写简单绘图语言的语法分析器——程序清单static Token token;                    //记号
 45用C++编写简单绘图语言的语法分析器——程序清单
 46用C++编写简单绘图语言的语法分析器——程序清单
 47用C++编写简单绘图语言的语法分析器——程序清单// ------------辅助函数声明
 48用C++编写简单绘图语言的语法分析器——程序清单static void FetchToken();
 49用C++编写简单绘图语言的语法分析器——程序清单static void MatchToken(enum Token_Type AToken);
 50用C++编写简单绘图语言的语法分析器——程序清单static void SyntaxError(int case_of);
 51用C++编写简单绘图语言的语法分析器——程序清单static void ErrMsg(unsigned LineNo, char *descrip, char *string);
 52用C++编写简单绘图语言的语法分析器——程序清单static void PrintSyntaxTree(struct ExprNode *root, int indent);
 53用C++编写简单绘图语言的语法分析器——程序清单
 54用C++编写简单绘图语言的语法分析器——程序清单// ------------非终结符的递归子程序声明
 55用C++编写简单绘图语言的语法分析器——程序清单static void Program();
 56用C++编写简单绘图语言的语法分析器——程序清单static void Statement();
 57用C++编写简单绘图语言的语法分析器——程序清单static void OriginStatement();
 58用C++编写简单绘图语言的语法分析器——程序清单static void RotStatement();
 59用C++编写简单绘图语言的语法分析器——程序清单static void ScaleStatement();
 60用C++编写简单绘图语言的语法分析器——程序清单static void ForStatement();
 61用C++编写简单绘图语言的语法分析器——程序清单static struct ExprNode *Expression();
 62用C++编写简单绘图语言的语法分析器——程序清单static struct ExprNode *Term();
 63用C++编写简单绘图语言的语法分析器——程序清单static struct ExprNode *Factor();
 64用C++编写简单绘图语言的语法分析器——程序清单static struct ExprNode *Component();
 65用C++编写简单绘图语言的语法分析器——程序清单static struct ExprNode *Atom();
 66用C++编写简单绘图语言的语法分析器——程序清单
 67用C++编写简单绘图语言的语法分析器——程序清单// -------------外部接口与语法树构造函数声明
 68用C++编写简单绘图语言的语法分析器——程序清单extern void Parser(char *SrcFilePtr);
 69用C++编写简单绘图语言的语法分析器——程序清单static struct ExprNode *MakeExprNode(enum Token_Type opcode, 用C++编写简单绘图语言的语法分析器——程序清单);
 70用C++编写简单绘图语言的语法分析器——程序清单
 71用C++编写简单绘图语言的语法分析器——程序清单// -------------通过词法分析器接口GetToken获取一个记号
 72用C++编写简单绘图语言的语法分析器——程序清单static void FetchToken()
 73}

 1用C++编写简单绘图语言的语法分析器——程序清单//----------------------------parsermain.cpp-----------------------
 2用C++编写简单绘图语言的语法分析器——程序清单
 3用C++编写简单绘图语言的语法分析器——程序清单#include <stdio.h>
 4用C++编写简单绘图语言的语法分析器——程序清单#include "parser.h"
 5用C++编写简单绘图语言的语法分析器——程序清单
 6用C++编写简单绘图语言的语法分析器——程序清单extern void Parser(char *SrcFilePtr);
 7用C++编写简单绘图语言的语法分析器——程序清单
 8用C++编写简单绘图语言的语法分析器——程序清单int main()
 9}

注:要想正常运行需要把词法分析器的那部分也加入到工程中

相关文章:

  • 2022-12-23
  • 2022-01-18
  • 2021-11-25
  • 2022-12-23
  • 2021-12-06
  • 2022-12-23
  • 2021-04-21
  • 2021-06-24
猜你喜欢
  • 2021-08-09
  • 2021-06-15
  • 2021-09-01
  • 2022-01-07
  • 2021-07-05
  • 2021-12-05
  • 2021-11-25
相关资源
相似解决方案