我正在为Cool语言构建一个lex工具。可以在此处找到更好的语言定义:http://theory.stanford.edu/~aiken/software/cool/cool.html
我在编译代码时遇到了一些麻烦。行#include <string>
和#include <iostream>
中可能存在一些错误,因为错误显示在这些行中。有没有其他方法来包含字符串库?我的代码的一部分如下:
%{
#include <cool-parse.h>
#include <stringtab.h>
#include <utilities.h>
#include <string>
#include<iostream>
/* The compiler assumes these identifiers. */
#define yylval cool_yylval
#define yylex cool_yylex
/* Max size of string constants */
#define MAX_STR_CONST 1025
#define YY_NO_UNPUT /* keep g++ happy */
extern FILE *fin; /* we read from this file */
#undef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
if ( (result = fread( (char*)buf, sizeof(char), max_size, fin)) < 0) \
YY_FATAL_ERROR( "read() in flex scanner failed");
char string_buf[MAX_STR_CONST]; /* to assemble string constants */
char *string_buf_ptr;
static int comment_layer = 0;
extern int curr_lineno;
extern int verbose_flag;
extern YYSTYPE cool_yylval;
%}
/* ----- Definitions begin: */
DARROW =>
DIGIT [0-9]
/* ----- Definitions end. */
答案 0 :(得分:1)
您是将生成的词法分析器编译为C ++程序还是C程序?如果您实际使用// including plugins
var gulp = require('gulp')
, minifyHtml = require("gulp-minify-html");
// task
gulp.task('minify-html', function () {
gulp.src('./Html/*.html') // path to your files
.pipe(minifyHtml())
.pipe(gulp.dest('path/to/destination'));
});
但未更改生成的扫描程序名称的扩展名,则无法找到C ++标头。
另一方面,您自己标头的gcc
行应使用#include
而不是"filename"
。尖括号表示头文件是库头,对于库头,不搜索包含源文件的目录。