# Copyright (c) 2022-2023, PostgreSQL Global Development Group backend_sources += files( 'analyze.c', 'parse_agg.c', 'parse_clause.c', 'parse_coerce.c', 'parse_collate.c', 'parse_cte.c', 'parse_enr.c', 'parse_expr.c', 'parse_func.c', 'parse_merge.c', 'parse_node.c', 'parse_oper.c', 'parse_param.c', 'parse_relation.c', 'parse_target.c', 'parse_type.c', 'parse_utilcmd.c', 'scansup.c', ) # Build a small utility static lib for the parser. The generation of the # parser is slow, and building this separately avoids other parts of the # backend having to wait till gram.h is generated. parser_sources = files('parser.c') backend_scanner = custom_target('scan', input: 'scan.l', output: 'scan.c', command: [flex_cmd, '--no-backup', '--fix-warnings', '--', '-CF', '-p', '-p'], ) generated_sources += backend_scanner parser_sources += backend_scanner backend_parser = custom_target('gram', input: 'gram.y', kwargs: bison_kw, ) generated_sources += backend_parser.to_list() parser_sources += backend_parser parser = static_library('parser', parser_sources, dependencies: [backend_code], include_directories: include_directories('.'), kwargs: internal_lib_args, ) backend_link_with += parser