Lemon解析器作为Xcode构建规则

Lemon解析器作为Xcode构建规则,xcode,lemon,Xcode,Lemon,在Xcode中使用lemon解析器集成为“使用脚本的Yacc源文件”时,lemon生成的警告不会显示在Xcode警告部分。lemon警告输出与Xcode预期的格式不兼容。Lemon输出的格式如下: filename.y:NR:message 注意:Lemon似乎还将其警告输出中的文件名限制为20个字符 而Xcode期望: path:NR:warning:message 这可以通过awklemon$INPUT_FILE_BASE.y | awk-F':'-v BASE=“${BASE}”{prin

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

lemon警告输出与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”:警告:“$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源文件”:

警告也会在gramma文件中内联显示:

这些警告不是写入标准输出,因此可以从Xcode build选项卡查看吗?它们可以在报告导航器中查看,但您需要导航到那里,过滤文件名。。。构建日志非常嘈杂。很容易被忽视或忘记。使用下面的修复程序,警告也会内联显示在gramma file.OK cool中。谢谢你的信息。