├── 2 ├── .gitignore ├── LICENSE ├── Makefile ├── README.GRAMMAR ├── README.STYLE_GUIDE ├── README.md ├── como.c ├── como_ast.c ├── como_ast.h ├── como_ast_free.c ├── como_compiler.c ├── como_compiler.h ├── como_debug.c ├── como_debug.h ├── como_executor.c ├── como_executor.h ├── como_globals.h ├── como_io.c ├── como_io.h ├── como_lexer.h ├── como_lexer.l ├── como_object.c ├── como_object.h ├── como_opcode.c ├── como_opcode.h ├── como_parser.c ├── como_parser.h ├── como_parser.y ├── como_stack.c ├── como_stack.h ├── makedebug.sh ├── support └── .vimrc ├── test ├── add ├── and ├── array ├── array2 ├── array4 ├── assert ├── assert2 ├── assign ├── assignexpr ├── even.como ├── expr ├── fact ├── first_class_functions ├── fizzbuzz ├── for_loop ├── func ├── func_symbol_table ├── gc ├── len ├── print ├── printarray ├── printfunction ├── range.como ├── recursiveprint ├── return_val_unused ├── returnarray ├── slot ├── stacktrace ├── sym ├── test.asm ├── test_como_io.c ├── this ├── typeof ├── typeof2 ├── typeof3 ├── typeof4 ├── typeofunarynot ├── unary └── var ├── vm.c └── vm ├── Makefile ├── builtin_readline.c ├── builtins.c ├── como_debug.c ├── como_debug.h ├── eval.c ├── gc.c ├── lang ├── a.out ├── ast.c ├── buildast ├── buildparser ├── como_lexer.c ├── como_lexer.h ├── como_parser.h ├── future ├── grammar.tab.c ├── grammar.y ├── grammar2.tab.c ├── grammar2.y ├── graph.h ├── io.c ├── lexer.l └── queue.co ├── leaktest ├── mm ├── Makefile └── mm.c ├── output ├── program.c ├── simple.c ├── vm.c ├── vm2 ├── vm2.c └── vm3.c /2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/2 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/Makefile -------------------------------------------------------------------------------- /README.GRAMMAR: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/README.GRAMMAR -------------------------------------------------------------------------------- /README.STYLE_GUIDE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/README.STYLE_GUIDE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/README.md -------------------------------------------------------------------------------- /como.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como.c -------------------------------------------------------------------------------- /como_ast.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_ast.c -------------------------------------------------------------------------------- /como_ast.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_ast.h -------------------------------------------------------------------------------- /como_ast_free.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_ast_free.c -------------------------------------------------------------------------------- /como_compiler.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_compiler.c -------------------------------------------------------------------------------- /como_compiler.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_compiler.h -------------------------------------------------------------------------------- /como_debug.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_debug.c -------------------------------------------------------------------------------- /como_debug.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_debug.h -------------------------------------------------------------------------------- /como_executor.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_executor.c -------------------------------------------------------------------------------- /como_executor.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_executor.h -------------------------------------------------------------------------------- /como_globals.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_globals.h -------------------------------------------------------------------------------- /como_io.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_io.c -------------------------------------------------------------------------------- /como_io.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_io.h -------------------------------------------------------------------------------- /como_lexer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_lexer.h -------------------------------------------------------------------------------- /como_lexer.l: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_lexer.l -------------------------------------------------------------------------------- /como_object.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_object.c -------------------------------------------------------------------------------- /como_object.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_object.h -------------------------------------------------------------------------------- /como_opcode.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_opcode.c -------------------------------------------------------------------------------- /como_opcode.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_opcode.h -------------------------------------------------------------------------------- /como_parser.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_parser.c -------------------------------------------------------------------------------- /como_parser.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_parser.h -------------------------------------------------------------------------------- /como_parser.y: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_parser.y -------------------------------------------------------------------------------- /como_stack.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_stack.c -------------------------------------------------------------------------------- /como_stack.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/como_stack.h -------------------------------------------------------------------------------- /makedebug.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | make CPPFLAGS=-DCOMO_DEBUG=1 3 | -------------------------------------------------------------------------------- /support/.vimrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/support/.vimrc -------------------------------------------------------------------------------- /test/add: -------------------------------------------------------------------------------- 1 | 1+1; 2 | -------------------------------------------------------------------------------- /test/and: -------------------------------------------------------------------------------- 1 | assert(0 == 0 && 0 != 1); 2 | -------------------------------------------------------------------------------- /test/array: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/array -------------------------------------------------------------------------------- /test/array2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/array2 -------------------------------------------------------------------------------- /test/array4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/array4 -------------------------------------------------------------------------------- /test/assert: -------------------------------------------------------------------------------- 1 | assert(0); 2 | -------------------------------------------------------------------------------- /test/assert2: -------------------------------------------------------------------------------- 1 | assert(1 == 1); 2 | -------------------------------------------------------------------------------- /test/assign: -------------------------------------------------------------------------------- 1 | a = "Ryan McCullagh"; 2 | -------------------------------------------------------------------------------- /test/assignexpr: -------------------------------------------------------------------------------- 1 | expr = 1 + 5; 2 | -------------------------------------------------------------------------------- /test/even.como: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/even.como -------------------------------------------------------------------------------- /test/expr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/expr -------------------------------------------------------------------------------- /test/fact: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/fact -------------------------------------------------------------------------------- /test/first_class_functions: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/first_class_functions -------------------------------------------------------------------------------- /test/fizzbuzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/fizzbuzz -------------------------------------------------------------------------------- /test/for_loop: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/for_loop -------------------------------------------------------------------------------- /test/func: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/func -------------------------------------------------------------------------------- /test/func_symbol_table: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/func_symbol_table -------------------------------------------------------------------------------- /test/gc: -------------------------------------------------------------------------------- 1 | print(typeof 1); 2 | -------------------------------------------------------------------------------- /test/len: -------------------------------------------------------------------------------- 1 | print(typeof len == "function"); 2 | -------------------------------------------------------------------------------- /test/print: -------------------------------------------------------------------------------- 1 | print(1); 2 | -------------------------------------------------------------------------------- /test/printarray: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/printarray -------------------------------------------------------------------------------- /test/printfunction: -------------------------------------------------------------------------------- 1 | function fn() {} 2 | 3 | print(fn); 4 | -------------------------------------------------------------------------------- /test/range.como: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/range.como -------------------------------------------------------------------------------- /test/recursiveprint: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/recursiveprint -------------------------------------------------------------------------------- /test/return_val_unused: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/return_val_unused -------------------------------------------------------------------------------- /test/returnarray: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/returnarray -------------------------------------------------------------------------------- /test/slot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/slot -------------------------------------------------------------------------------- /test/stacktrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/stacktrace -------------------------------------------------------------------------------- /test/sym: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/sym -------------------------------------------------------------------------------- /test/test.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/test.asm -------------------------------------------------------------------------------- /test/test_como_io.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/test_como_io.c -------------------------------------------------------------------------------- /test/this: -------------------------------------------------------------------------------- 1 | this = 1 + 1; 2 | -------------------------------------------------------------------------------- /test/typeof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/typeof -------------------------------------------------------------------------------- /test/typeof2: -------------------------------------------------------------------------------- 1 | print(typeof 1); 2 | -------------------------------------------------------------------------------- /test/typeof3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/typeof3 -------------------------------------------------------------------------------- /test/typeof4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/typeof4 -------------------------------------------------------------------------------- /test/typeofunarynot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/typeofunarynot -------------------------------------------------------------------------------- /test/unary: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/test/unary -------------------------------------------------------------------------------- /test/var: -------------------------------------------------------------------------------- 1 | a = ryan + 1; 2 | -------------------------------------------------------------------------------- /vm.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm.c -------------------------------------------------------------------------------- /vm/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/Makefile -------------------------------------------------------------------------------- /vm/builtin_readline.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/builtin_readline.c -------------------------------------------------------------------------------- /vm/builtins.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/builtins.c -------------------------------------------------------------------------------- /vm/como_debug.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/como_debug.c -------------------------------------------------------------------------------- /vm/como_debug.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/como_debug.h -------------------------------------------------------------------------------- /vm/eval.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/eval.c -------------------------------------------------------------------------------- /vm/gc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/gc.c -------------------------------------------------------------------------------- /vm/lang/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/a.out -------------------------------------------------------------------------------- /vm/lang/ast.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/ast.c -------------------------------------------------------------------------------- /vm/lang/buildast: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/buildast -------------------------------------------------------------------------------- /vm/lang/buildparser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/buildparser -------------------------------------------------------------------------------- /vm/lang/como_lexer.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/como_lexer.c -------------------------------------------------------------------------------- /vm/lang/como_lexer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/como_lexer.h -------------------------------------------------------------------------------- /vm/lang/como_parser.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/como_parser.h -------------------------------------------------------------------------------- /vm/lang/future: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/future -------------------------------------------------------------------------------- /vm/lang/grammar.tab.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/grammar.tab.c -------------------------------------------------------------------------------- /vm/lang/grammar.y: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/grammar.y -------------------------------------------------------------------------------- /vm/lang/grammar2.tab.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/grammar2.tab.c -------------------------------------------------------------------------------- /vm/lang/grammar2.y: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/grammar2.y -------------------------------------------------------------------------------- /vm/lang/graph.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/graph.h -------------------------------------------------------------------------------- /vm/lang/io.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/io.c -------------------------------------------------------------------------------- /vm/lang/lexer.l: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/lexer.l -------------------------------------------------------------------------------- /vm/lang/queue.co: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/lang/queue.co -------------------------------------------------------------------------------- /vm/leaktest: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/leaktest -------------------------------------------------------------------------------- /vm/mm/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/mm/Makefile -------------------------------------------------------------------------------- /vm/mm/mm.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/mm/mm.c -------------------------------------------------------------------------------- /vm/output: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vm/program.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/program.c -------------------------------------------------------------------------------- /vm/simple.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/simple.c -------------------------------------------------------------------------------- /vm/vm.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/vm.c -------------------------------------------------------------------------------- /vm/vm2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/vm2 -------------------------------------------------------------------------------- /vm/vm2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/vm2.c -------------------------------------------------------------------------------- /vm/vm3.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analang/como-lang-ng/HEAD/vm/vm3.c --------------------------------------------------------------------------------