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

📄 main.cpp

📁 我作编译原理课程设计时写的一个图形化的小型开发环境
💻 CPP
字号:
#include <stdio.h>
#include <iostream>
#include <stdarg.h>
#include "lex.h"
#include "parse.h"
using namespace std;
int errors = 0;

// 报告错误 
void Error (char *format, ...)   {
   va_list args;

   errors++;
   printf ("Line %d: ", lineno);
   va_start(args, format);
   vfprintf(stdout, format, args);
   va_end(args);
   printf("\n");
}

// 显示错误的计数 
void ErrorSummary ()  {
   printf ("%d error(s) were found.\n", errors);
}

// 分析过程中发生错误时由分析器调用
// (分析错误或栈溢出)
void yyerror(char *msg) {
   Error (msg);
}

// 该函数在文件结尾是被lexer调用
//  你可以用yyin重新定向到其他文件 
// 成功, 返回 0.
extern "C" int yywrap(void) {
  return 1;
}

// 主函数:报告所有的token序列
int main (int argc, char *argv[])  {
   // 设置输入流
   yyin = NULL;
   if (argc == 2)
      yyin = fopen (argv[1], "rt");
   if (yyin == NULL)
      yyin = stdin;

   yyparse (); // 调用分析器 
   ErrorSummary ();
   return errors ? 1 : 0;
}

⌨️ 快捷键说明

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