project('flex and bison', 'c') # The point of this test is that one generator # may output headers that are necessary to build # the sources of a different generator. flex = find_program('flex', required: false) bison = find_program('bison', required: false) if not flex.found() error('MESON_SKIP_TEST flex not found.') endif if not bison.found() error('MESON_SKIP_TEST bison not found.') endif lgen = generator(flex, output : '@PLAINNAME@.yy.c', arguments : ['-o', '@OUTPUT@', '@INPUT@']) lfiles = lgen.process('lexer.l') pgen = generator(bison, output : ['@BASENAME@.tab.c', '@BASENAME@.tab.h'], arguments : ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@']) pfiles = pgen.process('parser.y') e = executable('pgen', 'prog.c', lfiles, pfiles, override_options: 'unity=off') test('parsertest', e, args: [meson.current_source_dir() / 'testfile'])