Question

I want to create a CSS2.1 lexical scanner based on flex. There is scanner flex implementation on the w3 org. I tried to call

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

but get errors:

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)

How I must declare missing identifiers?

Was it helpful?

Solution

They're defined from the parser definition immediately before the flex syntax on your link. When you run something like bison -d on the parser definition, it will produce a file (usually y.tab.h) that contains the definitions.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top