Lemon解析器作为Xcode构建规则
在Xcode中使用lemon解析器集成为“使用脚本的Yacc源文件”时,lemon生成的警告不会显示在Xcode警告部分。lemon警告输出与Xcode预期的格式不兼容。Lemon输出的格式如下: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
filename.y:NR:message
注意:Lemon似乎还将其警告输出中的文件名限制为20个字符
而Xcode期望:
path:NR:warning:message
这可以通过awklemon$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中。谢谢你的信息。