Lemon解析器作为Xcode构建规则

时间:2019-02-21 09:12:38

标签: xcode lemon

在集成为“使用脚本的Yacc源文件” 的Xcode中使用Lemon解析器时,柠檬生成的警告不会显示在Xcode警告部分。

1 个答案:

答案 0 :(得分:1)

柠檬警告输出与Xcode期望的格式不兼容。 Lemon输出的格式如下:

filename.y:NR: message

注意:Lemon似乎也在其警告输出中将文件名限制为20个字符。

Xcode期望:

path:NR: warning: message

这可以通过awk lemon $INPUT_FILE_BASE.y | awk -F ': ' -v base="${BASE}" '{ print base "/" $1 ": warning: " $2}'

完成

这是我完整的脚本:

LEMON=$(printf %q "$BUILT_PRODUCTS_DIR/lemon")
LEMPAR=$(printf %q "$SRCROOT/../Vendor/lemon/lempar.c")
BASE=$(dirname "$INPUT_FILE_PATH.y")

cd $DERIVED_FILES_DIR
cp $INPUT_FILE_PATH $INPUT_FILE_BASE.y
cp $LEMPAR $DERIVED_FILES_DIR/lempar.c
$LEMON $INPUT_FILE_BASE.y | awk -F ': ' -v base="${BASE}" '{ print base "/" $1 ": warning: " $2}'

mv $INPUT_FILE_BASE.c $INPUT_FILE_BASE.m

Xcode “使用脚本的Yacc源文件” Xcode Yacc source file using Script

警告现在也显示在gramma文件中: Warning : This rule can not be reduced.

相关问题