This allows the destructuring of lists into individual values. We can have arbitrarily nested lists, can check for constant values and can have up to one '~'-prefixed variable per list, that will capture the remaining elements of the list. It is implemented as a second set of bytecode instructions, which define a matcher. These matchers should also enable us to implement the same pattern matching capabiities for function parameters. Not all matching features are implemented yet, predicate matching and matching into a dictionary key is not implemented yet.
75 lines
2 KiB
Makefile
75 lines
2 KiB
Makefile
AM_CFLAGS=--std=c11 -Wall -Werror -Wextra -pedantic
|
|
|
|
lib_LIBRARIES = libapfl.a
|
|
|
|
libapfl_a_SOURCES =
|
|
libapfl_a_SOURCES += alloc.c
|
|
libapfl_a_SOURCES += bytecode.c
|
|
libapfl_a_SOURCES += compile.c
|
|
libapfl_a_SOURCES += context.c
|
|
libapfl_a_SOURCES += error.c
|
|
libapfl_a_SOURCES += eval.c
|
|
libapfl_a_SOURCES += expr.c
|
|
libapfl_a_SOURCES += format.c
|
|
libapfl_a_SOURCES += gc.c
|
|
libapfl_a_SOURCES += hashmap.c
|
|
libapfl_a_SOURCES += globals.c
|
|
libapfl_a_SOURCES += matcher.c
|
|
libapfl_a_SOURCES += messages.c
|
|
libapfl_a_SOURCES += parser.c
|
|
libapfl_a_SOURCES += position.c
|
|
libapfl_a_SOURCES += resizable.c
|
|
libapfl_a_SOURCES += source_readers.c
|
|
libapfl_a_SOURCES += scope.c
|
|
libapfl_a_SOURCES += strings.c
|
|
libapfl_a_SOURCES += token.c
|
|
libapfl_a_SOURCES += tokenizer.c
|
|
libapfl_a_SOURCES += value.c
|
|
|
|
apfl_internal_headers =
|
|
apfl_internal_headers += alloc.h
|
|
apfl_internal_headers += bytecode.h
|
|
apfl_internal_headers += compile.h
|
|
apfl_internal_headers += context.h
|
|
apfl_internal_headers += format.h
|
|
apfl_internal_headers += gc.h
|
|
apfl_internal_headers += globals.h
|
|
apfl_internal_headers += hashmap.h
|
|
apfl_internal_headers += matcher.h
|
|
apfl_internal_headers += resizable.h
|
|
apfl_internal_headers += scope.h
|
|
apfl_internal_headers += strings.h
|
|
apfl_internal_headers += value.h
|
|
|
|
EXTRA_DIST = $(apfl_internal_headers) apfl.h
|
|
|
|
apflincludesdir = $(pkgincludedir)/apfl
|
|
apflincludes_HEADERS = apfl.h
|
|
|
|
bin_PROGRAMS = apfl
|
|
|
|
apfl_SOURCES = main.c apfl.h
|
|
apfl_LDADD = libapfl.a
|
|
|
|
TESTS =
|
|
check_PROGRAMS =
|
|
|
|
TESTS += tokenizer.test
|
|
check_PROGRAMS += tokenizer.test
|
|
tokenizer_test_SOURCES = tokenizer_test.c test.h
|
|
tokenizer_test_LDADD = libapfl.a
|
|
|
|
TESTS += parser.test
|
|
check_PROGRAMS += parser.test
|
|
parser_test_SOURCES = parser_test.c test.h
|
|
parser_test_LDADD = libapfl.a
|
|
|
|
TESTS += resizable.test
|
|
check_PROGRAMS += resizable.test
|
|
resizable_test_SOURCES = resizable_test.c test.h resizable.h
|
|
resizable_test_LDADD = libapfl.a
|
|
|
|
TESTS += hashmap.test
|
|
check_PROGRAMS += hashmap.test
|
|
hashmap_test_SOURCES = hashmap_test.c test.h hashmap.h
|
|
hashmap_test_LDADD = libapfl.a
|