2011-12-25 17 views
1

Xcode 4でlexとYaccを設定する方法は?それを行うためのビルドルールでは、どのようなカスタムスクリプトを書くべきですか?LexとYacc Xcode 4

1つのlexファイルabc.lと1つのyaccファイルcba.yが、他のプロジェクトソースファイルと同じディレクトリに置かれています。 parser.ymm

%{ 
    #include<iostream> 
    #include<stdio.h> 
    #include "querystructure.h" 
    using namespace std; 
    static int col_id = 0; 


extern void yyerror (char* message); 
extern int yylex(); 
%} 

lexer.l/lexer.lm

%{ 
    #include <stdio.h> 
    #include "y.tab.h" 

%} 

答えて

3

それはあなたが*.ymにご*.yファイルの名前を変更している実行する必要があり、すべてのように聞こえる:

I am extremely pleased that all I had to do was make the suffix to the yacc file be .ym instead of .y to get Xcode to do all the right things.

私はこれを試したことはありませんが、リンクされたポストは、XCodeにパーサー遺伝子を処理するために十分なスマートが組み込まれていることを示唆しています「自動的に」ラツターと呼ばれる。

+0

レクサーは含まれていません...私は次のエラーが発生しています:y.tab.c:1327:16:エラー:宣言されていない識別子 'yylex'の使用。 –

+0

@JuliusCanuteこれは暗闇の中で完全なショットですが、 '* .l'ファイルの名前を' * .lm'に変更して動作するかどうかを確認してください。 – dasblinkenlight

+0

まだ次のエラーが発生しています:アーキテクチャx86_64の未定義シンボル: からのyylex()y.tab.oのyyparse() ld:アーキテクチャx86_64のシンボルが見つかりません –

関連する問題