├── .gitignore ├── .gitmodules ├── .readthedocs.yaml ├── CONTRIBUTING.md ├── COPYING ├── README.md ├── configure.sh ├── docs ├── Makefile └── source │ ├── conf.py │ ├── index.rst │ └── tutorial.rst ├── make.sh ├── src ├── ast.hh ├── ast_serializer.hh ├── builtin.hh ├── builtin │ ├── asm.hh │ ├── assign.hh │ ├── constant.hh │ ├── debug.hh │ ├── declare.hh │ ├── define.hh │ ├── doc.hh │ ├── elf.hh │ ├── equals.hh │ ├── eval.hh │ ├── fun.hh │ ├── if.hh │ ├── import.hh │ ├── macro.hh │ ├── operators.hh │ ├── quote.hh │ ├── str.hh │ ├── struct.hh │ ├── u64.hh │ ├── use.hh │ ├── value.hh │ └── while.hh ├── bytecode.hh ├── compile.hh ├── compile_error.hh ├── format.hh ├── function.hh ├── globals.hh ├── line_number_info.hh ├── macro.hh ├── main.cc ├── namespace.hh ├── object.hh ├── parser.hh ├── scope.hh ├── source_file.hh ├── value.hh └── x86_64.hh ├── test.sh └── tests ├── builtin ├── add.out ├── add.v ├── add2.out ├── add2.v ├── constant-assign.out ├── constant-assign.v ├── constant.out ├── constant.v ├── declare.out ├── declare.v ├── define-lookup-0.out ├── define-lookup-0.v ├── define-lookup-1.out ├── define-lookup-1.v ├── fun-return.out ├── fun-return.v ├── macro.out ├── macro.v ├── str.out ├── str.v ├── struct.out ├── struct.v ├── u64-gcd.out ├── u64-gcd.v ├── while-break.out ├── while-break.v ├── while-continue.out ├── while-continue.v ├── while.out └── while.v ├── elf ├── retval.out └── retval.v ├── integration ├── fib.out ├── fib.v ├── gcd.out └── gcd.v └── parser ├── at.out ├── at.v ├── brackets.out ├── brackets.v ├── comments.out ├── comments.v ├── literal_integer.out ├── literal_integer.v ├── literal_integer_bool.out ├── literal_integer_bool.v ├── literal_integer_negative.out ├── literal_integer_negative.v ├── literal_string.out ├── literal_string.v ├── precedence-2.out ├── precedence-2.v ├── precedence-3.out ├── precedence-3.v ├── precedence-4.out ├── precedence-4.v ├── precedence-5.out ├── precedence-5.v ├── precedence-assign-juxtapose.out ├── precedence-assign-juxtapose.v ├── precedence.out ├── precedence.v ├── symbol.out └── symbol.v /.gitignore: -------------------------------------------------------------------------------- 1 | .*.swp 2 | 3 | udis86-install/ 4 | v 5 | 6 | tests/elf/*.exe 7 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/.readthedocs.yaml -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/COPYING -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/README.md -------------------------------------------------------------------------------- /configure.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/configure.sh -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/docs/Makefile -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/docs/source/conf.py -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/docs/source/index.rst -------------------------------------------------------------------------------- /docs/source/tutorial.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/docs/source/tutorial.rst -------------------------------------------------------------------------------- /make.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/make.sh -------------------------------------------------------------------------------- /src/ast.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/ast.hh -------------------------------------------------------------------------------- /src/ast_serializer.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/ast_serializer.hh -------------------------------------------------------------------------------- /src/builtin.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin.hh -------------------------------------------------------------------------------- /src/builtin/asm.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/asm.hh -------------------------------------------------------------------------------- /src/builtin/assign.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/assign.hh -------------------------------------------------------------------------------- /src/builtin/constant.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/constant.hh -------------------------------------------------------------------------------- /src/builtin/debug.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/debug.hh -------------------------------------------------------------------------------- /src/builtin/declare.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/declare.hh -------------------------------------------------------------------------------- /src/builtin/define.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/define.hh -------------------------------------------------------------------------------- /src/builtin/doc.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/doc.hh -------------------------------------------------------------------------------- /src/builtin/elf.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/elf.hh -------------------------------------------------------------------------------- /src/builtin/equals.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/equals.hh -------------------------------------------------------------------------------- /src/builtin/eval.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/eval.hh -------------------------------------------------------------------------------- /src/builtin/fun.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/fun.hh -------------------------------------------------------------------------------- /src/builtin/if.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/if.hh -------------------------------------------------------------------------------- /src/builtin/import.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/import.hh -------------------------------------------------------------------------------- /src/builtin/macro.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/macro.hh -------------------------------------------------------------------------------- /src/builtin/operators.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/operators.hh -------------------------------------------------------------------------------- /src/builtin/quote.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/quote.hh -------------------------------------------------------------------------------- /src/builtin/str.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/str.hh -------------------------------------------------------------------------------- /src/builtin/struct.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/struct.hh -------------------------------------------------------------------------------- /src/builtin/u64.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/u64.hh -------------------------------------------------------------------------------- /src/builtin/use.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/use.hh -------------------------------------------------------------------------------- /src/builtin/value.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/value.hh -------------------------------------------------------------------------------- /src/builtin/while.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/builtin/while.hh -------------------------------------------------------------------------------- /src/bytecode.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/bytecode.hh -------------------------------------------------------------------------------- /src/compile.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/compile.hh -------------------------------------------------------------------------------- /src/compile_error.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/compile_error.hh -------------------------------------------------------------------------------- /src/format.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/format.hh -------------------------------------------------------------------------------- /src/function.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/function.hh -------------------------------------------------------------------------------- /src/globals.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/globals.hh -------------------------------------------------------------------------------- /src/line_number_info.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/line_number_info.hh -------------------------------------------------------------------------------- /src/macro.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/macro.hh -------------------------------------------------------------------------------- /src/main.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/main.cc -------------------------------------------------------------------------------- /src/namespace.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/namespace.hh -------------------------------------------------------------------------------- /src/object.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/object.hh -------------------------------------------------------------------------------- /src/parser.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/parser.hh -------------------------------------------------------------------------------- /src/scope.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/scope.hh -------------------------------------------------------------------------------- /src/source_file.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/source_file.hh -------------------------------------------------------------------------------- /src/value.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/value.hh -------------------------------------------------------------------------------- /src/x86_64.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/src/x86_64.hh -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/test.sh -------------------------------------------------------------------------------- /tests/builtin/add.out: -------------------------------------------------------------------------------- 1 | 101 2 | -------------------------------------------------------------------------------- /tests/builtin/add.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/add.v -------------------------------------------------------------------------------- /tests/builtin/add2.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/add2.out -------------------------------------------------------------------------------- /tests/builtin/add2.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/add2.v -------------------------------------------------------------------------------- /tests/builtin/constant-assign.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/constant-assign.out -------------------------------------------------------------------------------- /tests/builtin/constant-assign.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/constant-assign.v -------------------------------------------------------------------------------- /tests/builtin/constant.out: -------------------------------------------------------------------------------- 1 | 123 2 | -------------------------------------------------------------------------------- /tests/builtin/constant.v: -------------------------------------------------------------------------------- 1 | constant { x := u64 123 }; 2 | print x; 3 | -------------------------------------------------------------------------------- /tests/builtin/declare.out: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /tests/builtin/declare.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/declare.v -------------------------------------------------------------------------------- /tests/builtin/define-lookup-0.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/define-lookup-0.out -------------------------------------------------------------------------------- /tests/builtin/define-lookup-0.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/define-lookup-0.v -------------------------------------------------------------------------------- /tests/builtin/define-lookup-1.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/define-lookup-1.out -------------------------------------------------------------------------------- /tests/builtin/define-lookup-1.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/define-lookup-1.v -------------------------------------------------------------------------------- /tests/builtin/fun-return.out: -------------------------------------------------------------------------------- 1 | 3 2 | -------------------------------------------------------------------------------- /tests/builtin/fun-return.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/fun-return.v -------------------------------------------------------------------------------- /tests/builtin/macro.out: -------------------------------------------------------------------------------- 1 | 1337 2 | -------------------------------------------------------------------------------- /tests/builtin/macro.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/macro.v -------------------------------------------------------------------------------- /tests/builtin/str.out: -------------------------------------------------------------------------------- 1 | Hello world! 2 | -------------------------------------------------------------------------------- /tests/builtin/str.v: -------------------------------------------------------------------------------- 1 | x := str "Hello world!"; 2 | print x; 3 | -------------------------------------------------------------------------------- /tests/builtin/struct.out: -------------------------------------------------------------------------------- 1 | 10 2 | 23 3 | 999 4 | -------------------------------------------------------------------------------- /tests/builtin/struct.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/struct.v -------------------------------------------------------------------------------- /tests/builtin/u64-gcd.out: -------------------------------------------------------------------------------- 1 | 1620 2 | -------------------------------------------------------------------------------- /tests/builtin/u64-gcd.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/u64-gcd.v -------------------------------------------------------------------------------- /tests/builtin/while-break.out: -------------------------------------------------------------------------------- 1 | 0 2 | 1 3 | 2 4 | -------------------------------------------------------------------------------- /tests/builtin/while-break.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/while-break.v -------------------------------------------------------------------------------- /tests/builtin/while-continue.out: -------------------------------------------------------------------------------- 1 | 0 2 | 2 3 | 3 4 | 4 5 | -------------------------------------------------------------------------------- /tests/builtin/while-continue.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/while-continue.v -------------------------------------------------------------------------------- /tests/builtin/while.out: -------------------------------------------------------------------------------- 1 | 0 2 | 1 3 | 2 4 | 3 5 | 4 6 | -------------------------------------------------------------------------------- /tests/builtin/while.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/builtin/while.v -------------------------------------------------------------------------------- /tests/elf/retval.out: -------------------------------------------------------------------------------- 1 | 57 2 | -------------------------------------------------------------------------------- /tests/elf/retval.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/elf/retval.v -------------------------------------------------------------------------------- /tests/integration/fib.out: -------------------------------------------------------------------------------- 1 | 2584 2 | -------------------------------------------------------------------------------- /tests/integration/fib.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/integration/fib.v -------------------------------------------------------------------------------- /tests/integration/gcd.out: -------------------------------------------------------------------------------- 1 | 1620 2 | -------------------------------------------------------------------------------- /tests/integration/gcd.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/integration/gcd.v -------------------------------------------------------------------------------- /tests/parser/at.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/at.out -------------------------------------------------------------------------------- /tests/parser/at.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/at.v -------------------------------------------------------------------------------- /tests/parser/brackets.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/brackets.out -------------------------------------------------------------------------------- /tests/parser/brackets.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/brackets.v -------------------------------------------------------------------------------- /tests/parser/comments.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/comments.out -------------------------------------------------------------------------------- /tests/parser/comments.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/comments.v -------------------------------------------------------------------------------- /tests/parser/literal_integer.out: -------------------------------------------------------------------------------- 1 | (literal_integer 12345) 2 | -------------------------------------------------------------------------------- /tests/parser/literal_integer.v: -------------------------------------------------------------------------------- 1 | 12345 2 | -------------------------------------------------------------------------------- /tests/parser/literal_integer_bool.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/literal_integer_bool.out -------------------------------------------------------------------------------- /tests/parser/literal_integer_bool.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/literal_integer_bool.v -------------------------------------------------------------------------------- /tests/parser/literal_integer_negative.out: -------------------------------------------------------------------------------- 1 | (literal_integer -12345) 2 | -------------------------------------------------------------------------------- /tests/parser/literal_integer_negative.v: -------------------------------------------------------------------------------- 1 | -12345 2 | -------------------------------------------------------------------------------- /tests/parser/literal_string.out: -------------------------------------------------------------------------------- 1 | (literal_string "hello world!") 2 | -------------------------------------------------------------------------------- /tests/parser/literal_string.v: -------------------------------------------------------------------------------- 1 | "hello world!" 2 | -------------------------------------------------------------------------------- /tests/parser/precedence-2.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/precedence-2.out -------------------------------------------------------------------------------- /tests/parser/precedence-2.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/precedence-2.v -------------------------------------------------------------------------------- /tests/parser/precedence-3.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/precedence-3.out -------------------------------------------------------------------------------- /tests/parser/precedence-3.v: -------------------------------------------------------------------------------- 1 | 1, 2, 3 ; 4, 5, 6 ; 7, 8, 9 2 | -------------------------------------------------------------------------------- /tests/parser/precedence-4.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/precedence-4.out -------------------------------------------------------------------------------- /tests/parser/precedence-4.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/precedence-4.v -------------------------------------------------------------------------------- /tests/parser/precedence-5.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/precedence-5.out -------------------------------------------------------------------------------- /tests/parser/precedence-5.v: -------------------------------------------------------------------------------- 1 | @a; b 2 | -------------------------------------------------------------------------------- /tests/parser/precedence-assign-juxtapose.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/precedence-assign-juxtapose.out -------------------------------------------------------------------------------- /tests/parser/precedence-assign-juxtapose.v: -------------------------------------------------------------------------------- 1 | a b c = d e f 2 | -------------------------------------------------------------------------------- /tests/parser/precedence.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vegard/v/HEAD/tests/parser/precedence.out -------------------------------------------------------------------------------- /tests/parser/precedence.v: -------------------------------------------------------------------------------- 1 | a * b + c 2 | -------------------------------------------------------------------------------- /tests/parser/symbol.out: -------------------------------------------------------------------------------- 1 | (symbol_name _foo_bar_baz_1234) 2 | -------------------------------------------------------------------------------- /tests/parser/symbol.v: -------------------------------------------------------------------------------- 1 | _foo_bar_baz_1234 2 | --------------------------------------------------------------------------------