Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Lemon parser as Xcode build rule

Tags:

xcode

lemon

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.

like image 663
catlan Avatar asked Aug 17 '26 01:08

catlan


1 Answers

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': Xcode Yacc source file using Script

Warnings are also shown inline in the gramma file now: Warning : This rule can not be reduced.

like image 100
catlan Avatar answered Aug 19 '26 14:08

catlan



Donate For Us

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