Лимонный парсер как правило сборки Xcode
При использовании анализатора Lemon в XCode, интегрированном как "исходный файл Yacc с помощью Script", предупреждения, генерируемые Lemon, не отображаются в разделе предупреждений XCode.
1 ответ
Вывод предупреждения о неисправности лимона не совместим с форматом, ожидаемым Xcode. Вывод лимона отформатирован так:
filename.y:NR: message
Примечание: Лимон также, кажется, ограничивает имя файла до 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, использующий скрипт':
Предупреждения также отображаются встроенными в файле грамматики: