0

CMU Phoenix セマンティック パーサーを使用する必要があります。

そのドキュメントでは、文法をコンパイルするためにどのプログラム/コンパイラが必要かについての情報を提供していません。コンパイルスクリプトを以下に貼り付けます。スクリプトの種類を特定できる場合は、私を助けることができます。

Windows 7 を使用しています。以下のコードを含むファイルには拡張子がありません。パーサーのマニュアルでは、コマンドラインからファイル名を書き込んでファイルを実行するように記載されているだけです。このファイルが置かれているコマンドラインからディレクトリに移動しますが、コンパイルコマンドを呼び出しても何もしません。compile というコマンドがないというエラーが発生するだけです。

これが perl スクリプトの場合 (よくわかりません)、Perl がコンピューターにインストールされています。パーサーが C で書かれている追加情報です。

このパーサーを実行するためのソースまたはチュートリアルをお勧めしていただければ幸いです。

ありがとう

#!/bin/tcsh

# compile grammars in .
# put compiled nets in file $TASK.net
# set PHOENIX to point to root of Phoenix system
# set LIBS to .gra files to load from $PHOENIX/Grammars
# if SingleFile == 1, then all grammar rules are in file $TASK.gra
# if SingleFile == 0, then compiles all files in dir with extension .gra

set TASK="EX"
set LIBS="date_time.gra number.gra next.gra"
set PHOENIX="../../../Phoenix"
@ SingleFile = 0

set DIR=`pwd`

# if separate files, pack into single file
if( $SingleFile == 0 ) then
#   if file exists, save it as *.old
if ( -e $TASK.gra )  then
    mv $TASK.gra $TASK.gra.old
endif
cat *.gra > xxx
mv xxx $TASK.gra
endif

# append lib grammars to file
cd $PHOENIX/Grammars
cat $LIBS >> $DIR/$TASK.gra
cd $DIR

# remove old compiled files
rm base.dic
rm nets
rm log
rm $TASK.net

# create list of nets to be compiled
cat $TASK.gra | $PHOENIX/Scripts/mk_nets.perl > nets

# compile grammar output messages to file "log"
echo "compiling grammar"
$PHOENIX/ParserLib/compile_grammar -f $TASK > log
grep ERROR log
grep WARN log

# flag leaf nodes for extracts function
echo "flagging leaf nodes"
$PHOENIX/ParserLib/concept_leaf -grammar $TASK.net
4

1 に答える 1

0

これは Linux シェル スクリプトです。Linux ボックス、仮想 Linux マシン、または Cygwin で実行する必要があります。

これら 3 つの解決策を Google で検索し、どれが最も適しているかを確認してください。

于 2013-05-31T07:51:00.287 に答える