1

Flex に基づいて CSS2.1 字句スキャナーを作成したいと考えています。w3 orgにはスキャナー flex の実装があります。電話してみた

$ flex css2.1.flex
$ gcc lex.yy.c -lfl

しかし、エラーが発生します:

css2.1.flex: In function ‘yylex’:
css2.1.flex:53:9: error: ‘S’ undeclared (first use in this function)
css2.1.flex:53:9: note: each undeclared identifier is reported only once for each function it appears in
css2.1.flex:58:9: error: ‘CDO’ undeclared (first use in this function)
css2.1.flex:59:9: error: ‘CDC’ undeclared (first use in this function)
css2.1.flex:60:9: error: ‘INCLUDES’ undeclared (first use in this function)
css2.1.flex:61:9: error: ‘DASHMATCH’ undeclared (first use in this function)
css2.1.flex:63:9: error: ‘STRING’ undeclared (first use in this function)
css2.1.flex:64:9: error: ‘BAD_STRING’ undeclared (first use in this function)
css2.1.flex:66:9: error: ‘IDENT’ undeclared (first use in this function)
css2.1.flex:68:9: error: ‘HASH’ undeclared (first use in this function)
css2.1.flex:70:9: error: ‘IMPORT_SYM’ undeclared (first use in this function)
css2.1.flex:71:9: error: ‘PAGE_SYM’ undeclared (first use in this function)
css2.1.flex:72:9: error: ‘MEDIA_SYM’ undeclared (first use in this function)
css2.1.flex:73:9: error: ‘CHARSET_SYM’ undeclared (first use in this function)
css2.1.flex:75:9: error: ‘IMPORTANT_SYM’ undeclared (first use in this function)
css2.1.flex:77:9: error: ‘EMS’ undeclared (first use in this function)
css2.1.flex:78:9: error: ‘EXS’ undeclared (first use in this function)
css2.1.flex:79:9: error: ‘LENGTH’ undeclared (first use in this function)
css2.1.flex:85:9: error: ‘ANGLE’ undeclared (first use in this function)
css2.1.flex:88:9: error: ‘TIME’ undeclared (first use in this function)
css2.1.flex:90:9: error: ‘FREQ’ undeclared (first use in this function)
css2.1.flex:92:9: error: ‘DIMENSION’ undeclared (first use in this function)
css2.1.flex:94:9: error: ‘PERCENTAGE’ undeclared (first use in this function)
css2.1.flex:95:9: error: ‘NUMBER’ undeclared (first use in this function)
css2.1.flex:97:9: error: ‘URI’ undeclared (first use in this function)
css2.1.flex:99:9: error: ‘BAD_URI’ undeclared (first use in this function)
css2.1.flex:101:9: error: ‘FUNCTION’ undeclared (first use in this function)

不足している識別子をどのように宣言する必要がありますか?

4

1 に答える 1

2

それらは、リンクのフレックス構文の直前のパーサー定義から定義されています。パーサー定義で のようなものを実行すると、定義を含むbison -dファイル (通常はy.tab.h) が生成されます。

于 2012-07-02T09:00:02.963 に答える