parse.bat 806 B

123456789101112131415161718192021222324252627282930
  1. @echo off
  2. @echo.
  3. @call setenvvar.bat %*
  4. @if errorlevel 1 (goto :END)
  5. @echo Generating parse.cpp and dsql.tab.h
  6. @sed -n "/%%type .*/p" < %FB_ROOT_PATH%\src\dsql\parse.y > types.y
  7. @sed "s/%%type .*//" < %FB_ROOT_PATH%\src\dsql\parse.y > y.y
  8. %FB_ROOT_PATH%\temp\%FB_OBJ_DIR%\btyacc\btyacc -l -d -S %FB_ROOT_PATH%\src\dsql\btyacc_fb.ske y.y 2>y.txt
  9. @if errorlevel 1 (type y.txt && exit /B 1)
  10. @type y.txt
  11. @sed -i "s/#define \([A-Z].*\)/#define TOK_\1/" y_tab.h
  12. @sed -i "s/#define TOK_YY\(.*\)/#define YY\1/" y_tab.h
  13. @sed -n -e "s/.*btyacc: \(.*conflicts.*\)/\1/p" y.txt > %FB_ROOT_PATH%\src\dsql\parse-conflicts.txt
  14. @copy y_tab.h %FB_ROOT_PATH%\src\include\gen\parse.h > nul
  15. @copy y_tab.c %FB_ROOT_PATH%\src\dsql\parse.cpp > nul
  16. @del y.y
  17. @del y.txt
  18. @del types.y
  19. @del y_tab.h
  20. @del y_tab.c
  21. @del sed*
  22. :END