base
来自「編譯器的虛擬yacc工具」· 代码 · 共 50 行
TXT
50 行
set VYACC = ${INSTALL_BIN}/vyacc set TRANSFORM = ${INSTALL_BIN}/pre_vyacc set LEXFIX = ${INSTALL_BIN}/fix_lex set YACCFIX = ${INSTALL_BIN}/yaccfix set INCLUDE_DIR = ${VY}/Include set STEPPAR = ${INCLUDE_DIR}/stepPar set CC = gcc set ECHOCMD = echo set FNAME = $1#pretest the yaccablity, lexablity, and compilablity of .y and .l before traslation $ECHOCMD "" $ECHOCMD "Pretest ..." $ECHOCMD " If no errors generated by this phase, your input is legal" $YACCFIX $FNAME.y yacc -d $FNAME.y.vy lex $FNAME.l $CC -o pretest.out y.tab.c lex.yy.c -ly -ll -lm#run the parser through the tool $ECHOCMD " Cleaning up pretest ..." rm pretest.out $FNAME.y.vy $ECHOCMD "" $ECHOCMD "Building ..." $ECHOCMD " Preprocessing $FNAME.y ..." $TRANSFORM < $FNAME.y > ${FNAME}_pre.y $ECHOCMD " Preprocessing $FNAME.l ..." $LEXFIX < $FNAME.l > ${FNAME}_pre.l $ECHOCMD " Translating $FNAME.y ..." $VYACC < ${FNAME}_pre.y > ${FNAME}_vyacc.y $ECHOCMD " Lexing ..." lex ${FNAME}_pre.l $ECHOCMD " Yaccing translation ..." yacc -P $STEPPAR -d ${FNAME}_vyacc.y#compile the result being sure to link with the vyacc libraries $ECHOCMD " Compiling translation and lex.yy.c..." $CC -o $FNAME.out y.tab.c lex.yy.c -ly -ll -lm $MOTIF_LIB \ -lXm -lXt -lX11 -I$INCLUDE_DIR \ -L$INSTALL_LIB -lvyacc# clean up $ECHOCMD "Cleaning up ..." rm ${FNAME}_vyacc.y ${FNAME}_pre.y ${FNAME}_pre.l rm y.tab.* lex.yy.c#tell how to use the result echo "" echo "To do a visualization type:" echo " $FNAME.out < <input_string>"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?