123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- LEX_FLAGS=
- BISON_FLAGS=-v
- _BISON_DATA_DIR=contrib/tools/bison/bison/data
- _CPP_BISON_SKELS=\
- ${_BISON_DATA_DIR}/bison.m4 \
- ${_BISON_DATA_DIR}/c++-skel.m4 \
- ${_BISON_DATA_DIR}/c++.m4 \
- ${_BISON_DATA_DIR}/c-like.m4 \
- ${_BISON_DATA_DIR}/c-skel.m4 \
- ${_BISON_DATA_DIR}/c.m4 \
- ${_BISON_DATA_DIR}/glr.cc \
- ${_BISON_DATA_DIR}/lalr1.cc \
- ${_BISON_DATA_DIR}/location.cc \
- ${_BISON_DATA_DIR}/m4sugar/foreach.m4 \
- ${_BISON_DATA_DIR}/m4sugar/m4sugar.m4 \
- ${_BISON_DATA_DIR}/stack.hh \
- ${_BISON_DATA_DIR}/variant.hh \
- ${_BISON_DATA_DIR}/yacc.c \
- _BISON_GEN_EXT=.cpp
- _FLEX_GEN_EXT=.cpp
- _BISON_HEADER=--defines=${nopath;noext;output;main;addincl;norel;suf=.h:SRC}
- _BISON_PP=$YMAKE_PYTHON ${input:"build/scripts/preprocess.py"} $_ADD_HIDDEN_INPUTS($_CPP_BISON_SKELS) ${nopath;noext;tmp:SRC.h}
- _FLEX_TOOL=${tool:"contrib/tools/flex-old"}
- _FLEX_TOOL_DIR=contrib/tools/flex-old
- _FLEX_HEADER=
- macro FLEX_FLAGS(Flags...) {
- SET_APPEND(LEX_FLAGS $Flags)
- }
- macro BISON_FLAGS(Flags...) {
- SET_APPEND(BISON_FLAGS $Flags)
- }
- macro BISON_GEN_C() {
- SET(_BISON_GEN_EXT .c)
- SET(_BISON_PP)
- }
- macro BISON_GEN_CPP() {
- SET(_BISON_GEN_EXT .cpp)
- }
- macro FLEX_GEN_C() {
- SET(_FLEX_GEN_EXT .c)
- }
- macro FLEX_GEN_CPP() {
- SET(_FLEX_GEN_EXT .cpp)
- }
- macro BISON_HEADER(Suffix) {
- SET(_BISON_HEADER --defines=\${nopath;noext;output;main;addincl;norel;suf=$Suffix:SRC})
- }
- macro BISON_NO_HEADER() {
- SET(_BISON_HEADER)
- }
- macro USE_MODERN_FLEX() {
- SET(_FLEX_TOOL \${tool:"contrib/tools/flex"} --m4=\${tool:"contrib/tools/bison/m4"})
- SET(_FLEX_TOOL_DIR contrib/tools/flex)
- }
- macro USE_MODERN_FLEX_WITH_HEADER(Suffix) {
- SET(_FLEX_TOOL \${tool:"contrib/tools/flex"} --m4=\${tool:"contrib/tools/bison/m4"})
- SET(_FLEX_TOOL_DIR contrib/tools/flex)
- SET(_FLEX_HEADER --header-file=\${nopath;noext;output;main;addincl;norel;suf=$Suffix:SRC})
- }
- macro USE_OLD_FLEX() {
- SET(_FLEX_TOOL \${tool:"contrib/tools/flex-old"})
- SET(_FLEX_TOOL_DIR contrib/tools/flex-old)
- }
- macro _SRC("y", SRC, SRCFLAGS...) {
- .CMD=${tool:"contrib/tools/bison/bison"} $BISON_FLAGS --m4=${tool:"contrib/tools/bison/m4"} $_BISON_HEADER -o ${nopath;output;suf=$_BISON_GEN_EXT:SRC} ${input:SRC} ${SRCFLAGS} ${kv;hide:"p YC"} ${kv;hide:"pc light-green"} && $_BISON_PP
- .SEM=target_bison_parser PRIVATE ${input:SRC} ${output;nopath;noext;hide;suf=${OBJ_SUF}.o:SRC} ${nopath;noext;output;hide:SRC.h} ${nopath;noext;output;addincl;hide:SRC.h} && set_global_flags BISON_FLAGS $BISON_FLAGS && conan_require_tool m4/1.4.19 && conan_import '"bin, m4* -> ./bin/m4/bin"' && conan_require_tool bison/3.5.3 && conan_import '"bin, bison* -> ./bin/bison/bin"' && conan_import '"res, * -> ./bin/bison/res"'
- }
- macro _SRC("ypp", SRC, SRCFLAGS...) {
- .CMD=$_SRC(y $SRC $SRCFLAGS)
- .SEM=$_SRC(y $SRC $SRCFLAGS)
- }
- macro _SRC("l", SRC, SRCFLAGS...) {
- .CMD=$_FLEX_TOOL $LEX_FLAGS ${SRCFLAGS} $_FLEX_HEADER -o${output;suf=$_FLEX_GEN_EXT:SRC} ${output_include;hide:"util/system/compiler.h"} ${input:SRC} ${kv;hide:"p LX"} ${kv;hide:"pc yellow"}
- .ADDINCL=$_FLEX_TOOL_DIR
- .SEM=target_flex_lexers ${tool;hide:_FLEX_TOOL} ${output;hide;suf=${OBJ_SUF}.o:SRC} ${input:SRC} && set_global_flags LEX_FLAGS $LEX_FLAGS
- }
- macro _SRC("lex", SRC, SRCFLAGS...) {
- .CMD=$_SRC(l $SRC $SRCFLAGS)
- }
- macro _SRC("lpp", SRC, SRCFLAGS...) {
- .CMD=$_SRC(l $SRC $SRCFLAGS)
- }
|