When using lemon parser in Xcode integrated as 'Yacc source file using Script', warnings generated by lemon don't show up in the Xcode warning section.
The lemon warning output is not compatible with the format expected by Xcode. Lemon output is formatted like this:
filename.y:NR: message
Note: Lemon also seems to limit the filename to 20 characters in its warning output.
While Xcode expects:
path:NR: warning: message
This can be done with awk lemon $INPUT_FILE_BASE.y | awk -F ': ' -v base="${BASE}" '{ print base "/" $1 ": warning: " $2}'
Here my complete script:
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 source file using Script':

Warnings are also shown inline in the gramma file now:

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With