Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Copy example6.* from original source. But there are not running yet. …

…Add README.md.
  • Loading branch information...
commit 884ef7fd8f6dcaf3ebf666310674b3e803e6f2fb 1 parent 592f5d8
Toru Yamaguchi authored

Showing 1 changed file with 45 additions and 0 deletions. Show diff stats Hide diff stats

  1. +45 0 README.md
45 README.md
Source Rendered
... ... @@ -0,0 +1,45 @@
  1 +# Lex and YACC
  2 +
  3 +This repository is learning of [Lex and YACC primer/HOWTO](http://archive.linux.or.jp/JF/JFdocs/Lex-YACC-HOWTO.html).
  4 +Original document is [here](http://ds9a.nl/lex-yacc/).
  5 +
  6 +# 3. Lex
  7 +
  8 +* %{ ~ %} のセクションは直接includeされる
  9 +* %% ~ %% で定義を書く
  10 +
  11 + flex example1.l
  12 + gcc lex.yy.c -o example1 -lfl
  13 +
  14 +みたいな感じで example1 が出来る。
  15 +
  16 +## 3.1 正規表現でのマッチ
  17 +
  18 +マッチトークンに正規表現が使える。
  19 +ここでは直接 printf しちゃってる。
  20 +
  21 +## 3.2 C のようなシンタックスをもつもう少し高度な例
  22 +
  23 +# 4. YACC
  24 +
  25 +## 4.1 単純な温度調整器
  26 +
  27 + * Lexer(Tokenizer) ではマッチトークンごとに定数を return するようになってる
  28 + * example4.l
  29 + * それぞれの Token ごとに Parser を書いて、そこで printf してる
  30 + * example4.y
  31 +
  32 +なんかサンプルコードはコピペだけじゃ動かないのでソース参照の事。
  33 +
  34 +## 4.2 引数を扱えるように拡張した、温度調整器
  35 +
  36 + * lexer では yytext にマッチした文字が入る
  37 + * lexer では数値の場合 yylval で bison 側で取得出来る値として認識させる事が出来る
  38 + * parser では $1, $2, $3 … とルールの出現番号で yylval を取得出来るみたい
  39 +
  40 +## Resources
  41 +
  42 + * [FlexMode - EmacWiki](http://www.emacswiki.org/emacs/FlexMode)
  43 + * [BisonMode - EmacWiki](http://www.emacswiki.org/emacs/BisonMode)
  44 + * [bison-mode.elとflex-mode.elのURL](http://memo.udp.jp/2011/07/10/bison-mode-el-flex-mode-el-url/)
  45 + * [CMake 2.8 Document](http://www.cmake.org/cmake/help/cmake-2-8-docs.html)

0 comments on commit 884ef7f

Please sign in to comment.
Something went wrong with that request. Please try again.