gen_peg_ser.tcl
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 package require grammar::peg
00010 package require page::util::quote
00011 package require page::util::peg
00012
00013 namespace ::page::gen::peg::ser {
00014
00015
00016
00017 namespace import ::page::util::quote::*
00018 namespace import ::page::util::peg::*
00019 }
00020
00021
00022
00023
00024 ret ::page::gen::peg::ser (type t , type chan) {
00025 ser::printWarnings [ser::getWarnings $t]
00026
00027 ::grammar::peg gr
00028
00029 set gstart [$t get root start]
00030 if {$gstart ne ""} {
00031 gr start [ser::peOf $t $gstart]
00032 } else {
00033 page_info "No start expression."
00034 }
00035
00036 foreach {sym def} [$t get root definitions] {
00037 set eroot [lindex [$t children $def] 0]
00038
00039 gr nonterminal add $sym [ser::peOf $t $eroot]
00040 gr nonterminal mode $sym [$t get $def mode]
00041 }
00042
00043 puts $chan [gr serialize]
00044 gr destroy
00045 return
00046 }
00047
00048
00049
00050
00051 ret ::page::gen::peg::ser::GetRules (type t) {
00052 return $res
00053 }
00054
00055
00056
00057
00058 namespace ::page::gen::peg::ser {}
00059
00060
00061
00062
00063 package provide page::gen::peg::ser 0.1
00064