2008-09-15から1日間の記事一覧

Lex & YACC 3

上で最後に書いた実際の場合について。 実際に使う場合は上の場合よりも複雑になっていき、上記の様な方法だけでは不可能。 ちょっと調べたら、方法は大きく分けて2通りの方法があるみたい(調べた限りではだけど)。 1つはコマンド(BNF)の部分、「heat_switch…

] Lex & YACC 2

前回の続き %{ #include <stdio.h> #include "sample4.tab.h" void yyerror(const char *str) { fprintf(stderr,"error: %s\n",str); } int yywrap(void) { return 1; } %} %% [[:digit:]]+ yylval=atoi(yytext); return NUMBER; heat return TOKHEAT; on|off yylval=</stdio.h>…