茨城県つくばみらい市から来ました

プログラマーになるために生きています

PHPをハックしてオレオレ文法を追加する anatoo

言語処理系としてのPHPの流れ

文法いじりにフォーカスすれば結構簡単
実行されるまでの4つのフェーズ
字句解析の実際
  • re2cというツール
    • Zend/zend_language_scanner.l
構文解析
  • Zend/zend_language_parser.y
  • bison -> Cのコードを生成
ZendEngine用コードへのコンパイル(オペコード)
ZendEngineによる実行

実際に簡単な文法を追加する

  • git clone
  • ./buildconf
  • ./configure --enable-debug --disable-all
HelloWorld構文を追加する
  1. トークンの定義を追加
  • Zend/zend_language_scanner.l
  1. 構文の定義を追加
  • Zend/zend_language_parser.y
  1. 構文用のコンパイル処理を追加
  • Zend/zend_compiler.c
無限ループするloop構文を作ってみる

http://anatoo.jp/phpcon2011/