├── .gitignore ├── .travis.yml ├── Makefile ├── defaults.in.h ├── docs ├── .gitignore ├── calling conventions.md ├── grammar.txt ├── stack frame.png └── todo.txt ├── inc ├── analyzer-internal.h ├── analyzer.h ├── architecture.h ├── asm-amd64.h ├── asm.h ├── ast.h ├── bitarray.h ├── compiler.h ├── debug.h ├── emitter-internal.h ├── emitter.h ├── error.h ├── eval.h ├── hashmap.h ├── ir.h ├── lexer.h ├── operand.h ├── options.h ├── parser-internal.h ├── parser.h ├── reg.h ├── stream.h ├── sym.h ├── type.h └── vector.h ├── license-gpl.txt ├── makedefaults.sh ├── readme.markdown ├── src ├── .gitignore ├── analyzer-decl.c ├── analyzer-value.c ├── analyzer.c ├── architecture.c ├── asm-amd64.c ├── asm.c ├── ast.c ├── bitarray.c ├── compiler.c ├── debug.c ├── emitter-decl.c ├── emitter-helpers.c ├── emitter-value.c ├── emitter.c ├── error.c ├── eval.c ├── hashmap.c ├── ir-emit.c ├── ir-opt.c ├── ir.c ├── lexer.c ├── main.c ├── operand.c ├── options.c ├── parser-decl.c ├── parser-helpers.c ├── parser-value.c ├── parser.c ├── reg.c ├── std.c ├── stream.c ├── sym.c ├── type.c └── vector.c ├── std ├── compat.h ├── std.h ├── stdio.h └── stdlib.h └── tests ├── .gitignore ├── args.c ├── array-2.c ├── array-inferred.c ├── array-struct-literals.c ├── compat.h ├── compound-literal.c ├── crt-0.c ├── designated-init.c ├── division-2.c ├── division.c ├── dowhile.c ├── factorial.c ├── fib.c ├── fn-impl.c ├── hashset.c ├── include ├── ctype.h ├── std.h ├── stdarg.h ├── stdio.h ├── stdlib.h ├── string.h └── time.h ├── incomplete.c ├── labels.c ├── lambda-for.c ├── lambda.c ├── map.c ├── multiarray.c ├── return.c ├── shift.c ├── stdarg.c ├── strstr.c ├── struct-pass.c ├── struct-return.c ├── struct-union.c ├── struct.c ├── swap.c ├── ternary.c ├── union-0.c ├── xor-list-error.c └── xor-list.c /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/.travis.yml -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/Makefile -------------------------------------------------------------------------------- /defaults.in.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/defaults.in.h -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | /html/ 2 | /latex/ 3 | -------------------------------------------------------------------------------- /docs/calling conventions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/docs/calling conventions.md -------------------------------------------------------------------------------- /docs/grammar.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/docs/grammar.txt -------------------------------------------------------------------------------- /docs/stack frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/docs/stack frame.png -------------------------------------------------------------------------------- /docs/todo.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/docs/todo.txt -------------------------------------------------------------------------------- /inc/analyzer-internal.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/analyzer-internal.h -------------------------------------------------------------------------------- /inc/analyzer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/analyzer.h -------------------------------------------------------------------------------- /inc/architecture.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/architecture.h -------------------------------------------------------------------------------- /inc/asm-amd64.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/asm-amd64.h -------------------------------------------------------------------------------- /inc/asm.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/asm.h -------------------------------------------------------------------------------- /inc/ast.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/ast.h -------------------------------------------------------------------------------- /inc/bitarray.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/bitarray.h -------------------------------------------------------------------------------- /inc/compiler.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/compiler.h -------------------------------------------------------------------------------- /inc/debug.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/debug.h -------------------------------------------------------------------------------- /inc/emitter-internal.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/emitter-internal.h -------------------------------------------------------------------------------- /inc/emitter.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/emitter.h -------------------------------------------------------------------------------- /inc/error.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/error.h -------------------------------------------------------------------------------- /inc/eval.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/eval.h -------------------------------------------------------------------------------- /inc/hashmap.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/hashmap.h -------------------------------------------------------------------------------- /inc/ir.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/ir.h -------------------------------------------------------------------------------- /inc/lexer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/lexer.h -------------------------------------------------------------------------------- /inc/operand.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/operand.h -------------------------------------------------------------------------------- /inc/options.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/options.h -------------------------------------------------------------------------------- /inc/parser-internal.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/parser-internal.h -------------------------------------------------------------------------------- /inc/parser.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/parser.h -------------------------------------------------------------------------------- /inc/reg.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/reg.h -------------------------------------------------------------------------------- /inc/stream.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/stream.h -------------------------------------------------------------------------------- /inc/sym.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/sym.h -------------------------------------------------------------------------------- /inc/type.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/type.h -------------------------------------------------------------------------------- /inc/vector.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/inc/vector.h -------------------------------------------------------------------------------- /license-gpl.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/license-gpl.txt -------------------------------------------------------------------------------- /makedefaults.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/makedefaults.sh -------------------------------------------------------------------------------- /readme.markdown: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/readme.markdown -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | /*.o 2 | /*.s -------------------------------------------------------------------------------- /src/analyzer-decl.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/analyzer-decl.c -------------------------------------------------------------------------------- /src/analyzer-value.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/analyzer-value.c -------------------------------------------------------------------------------- /src/analyzer.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/analyzer.c -------------------------------------------------------------------------------- /src/architecture.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/architecture.c -------------------------------------------------------------------------------- /src/asm-amd64.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/asm-amd64.c -------------------------------------------------------------------------------- /src/asm.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/asm.c -------------------------------------------------------------------------------- /src/ast.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/ast.c -------------------------------------------------------------------------------- /src/bitarray.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/bitarray.c -------------------------------------------------------------------------------- /src/compiler.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/compiler.c -------------------------------------------------------------------------------- /src/debug.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/debug.c -------------------------------------------------------------------------------- /src/emitter-decl.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/emitter-decl.c -------------------------------------------------------------------------------- /src/emitter-helpers.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/emitter-helpers.c -------------------------------------------------------------------------------- /src/emitter-value.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/emitter-value.c -------------------------------------------------------------------------------- /src/emitter.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/emitter.c -------------------------------------------------------------------------------- /src/error.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/error.c -------------------------------------------------------------------------------- /src/eval.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/eval.c -------------------------------------------------------------------------------- /src/hashmap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/hashmap.c -------------------------------------------------------------------------------- /src/ir-emit.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/ir-emit.c -------------------------------------------------------------------------------- /src/ir-opt.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/ir-opt.c -------------------------------------------------------------------------------- /src/ir.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/ir.c -------------------------------------------------------------------------------- /src/lexer.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/lexer.c -------------------------------------------------------------------------------- /src/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/main.c -------------------------------------------------------------------------------- /src/operand.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/operand.c -------------------------------------------------------------------------------- /src/options.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/options.c -------------------------------------------------------------------------------- /src/parser-decl.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/parser-decl.c -------------------------------------------------------------------------------- /src/parser-helpers.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/parser-helpers.c -------------------------------------------------------------------------------- /src/parser-value.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/parser-value.c -------------------------------------------------------------------------------- /src/parser.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/parser.c -------------------------------------------------------------------------------- /src/reg.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/reg.c -------------------------------------------------------------------------------- /src/std.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/std.c -------------------------------------------------------------------------------- /src/stream.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/stream.c -------------------------------------------------------------------------------- /src/sym.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/sym.c -------------------------------------------------------------------------------- /src/type.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/type.c -------------------------------------------------------------------------------- /src/vector.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/src/vector.c -------------------------------------------------------------------------------- /std/compat.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/std/compat.h -------------------------------------------------------------------------------- /std/std.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/std/std.h -------------------------------------------------------------------------------- /std/stdio.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/std/stdio.h -------------------------------------------------------------------------------- /std/stdlib.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/std/stdlib.h -------------------------------------------------------------------------------- /tests/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/.gitignore -------------------------------------------------------------------------------- /tests/args.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/args.c -------------------------------------------------------------------------------- /tests/array-2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/array-2.c -------------------------------------------------------------------------------- /tests/array-inferred.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/array-inferred.c -------------------------------------------------------------------------------- /tests/array-struct-literals.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/array-struct-literals.c -------------------------------------------------------------------------------- /tests/compat.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/compat.h -------------------------------------------------------------------------------- /tests/compound-literal.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/compound-literal.c -------------------------------------------------------------------------------- /tests/crt-0.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/crt-0.c -------------------------------------------------------------------------------- /tests/designated-init.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/designated-init.c -------------------------------------------------------------------------------- /tests/division-2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/division-2.c -------------------------------------------------------------------------------- /tests/division.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/division.c -------------------------------------------------------------------------------- /tests/dowhile.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/dowhile.c -------------------------------------------------------------------------------- /tests/factorial.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/factorial.c -------------------------------------------------------------------------------- /tests/fib.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/fib.c -------------------------------------------------------------------------------- /tests/fn-impl.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/fn-impl.c -------------------------------------------------------------------------------- /tests/hashset.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/hashset.c -------------------------------------------------------------------------------- /tests/include/ctype.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/include/ctype.h -------------------------------------------------------------------------------- /tests/include/std.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/include/std.h -------------------------------------------------------------------------------- /tests/include/stdarg.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/include/stdio.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/include/stdio.h -------------------------------------------------------------------------------- /tests/include/stdlib.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/include/stdlib.h -------------------------------------------------------------------------------- /tests/include/string.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/include/string.h -------------------------------------------------------------------------------- /tests/include/time.h: -------------------------------------------------------------------------------- 1 | int time (void*); -------------------------------------------------------------------------------- /tests/incomplete.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/incomplete.c -------------------------------------------------------------------------------- /tests/labels.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/labels.c -------------------------------------------------------------------------------- /tests/lambda-for.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/lambda-for.c -------------------------------------------------------------------------------- /tests/lambda.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/lambda.c -------------------------------------------------------------------------------- /tests/map.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/map.c -------------------------------------------------------------------------------- /tests/multiarray.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/multiarray.c -------------------------------------------------------------------------------- /tests/return.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/return.c -------------------------------------------------------------------------------- /tests/shift.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/shift.c -------------------------------------------------------------------------------- /tests/stdarg.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/stdarg.c -------------------------------------------------------------------------------- /tests/strstr.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/strstr.c -------------------------------------------------------------------------------- /tests/struct-pass.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/struct-pass.c -------------------------------------------------------------------------------- /tests/struct-return.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/struct-return.c -------------------------------------------------------------------------------- /tests/struct-union.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/struct-union.c -------------------------------------------------------------------------------- /tests/struct.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/struct.c -------------------------------------------------------------------------------- /tests/swap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/swap.c -------------------------------------------------------------------------------- /tests/ternary.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/ternary.c -------------------------------------------------------------------------------- /tests/union-0.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/union-0.c -------------------------------------------------------------------------------- /tests/xor-list-error.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/xor-list-error.c -------------------------------------------------------------------------------- /tests/xor-list.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fedjmike/fcc/HEAD/tests/xor-list.c --------------------------------------------------------------------------------