当预先知道 N 时,flex/bison 是否适合解析包含由表示 x、y、z 坐标的三个浮点数组成的 N 个顶点的数据结构?如果是这样,解析器/词法分析器设置会是什么样子?
要填充的所需结构(将创建一个数组)
struct Vertex
{
float x;
float y;
float z;
};
输入文本
Vertices: n
x1 y1 z1
x2 y2 z2
...
xN yN zN
我认为是正确的(flex/bison 的新功能,所以可能是错误的)
解析器定义中定义的标记
%token VERTICES_IDENTIFIER
%token COLON
%token NUM
词法分析器规则
Vertices { return VERTICES_IDENTIFIER;}
: { return COLON; }
[0-9]+ |
[0-9]+"."[0-9]* {return NUM;}