From 517f9b79fbabfa76aefa9c51462940e39ee65d7d Mon Sep 17 00:00:00 2001 From: Nathan Braswell Date: Mon, 3 Aug 2015 14:38:17 -0400 Subject: [PATCH] moving computers --- stdlib/grammer.krak | 22 ++++++++++++++++++++++ tests/test_grammer.krak | 8 ++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/stdlib/grammer.krak b/stdlib/grammer.krak index 3a81e0b..eb2f3fd 100644 --- a/stdlib/grammer.krak +++ b/stdlib/grammer.krak @@ -247,3 +247,25 @@ obj rule (Object) { } } +obj state (Object) { + var kernel: vector::vector + var rest: vector::vector + + fun construct(): *state { + kernel.construct() + rest.construct() + } + fun copy_construct(other: *state) { + kernel.copy_construct(&other->kernel) + rest.copy_construct(&other->rest) + } + fun operator=(other: state) { + destruct() + copy_construct(&other) + } + fun destruct() { + kernel.destruct() + rest.destruct() + } +} + diff --git a/tests/test_grammer.krak b/tests/test_grammer.krak index 135e7a2..a535897 100644 --- a/tests/test_grammer.krak +++ b/tests/test_grammer.krak @@ -7,9 +7,9 @@ import symbol:* fun main():int { - var a = load_grammer(read_file(string("../krakenGrammer.kgm"))) + /*var a = load_grammer(read_file(string("../krakenGrammer.kgm")))*/ /*var a = load_grammer(read_file(string("grammer.kgm")))*/ - /*var a = load_grammer(read_file(string("grammer2.kgm")))*/ + var a = load_grammer(read_file(string("grammer2.kgm"))) println(a.to_string()) var doFirstSet = fun() { a.calculate_first_set() @@ -39,10 +39,10 @@ fun main():int { var lex = lexer(a.terminals) - lex.set_input(read_file(string("test_grammer.krak"))) + /*lex.set_input(read_file(string("test_grammer.krak")))*/ /*lex.set_input(string("ccdahas spacedhas*/ /*returndaaaaaaaaaaaaaa"))*/ - /*lex.set_input(string("hibyed"))*/ + lex.set_input(string("hibyed")) println("woo lexing:") range(8).for_each(fun(i: int) { println(lex.next().to_string()); } ) /*range(80).for_each(fun(i: int) { println(lex.next().to_string()); } )*/