Parser
学内バイトにて、独自の構文から成る文字列をパースして、ある決まった形にする必要がある。
正規表現でゴリゴリ置換することしか考えつかないので、とりあえず本を読んで学習する。
言語実装パターン
――コンパイラ技術によるテキスト処理から言語実装まで
コンパイラ入門 : 構文解析の原理とlex/yacc, C言語による実装
構成として、次の順になる
字句解析
入力をトークンというデータに変換する
構文解析
トークン列を入力として、抽象構文木(AST)を構築する
コード生成
抽象構文木からコードを生成する
正規表現だけでは対応できないものがある
例えば Markdown の表、リスト、引用
1行では完結せず、前の行の状態に依存する