エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
コンパイラ入門をゆっくり勉強中。 字句解析(lex, flex)の章と構文解析(yacc, bison)の章に分かれている... コンパイラ入門をゆっくり勉強中。 字句解析(lex, flex)の章と構文解析(yacc, bison)の章に分かれているので、今日は字句解析のみ使って構文解析してみる。 最終的な目標は電卓の作成。 本の中で紹介されているコードを流用して、さらにリエントラントなスキャナを作成することにした。 scanner.l %{ #include <math.h> #include "scanner.h" enum { ZERO = 0, ID, NUM, REAL, ADDOP, SUBOP, MULOP, DIVOP, LPAR, RPAR, ERROR }; %} %option reentrant %% [_$a-zA-Z][_$0-9a-zA-Z]* { return ID; } 0|[1-9][0-9]* { return NUM; } ([0-9]+"."[0-9]*|([0-9]*)"