moving computers
This commit is contained in:
@@ -247,3 +247,25 @@ obj rule (Object) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
obj state (Object) {
|
||||||
|
var kernel: vector::vector<rule>
|
||||||
|
var rest: vector::vector<rule>
|
||||||
|
|
||||||
|
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()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ import symbol:*
|
|||||||
|
|
||||||
fun main():int {
|
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("grammer.kgm")))*/
|
||||||
/*var a = load_grammer(read_file(string("grammer2.kgm")))*/
|
var a = load_grammer(read_file(string("grammer2.kgm")))
|
||||||
println(a.to_string())
|
println(a.to_string())
|
||||||
var doFirstSet = fun() {
|
var doFirstSet = fun() {
|
||||||
a.calculate_first_set()
|
a.calculate_first_set()
|
||||||
@@ -39,10 +39,10 @@ fun main():int {
|
|||||||
|
|
||||||
var lex = lexer(a.terminals)
|
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*/
|
/*lex.set_input(string("ccdahas spacedhas*/
|
||||||
/*returndaaaaaaaaaaaaaa"))*/
|
/*returndaaaaaaaaaaaaaa"))*/
|
||||||
/*lex.set_input(string("hibyed"))*/
|
lex.set_input(string("hibyed"))
|
||||||
println("woo lexing:")
|
println("woo lexing:")
|
||||||
range(8).for_each(fun(i: int) { println(lex.next().to_string()); } )
|
range(8).for_each(fun(i: int) { println(lex.next().to_string()); } )
|
||||||
/*range(80).for_each(fun(i: int) { println(lex.next().to_string()); } )*/
|
/*range(80).for_each(fun(i: int) { println(lex.next().to_string()); } )*/
|
||||||
|
|||||||
Reference in New Issue
Block a user