Merge: String services on paths
authorJean Privat <jean@pryen.org>
Thu, 25 Sep 2014 13:11:11 +0000 (09:11 -0400)
committerJean Privat <jean@pryen.org>
Thu, 25 Sep 2014 13:11:11 +0000 (09:11 -0400)
Since @xymus added `%` on String, I add `/` !

I also implemented `relpath` that is really usefull (I need it for the compiler) but nitcorn and nitiwiki may also use it for their operations on relative URL or relative wiki-links

Pull-Request: #776
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

47 files changed:
contrib/benitlux/src/benitlux_daily.nit
contrib/github_search_for_jni/src/github_search_for_jni.nit
contrib/inkscape_tools/.gitignore [new file with mode: 0644]
contrib/inkscape_tools/Makefile
contrib/inkscape_tools/src/svg_to_png_and_nit.nit
contrib/inkscape_tools/tests/app/Makefile
contrib/inkscape_tools/tests/app/src/s2pn.nit
contrib/nitcc/src/Makefile
contrib/online_ide/sources/nit/pnacl_nit.nit
contrib/pep8analysis/src/parser/pep8_lexer.nit [deleted file]
contrib/pep8analysis/src/parser/pep8_parser.nit [deleted file]
contrib/pep8analysis/src/parser/pep8_test_parser.nit [deleted file]
contrib/pep8analysis/src/pep8analysis_web.nit
examples/mnit_simple/src/complete_simple_android.nit
examples/mnit_simple/src/simple.nit
examples/mnit_simple/src/simple_linux.nit
examples/mnit_simple/src/test_data_store.nit [new file with mode: 0644]
lib/android/android.nit
lib/android/android_data_store.nit [new file with mode: 0644]
lib/app/app.nit [new file with mode: 0644]
lib/app/app_base.nit [moved from lib/app.nit with 90% similarity]
lib/app/data_store.nit [new file with mode: 0644]
lib/linux/linux.nit [new file with mode: 0644]
lib/linux/linux_data_store.nit [new file with mode: 0644]
lib/markdown/markdown.nit
lib/markdown/test_markdown.nit
lib/mnit_linux/linux_app.nit
misc/jenkins/listnit.sh [new file with mode: 0755]
src/astprinter.nit
src/compiler/pnacl_platform.nit
src/doc/doc_pages.nit
src/semantize/typing.nit
src/test_test_phase.nit
tests/nitg-sg.skip
tests/sav/dino_linux.res
tests/sav/friendz_linux.res
tests/sav/linux_app.res
tests/sav/linux_assets.res
tests/sav/mnit_linux.res
tests/sav/moles_linux.res
tests/sav/nitg-g/fixme/test_platform_android.res [new file with mode: 0644]
tests/sav/nitg-s/fixme/sensors.res [new file with mode: 0644]
tests/sav/nitg-sg/fixme/sensors.res [new file with mode: 0644]
tests/sav/opengles2_hello_triangle.res
tests/sav/shoot_linux.res
tests/sav/simple_linux.res
tests/sav/test_test_phase_args1.res

index 8121683..64f6e15 100644 (file)
@@ -49,7 +49,7 @@ redef class Text
 
        # Return an `Array` of the non-empty lines in `self`
        #
-       #     assert ["a", "asdf", "", "  ", "&nbsp;", "b"].to_clean_lines == ["a", "asdf", "b"]
+       #     assert ["a", "asdf", "", "  ", "&nbsp;", "b"].join("\n").to_clean_lines == ["a", "asdf", "b"]
        fun to_clean_lines: Array[String]
        do
                var orig_lines = split_with("\n")
index 1cb86e2..d12f288 100644 (file)
@@ -21,13 +21,11 @@ import github_api
 
 # The proprieties introduced by this redef are to be used only on HashMap
 # representing a Github repository.
-#
-# REQUIRE `assert self isa HashMap[String, nullable Object]`
-# REQUIRE `for v in self.values do assert v isa Int
 redef class HashMap[K, V]
        # The repository has at least 50% Java code
        fun has_lots_of_java: Bool
        do
+               assert self isa HashMap[String, nullable Object]
                var java_count = 0
                if keys.has("Java") then java_count = self["Java"].as(Int)
 
@@ -35,7 +33,6 @@ redef class HashMap[K, V]
 
                var total = 0
                for k, v in self do
-                       assert k isa String
                        assert v isa Int
                        total += v
                end
@@ -46,6 +43,7 @@ redef class HashMap[K, V]
        # The repository has at least 100 lines of C code
        fun has_some_c: Bool
        do
+               assert self isa HashMap[String, nullable Object]
                var c_count = 0
                if keys.has("C") then c_count = self["C"].as(Int)
                return c_count > 100
diff --git a/contrib/inkscape_tools/.gitignore b/contrib/inkscape_tools/.gitignore
new file mode 100644 (file)
index 0000000..cdc5f8c
--- /dev/null
@@ -0,0 +1,5 @@
+tests/app/assets/
+tests/app/bin/
+tests/app/res2/
+tests/app/src/drawing.nit
+tests/dino/
index a93a9ba..834ad14 100644 (file)
@@ -1,8 +1,10 @@
+all: bins tests
+
 bins:
        mkdir -p bin
        ../../bin/nitg --dir bin src/svg_to_png_and_nit.nit src/svg_to_icons.nit
 
-tests: test-dino
+tests: test-dino test-app
 
 test-app: bin/svg_to_png_and_nit
        make -C tests/app
index 5e2db2f..1a2d7b3 100644 (file)
@@ -205,7 +205,7 @@ for drawing in drawings do
        # Nit class
        var nit_class_name = drawing_name.chars.first.to_s.to_upper + drawing_name.substring_from(1) + "Images"
        var nit_src = new ImageSetSrc(nit_class_name)
-       nit_src.attributes.add "\tprivate var main_image: Image\n"
+       nit_src.attributes.add "\tprivate var main_image: Image is noinit\n"
        nit_src.load_exprs.add "\t\tmain_image = app.load_image(\"images/{drawing_name}.png\")\n"
 
        # Sort images by name, it prevents Array errors and looks better
@@ -234,7 +234,7 @@ for drawing in drawings do
                        nit_src.load_exprs.add "\t\t{nit_name}.add(main_image.subimage({x}, {y}, {w}, {h}))\n"
                else
                        # Single image
-                       nit_src.attributes.add "\tvar {nit_name}: Image\n"
+                       nit_src.attributes.add "\tvar {nit_name}: Image is noinit\n"
                        nit_src.load_exprs.add "\t\t{nit_name} = main_image.subimage({x}, {y}, {w}, {h})\n"
                end
        end
index e1e203b..b788061 100644 (file)
@@ -14,6 +14,6 @@ images:
 
 icons:
        mkdir -p res1 res2 res3
-       ../../bin/svg_to_icons art/icon.svg --large --out res1
+       #../../bin/svg_to_icons art/icon.svg --large --out res1
        ../../bin/svg_to_icons art/drawing.svg --large --out res2 --id 0circle
-       ../../bin/svg_to_icons art/icon.svg --android --out res3
+       #../../bin/svg_to_icons art/icon.svg --android --out res3
index 822e419..43a633d 100644 (file)
 
 import drawing
 
-class S2pnApp
-       super App
+redef class App
 
        var img_set: DrawingImages
 
        init do super
 
-       redef fun init_window
+       redef fun window_created
        do
                super
 
@@ -52,6 +51,3 @@ class S2pnApp
                return false
        end
 end
-
-var app = new S2pnApp
-app.main_loop
index b805c33..f66a44e 100644 (file)
@@ -1,6 +1,6 @@
 NITC=../../../bin/nitg
 
-all: nitcc calc
+all: nitcc calc minilang
 
 nitcc_parser_gen: nitcc_parser_gen.nit
        @echo "*** Compile the nitcc bootstrap parser generator -- level 0"
@@ -41,7 +41,7 @@ clean:
                *.dot *.out \
                nitcc_lexer.nit nitcc_parser.nit nitcc_test_parser.nit nitcc_parser_gen \
                nitcc0 nitcc1 \
-               calc \
+               calc minilang \
                ../examples/*.dot ../examples/*.out ../examples/*_lexer.nit ../examples/*_parser.nit ../examples/*_test_parser.nit \
                2>/dev/null || true
 
index f4a02f2..477c79f 100644 (file)
@@ -146,7 +146,7 @@ class Pnacl_nit
                        # We need a model to collect stufs
                        var model = new Model
                        # An a model builder to parse files
-                       var modelbuilder = new ModelBuilder(model, toolcontext.as(not null))
+                       var modelbuilder = new ModelBuilder(model, toolcontext)
 
                        var arguments = toolcontext.option_context.rest
                        var progname = arguments.first
@@ -169,8 +169,8 @@ class Pnacl_nit
                                mainmodule.set_imported_mmodules(mmodules)
                        end
 
-                       var self_mm = mainmodule.as(not null)
-                       var self_args = arguments.as(not null)
+                       var self_mm = mainmodule
+                       var self_args = arguments
 
                        if toolcontext.opt_debugger_autorun.value then
                                modelbuilder.run_debugger_autorun(self_mm, self_args)
diff --git a/contrib/pep8analysis/src/parser/pep8_lexer.nit b/contrib/pep8analysis/src/parser/pep8_lexer.nit
deleted file mode 100644 (file)
index 5e0fa09..0000000
+++ /dev/null
@@ -1,3654 +0,0 @@
-# Lexer generated by nitccimport nitcc_runtime
-import pep8_parser
-class MyLexer
-       super Lexer
-       redef fun start_state do return dfastate_0
-end
-redef class Object
-       private fun dfastate_0: DFAState0 do return once new DFAState0
-       private fun dfastate_1: DFAState1 do return once new DFAState1
-       private fun dfastate_2: DFAState2 do return once new DFAState2
-       private fun dfastate_3: DFAState3 do return once new DFAState3
-       private fun dfastate_4: DFAState4 do return once new DFAState4
-       private fun dfastate_5: DFAState5 do return once new DFAState5
-       private fun dfastate_6: DFAState6 do return once new DFAState6
-       private fun dfastate_7: DFAState7 do return once new DFAState7
-       private fun dfastate_8: DFAState8 do return once new DFAState8
-       private fun dfastate_9: DFAState9 do return once new DFAState9
-       private fun dfastate_10: DFAState10 do return once new DFAState10
-       private fun dfastate_11: DFAState11 do return once new DFAState11
-       private fun dfastate_12: DFAState12 do return once new DFAState12
-       private fun dfastate_13: DFAState13 do return once new DFAState13
-       private fun dfastate_14: DFAState14 do return once new DFAState14
-       private fun dfastate_15: DFAState15 do return once new DFAState15
-       private fun dfastate_16: DFAState16 do return once new DFAState16
-       private fun dfastate_17: DFAState17 do return once new DFAState17
-       private fun dfastate_18: DFAState18 do return once new DFAState18
-       private fun dfastate_19: DFAState19 do return once new DFAState19
-       private fun dfastate_20: DFAState20 do return once new DFAState20
-       private fun dfastate_21: DFAState21 do return once new DFAState21
-       private fun dfastate_22: DFAState22 do return once new DFAState22
-       private fun dfastate_23: DFAState23 do return once new DFAState23
-       private fun dfastate_24: DFAState24 do return once new DFAState24
-       private fun dfastate_25: DFAState25 do return once new DFAState25
-       private fun dfastate_26: DFAState26 do return once new DFAState26
-       private fun dfastate_27: DFAState27 do return once new DFAState27
-       private fun dfastate_28: DFAState28 do return once new DFAState28
-       private fun dfastate_29: DFAState29 do return once new DFAState29
-       private fun dfastate_30: DFAState30 do return once new DFAState30
-       private fun dfastate_31: DFAState31 do return once new DFAState31
-       private fun dfastate_32: DFAState32 do return once new DFAState32
-       private fun dfastate_33: DFAState33 do return once new DFAState33
-       private fun dfastate_34: DFAState34 do return once new DFAState34
-       private fun dfastate_35: DFAState35 do return once new DFAState35
-       private fun dfastate_36: DFAState36 do return once new DFAState36
-       private fun dfastate_37: DFAState37 do return once new DFAState37
-       private fun dfastate_38: DFAState38 do return once new DFAState38
-       private fun dfastate_39: DFAState39 do return once new DFAState39
-       private fun dfastate_40: DFAState40 do return once new DFAState40
-       private fun dfastate_41: DFAState41 do return once new DFAState41
-       private fun dfastate_42: DFAState42 do return once new DFAState42
-       private fun dfastate_43: DFAState43 do return once new DFAState43
-       private fun dfastate_44: DFAState44 do return once new DFAState44
-       private fun dfastate_45: DFAState45 do return once new DFAState45
-       private fun dfastate_46: DFAState46 do return once new DFAState46
-       private fun dfastate_47: DFAState47 do return once new DFAState47
-       private fun dfastate_48: DFAState48 do return once new DFAState48
-       private fun dfastate_49: DFAState49 do return once new DFAState49
-       private fun dfastate_50: DFAState50 do return once new DFAState50
-       private fun dfastate_51: DFAState51 do return once new DFAState51
-       private fun dfastate_52: DFAState52 do return once new DFAState52
-       private fun dfastate_53: DFAState53 do return once new DFAState53
-       private fun dfastate_54: DFAState54 do return once new DFAState54
-       private fun dfastate_55: DFAState55 do return once new DFAState55
-       private fun dfastate_56: DFAState56 do return once new DFAState56
-       private fun dfastate_57: DFAState57 do return once new DFAState57
-       private fun dfastate_58: DFAState58 do return once new DFAState58
-       private fun dfastate_59: DFAState59 do return once new DFAState59
-       private fun dfastate_60: DFAState60 do return once new DFAState60
-       private fun dfastate_61: DFAState61 do return once new DFAState61
-       private fun dfastate_62: DFAState62 do return once new DFAState62
-       private fun dfastate_63: DFAState63 do return once new DFAState63
-       private fun dfastate_64: DFAState64 do return once new DFAState64
-       private fun dfastate_65: DFAState65 do return once new DFAState65
-       private fun dfastate_66: DFAState66 do return once new DFAState66
-       private fun dfastate_67: DFAState67 do return once new DFAState67
-       private fun dfastate_68: DFAState68 do return once new DFAState68
-       private fun dfastate_69: DFAState69 do return once new DFAState69
-       private fun dfastate_70: DFAState70 do return once new DFAState70
-       private fun dfastate_71: DFAState71 do return once new DFAState71
-       private fun dfastate_72: DFAState72 do return once new DFAState72
-       private fun dfastate_73: DFAState73 do return once new DFAState73
-       private fun dfastate_74: DFAState74 do return once new DFAState74
-       private fun dfastate_75: DFAState75 do return once new DFAState75
-       private fun dfastate_76: DFAState76 do return once new DFAState76
-       private fun dfastate_77: DFAState77 do return once new DFAState77
-       private fun dfastate_78: DFAState78 do return once new DFAState78
-       private fun dfastate_79: DFAState79 do return once new DFAState79
-       private fun dfastate_80: DFAState80 do return once new DFAState80
-       private fun dfastate_81: DFAState81 do return once new DFAState81
-       private fun dfastate_82: DFAState82 do return once new DFAState82
-       private fun dfastate_83: DFAState83 do return once new DFAState83
-       private fun dfastate_84: DFAState84 do return once new DFAState84
-       private fun dfastate_85: DFAState85 do return once new DFAState85
-       private fun dfastate_86: DFAState86 do return once new DFAState86
-       private fun dfastate_87: DFAState87 do return once new DFAState87
-       private fun dfastate_88: DFAState88 do return once new DFAState88
-       private fun dfastate_89: DFAState89 do return once new DFAState89
-       private fun dfastate_90: DFAState90 do return once new DFAState90
-       private fun dfastate_91: DFAState91 do return once new DFAState91
-       private fun dfastate_92: DFAState92 do return once new DFAState92
-       private fun dfastate_93: DFAState93 do return once new DFAState93
-       private fun dfastate_94: DFAState94 do return once new DFAState94
-       private fun dfastate_95: DFAState95 do return once new DFAState95
-       private fun dfastate_96: DFAState96 do return once new DFAState96
-       private fun dfastate_97: DFAState97 do return once new DFAState97
-       private fun dfastate_98: DFAState98 do return once new DFAState98
-       private fun dfastate_99: DFAState99 do return once new DFAState99
-       private fun dfastate_100: DFAState100 do return once new DFAState100
-       private fun dfastate_101: DFAState101 do return once new DFAState101
-       private fun dfastate_102: DFAState102 do return once new DFAState102
-       private fun dfastate_103: DFAState103 do return once new DFAState103
-       private fun dfastate_104: DFAState104 do return once new DFAState104
-       private fun dfastate_105: DFAState105 do return once new DFAState105
-       private fun dfastate_106: DFAState106 do return once new DFAState106
-       private fun dfastate_107: DFAState107 do return once new DFAState107
-       private fun dfastate_108: DFAState108 do return once new DFAState108
-       private fun dfastate_109: DFAState109 do return once new DFAState109
-       private fun dfastate_110: DFAState110 do return once new DFAState110
-       private fun dfastate_111: DFAState111 do return once new DFAState111
-       private fun dfastate_112: DFAState112 do return once new DFAState112
-end
-class MyNToken
-       super NToken
-end
-class DFAState0
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 46 then return dfastate_1
-               if c.ascii == 34 then return dfastate_2
-               if c.ascii == 39 then return dfastate_3
-               if c.ascii == 44 then return dfastate_4
-               if c.ascii == 58 then return dfastate_5
-               if c.ascii == 95 then return dfastate_6
-               if c.ascii == 97 then return dfastate_7
-               if c.ascii == 98 then return dfastate_7
-               if c.ascii == 99 then return dfastate_7
-               if c.ascii == 100 then return dfastate_7
-               if c.ascii == 101 then return dfastate_7
-               if c.ascii == 102 then return dfastate_7
-               if c.ascii == 103 then return dfastate_7
-               if c.ascii == 104 then return dfastate_7
-               if c.ascii == 105 then return dfastate_7
-               if c.ascii == 106 then return dfastate_7
-               if c.ascii == 107 then return dfastate_7
-               if c.ascii == 108 then return dfastate_7
-               if c.ascii == 109 then return dfastate_7
-               if c.ascii == 110 then return dfastate_7
-               if c.ascii == 111 then return dfastate_7
-               if c.ascii == 112 then return dfastate_7
-               if c.ascii == 113 then return dfastate_7
-               if c.ascii == 114 then return dfastate_7
-               if c.ascii == 115 then return dfastate_7
-               if c.ascii == 116 then return dfastate_7
-               if c.ascii == 117 then return dfastate_7
-               if c.ascii == 118 then return dfastate_7
-               if c.ascii == 119 then return dfastate_7
-               if c.ascii == 120 then return dfastate_7
-               if c.ascii == 121 then return dfastate_7
-               if c.ascii == 122 then return dfastate_7
-               if c.ascii == 65 then return dfastate_8
-               if c.ascii == 66 then return dfastate_8
-               if c.ascii == 67 then return dfastate_8
-               if c.ascii == 68 then return dfastate_8
-               if c.ascii == 69 then return dfastate_8
-               if c.ascii == 70 then return dfastate_8
-               if c.ascii == 71 then return dfastate_8
-               if c.ascii == 72 then return dfastate_8
-               if c.ascii == 73 then return dfastate_8
-               if c.ascii == 74 then return dfastate_8
-               if c.ascii == 75 then return dfastate_8
-               if c.ascii == 76 then return dfastate_8
-               if c.ascii == 77 then return dfastate_8
-               if c.ascii == 78 then return dfastate_8
-               if c.ascii == 79 then return dfastate_8
-               if c.ascii == 80 then return dfastate_8
-               if c.ascii == 81 then return dfastate_8
-               if c.ascii == 82 then return dfastate_8
-               if c.ascii == 83 then return dfastate_8
-               if c.ascii == 84 then return dfastate_8
-               if c.ascii == 85 then return dfastate_8
-               if c.ascii == 86 then return dfastate_8
-               if c.ascii == 87 then return dfastate_8
-               if c.ascii == 88 then return dfastate_8
-               if c.ascii == 89 then return dfastate_8
-               if c.ascii == 90 then return dfastate_8
-               if c.ascii == 13 then return dfastate_9
-               if c.ascii == 10 then return dfastate_10
-               if c.ascii == 59 then return dfastate_11
-               if c.ascii == 9 then return dfastate_12
-               if c.ascii == 32 then return dfastate_13
-               return null
-       end
-end
-class DFAState1
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 101 then return dfastate_43
-               if c.ascii == 69 then return dfastate_44
-               if c.ascii == 98 then return dfastate_45
-               if c.ascii == 66 then return dfastate_46
-               if c.ascii == 119 then return dfastate_47
-               if c.ascii == 87 then return dfastate_48
-               if c.ascii == 97 then return dfastate_49
-               if c.ascii == 65 then return dfastate_50
-               return null
-       end
-end
-class DFAState2
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 32 then return dfastate_33
-               if c.ascii == 33 then return dfastate_33
-               if c.ascii == 35 then return dfastate_33
-               if c.ascii == 36 then return dfastate_33
-               if c.ascii == 37 then return dfastate_33
-               if c.ascii == 38 then return dfastate_33
-               if c.ascii == 39 then return dfastate_33
-               if c.ascii == 40 then return dfastate_33
-               if c.ascii == 41 then return dfastate_33
-               if c.ascii == 42 then return dfastate_33
-               if c.ascii == 43 then return dfastate_33
-               if c.ascii == 44 then return dfastate_33
-               if c.ascii == 45 then return dfastate_33
-               if c.ascii == 46 then return dfastate_33
-               if c.ascii == 47 then return dfastate_33
-               if c.ascii == 48 then return dfastate_33
-               if c.ascii == 49 then return dfastate_33
-               if c.ascii == 50 then return dfastate_33
-               if c.ascii == 51 then return dfastate_33
-               if c.ascii == 52 then return dfastate_33
-               if c.ascii == 53 then return dfastate_33
-               if c.ascii == 54 then return dfastate_33
-               if c.ascii == 55 then return dfastate_33
-               if c.ascii == 56 then return dfastate_33
-               if c.ascii == 57 then return dfastate_33
-               if c.ascii == 58 then return dfastate_33
-               if c.ascii == 59 then return dfastate_33
-               if c.ascii == 60 then return dfastate_33
-               if c.ascii == 61 then return dfastate_33
-               if c.ascii == 62 then return dfastate_33
-               if c.ascii == 63 then return dfastate_33
-               if c.ascii == 64 then return dfastate_33
-               if c.ascii == 65 then return dfastate_33
-               if c.ascii == 66 then return dfastate_33
-               if c.ascii == 67 then return dfastate_33
-               if c.ascii == 68 then return dfastate_33
-               if c.ascii == 69 then return dfastate_33
-               if c.ascii == 70 then return dfastate_33
-               if c.ascii == 71 then return dfastate_33
-               if c.ascii == 72 then return dfastate_33
-               if c.ascii == 73 then return dfastate_33
-               if c.ascii == 74 then return dfastate_33
-               if c.ascii == 75 then return dfastate_33
-               if c.ascii == 76 then return dfastate_33
-               if c.ascii == 77 then return dfastate_33
-               if c.ascii == 78 then return dfastate_33
-               if c.ascii == 79 then return dfastate_33
-               if c.ascii == 80 then return dfastate_33
-               if c.ascii == 81 then return dfastate_33
-               if c.ascii == 82 then return dfastate_33
-               if c.ascii == 83 then return dfastate_33
-               if c.ascii == 84 then return dfastate_33
-               if c.ascii == 85 then return dfastate_33
-               if c.ascii == 86 then return dfastate_33
-               if c.ascii == 87 then return dfastate_33
-               if c.ascii == 88 then return dfastate_33
-               if c.ascii == 89 then return dfastate_33
-               if c.ascii == 90 then return dfastate_33
-               if c.ascii == 91 then return dfastate_33
-               if c.ascii == 92 then return dfastate_34
-               if c.ascii == 93 then return dfastate_33
-               if c.ascii == 94 then return dfastate_33
-               if c.ascii == 95 then return dfastate_33
-               if c.ascii == 96 then return dfastate_33
-               if c.ascii == 97 then return dfastate_33
-               if c.ascii == 98 then return dfastate_33
-               if c.ascii == 99 then return dfastate_33
-               if c.ascii == 100 then return dfastate_33
-               if c.ascii == 101 then return dfastate_33
-               if c.ascii == 102 then return dfastate_33
-               if c.ascii == 103 then return dfastate_33
-               if c.ascii == 104 then return dfastate_33
-               if c.ascii == 105 then return dfastate_33
-               if c.ascii == 106 then return dfastate_33
-               if c.ascii == 107 then return dfastate_33
-               if c.ascii == 108 then return dfastate_33
-               if c.ascii == 109 then return dfastate_33
-               if c.ascii == 110 then return dfastate_33
-               if c.ascii == 111 then return dfastate_33
-               if c.ascii == 112 then return dfastate_33
-               if c.ascii == 113 then return dfastate_33
-               if c.ascii == 114 then return dfastate_33
-               if c.ascii == 115 then return dfastate_33
-               if c.ascii == 116 then return dfastate_33
-               if c.ascii == 117 then return dfastate_33
-               if c.ascii == 118 then return dfastate_33
-               if c.ascii == 119 then return dfastate_33
-               if c.ascii == 120 then return dfastate_33
-               if c.ascii == 121 then return dfastate_33
-               if c.ascii == 122 then return dfastate_33
-               if c.ascii == 123 then return dfastate_33
-               if c.ascii == 124 then return dfastate_33
-               if c.ascii == 125 then return dfastate_33
-               if c.ascii == 126 then return dfastate_33
-               if c.ascii == 34 then return dfastate_35
-               return null
-       end
-end
-class DFAState3
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 32 then return dfastate_20
-               if c.ascii == 33 then return dfastate_20
-               if c.ascii == 34 then return dfastate_20
-               if c.ascii == 35 then return dfastate_20
-               if c.ascii == 36 then return dfastate_20
-               if c.ascii == 37 then return dfastate_20
-               if c.ascii == 38 then return dfastate_20
-               if c.ascii == 40 then return dfastate_20
-               if c.ascii == 41 then return dfastate_20
-               if c.ascii == 42 then return dfastate_20
-               if c.ascii == 43 then return dfastate_20
-               if c.ascii == 44 then return dfastate_20
-               if c.ascii == 45 then return dfastate_20
-               if c.ascii == 46 then return dfastate_20
-               if c.ascii == 47 then return dfastate_20
-               if c.ascii == 48 then return dfastate_20
-               if c.ascii == 49 then return dfastate_20
-               if c.ascii == 50 then return dfastate_20
-               if c.ascii == 51 then return dfastate_20
-               if c.ascii == 52 then return dfastate_20
-               if c.ascii == 53 then return dfastate_20
-               if c.ascii == 54 then return dfastate_20
-               if c.ascii == 55 then return dfastate_20
-               if c.ascii == 56 then return dfastate_20
-               if c.ascii == 57 then return dfastate_20
-               if c.ascii == 58 then return dfastate_20
-               if c.ascii == 59 then return dfastate_20
-               if c.ascii == 60 then return dfastate_20
-               if c.ascii == 61 then return dfastate_20
-               if c.ascii == 62 then return dfastate_20
-               if c.ascii == 63 then return dfastate_20
-               if c.ascii == 64 then return dfastate_20
-               if c.ascii == 65 then return dfastate_20
-               if c.ascii == 66 then return dfastate_20
-               if c.ascii == 67 then return dfastate_20
-               if c.ascii == 68 then return dfastate_20
-               if c.ascii == 69 then return dfastate_20
-               if c.ascii == 70 then return dfastate_20
-               if c.ascii == 71 then return dfastate_20
-               if c.ascii == 72 then return dfastate_20
-               if c.ascii == 73 then return dfastate_20
-               if c.ascii == 74 then return dfastate_20
-               if c.ascii == 75 then return dfastate_20
-               if c.ascii == 76 then return dfastate_20
-               if c.ascii == 77 then return dfastate_20
-               if c.ascii == 78 then return dfastate_20
-               if c.ascii == 79 then return dfastate_20
-               if c.ascii == 80 then return dfastate_20
-               if c.ascii == 81 then return dfastate_20
-               if c.ascii == 82 then return dfastate_20
-               if c.ascii == 83 then return dfastate_20
-               if c.ascii == 84 then return dfastate_20
-               if c.ascii == 85 then return dfastate_20
-               if c.ascii == 86 then return dfastate_20
-               if c.ascii == 87 then return dfastate_20
-               if c.ascii == 88 then return dfastate_20
-               if c.ascii == 89 then return dfastate_20
-               if c.ascii == 90 then return dfastate_20
-               if c.ascii == 91 then return dfastate_20
-               if c.ascii == 93 then return dfastate_20
-               if c.ascii == 94 then return dfastate_20
-               if c.ascii == 95 then return dfastate_20
-               if c.ascii == 96 then return dfastate_20
-               if c.ascii == 97 then return dfastate_20
-               if c.ascii == 98 then return dfastate_20
-               if c.ascii == 99 then return dfastate_20
-               if c.ascii == 100 then return dfastate_20
-               if c.ascii == 101 then return dfastate_20
-               if c.ascii == 102 then return dfastate_20
-               if c.ascii == 103 then return dfastate_20
-               if c.ascii == 104 then return dfastate_20
-               if c.ascii == 105 then return dfastate_20
-               if c.ascii == 106 then return dfastate_20
-               if c.ascii == 107 then return dfastate_20
-               if c.ascii == 108 then return dfastate_20
-               if c.ascii == 109 then return dfastate_20
-               if c.ascii == 110 then return dfastate_20
-               if c.ascii == 111 then return dfastate_20
-               if c.ascii == 112 then return dfastate_20
-               if c.ascii == 113 then return dfastate_20
-               if c.ascii == 114 then return dfastate_20
-               if c.ascii == 115 then return dfastate_20
-               if c.ascii == 116 then return dfastate_20
-               if c.ascii == 117 then return dfastate_20
-               if c.ascii == 118 then return dfastate_20
-               if c.ascii == 119 then return dfastate_20
-               if c.ascii == 120 then return dfastate_20
-               if c.ascii == 121 then return dfastate_20
-               if c.ascii == 122 then return dfastate_20
-               if c.ascii == 123 then return dfastate_20
-               if c.ascii == 124 then return dfastate_20
-               if c.ascii == 125 then return dfastate_20
-               if c.ascii == 126 then return dfastate_20
-               if c.ascii == 92 then return dfastate_21
-               return null
-       end
-end
-class DFAState4
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ncomma
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState5
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ncolon
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState6
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nid
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 95 then return dfastate_16
-               if c.ascii == 48 then return dfastate_17
-               if c.ascii == 49 then return dfastate_17
-               if c.ascii == 50 then return dfastate_17
-               if c.ascii == 51 then return dfastate_17
-               if c.ascii == 52 then return dfastate_17
-               if c.ascii == 53 then return dfastate_17
-               if c.ascii == 54 then return dfastate_17
-               if c.ascii == 55 then return dfastate_17
-               if c.ascii == 56 then return dfastate_17
-               if c.ascii == 57 then return dfastate_17
-               if c.ascii == 97 then return dfastate_18
-               if c.ascii == 98 then return dfastate_18
-               if c.ascii == 99 then return dfastate_18
-               if c.ascii == 100 then return dfastate_18
-               if c.ascii == 101 then return dfastate_18
-               if c.ascii == 102 then return dfastate_18
-               if c.ascii == 103 then return dfastate_18
-               if c.ascii == 104 then return dfastate_18
-               if c.ascii == 105 then return dfastate_18
-               if c.ascii == 106 then return dfastate_18
-               if c.ascii == 107 then return dfastate_18
-               if c.ascii == 108 then return dfastate_18
-               if c.ascii == 109 then return dfastate_18
-               if c.ascii == 110 then return dfastate_18
-               if c.ascii == 111 then return dfastate_18
-               if c.ascii == 112 then return dfastate_18
-               if c.ascii == 113 then return dfastate_18
-               if c.ascii == 114 then return dfastate_18
-               if c.ascii == 115 then return dfastate_18
-               if c.ascii == 116 then return dfastate_18
-               if c.ascii == 117 then return dfastate_18
-               if c.ascii == 118 then return dfastate_18
-               if c.ascii == 119 then return dfastate_18
-               if c.ascii == 120 then return dfastate_18
-               if c.ascii == 121 then return dfastate_18
-               if c.ascii == 122 then return dfastate_18
-               if c.ascii == 65 then return dfastate_19
-               if c.ascii == 66 then return dfastate_19
-               if c.ascii == 67 then return dfastate_19
-               if c.ascii == 68 then return dfastate_19
-               if c.ascii == 69 then return dfastate_19
-               if c.ascii == 70 then return dfastate_19
-               if c.ascii == 71 then return dfastate_19
-               if c.ascii == 72 then return dfastate_19
-               if c.ascii == 73 then return dfastate_19
-               if c.ascii == 74 then return dfastate_19
-               if c.ascii == 75 then return dfastate_19
-               if c.ascii == 76 then return dfastate_19
-               if c.ascii == 77 then return dfastate_19
-               if c.ascii == 78 then return dfastate_19
-               if c.ascii == 79 then return dfastate_19
-               if c.ascii == 80 then return dfastate_19
-               if c.ascii == 81 then return dfastate_19
-               if c.ascii == 82 then return dfastate_19
-               if c.ascii == 83 then return dfastate_19
-               if c.ascii == 84 then return dfastate_19
-               if c.ascii == 85 then return dfastate_19
-               if c.ascii == 86 then return dfastate_19
-               if c.ascii == 87 then return dfastate_19
-               if c.ascii == 88 then return dfastate_19
-               if c.ascii == 89 then return dfastate_19
-               if c.ascii == 90 then return dfastate_19
-               return null
-       end
-end
-class DFAState7
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nid
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 95 then return dfastate_16
-               if c.ascii == 48 then return dfastate_17
-               if c.ascii == 49 then return dfastate_17
-               if c.ascii == 50 then return dfastate_17
-               if c.ascii == 51 then return dfastate_17
-               if c.ascii == 52 then return dfastate_17
-               if c.ascii == 53 then return dfastate_17
-               if c.ascii == 54 then return dfastate_17
-               if c.ascii == 55 then return dfastate_17
-               if c.ascii == 56 then return dfastate_17
-               if c.ascii == 57 then return dfastate_17
-               if c.ascii == 97 then return dfastate_18
-               if c.ascii == 98 then return dfastate_18
-               if c.ascii == 99 then return dfastate_18
-               if c.ascii == 100 then return dfastate_18
-               if c.ascii == 101 then return dfastate_18
-               if c.ascii == 102 then return dfastate_18
-               if c.ascii == 103 then return dfastate_18
-               if c.ascii == 104 then return dfastate_18
-               if c.ascii == 105 then return dfastate_18
-               if c.ascii == 106 then return dfastate_18
-               if c.ascii == 107 then return dfastate_18
-               if c.ascii == 108 then return dfastate_18
-               if c.ascii == 109 then return dfastate_18
-               if c.ascii == 110 then return dfastate_18
-               if c.ascii == 111 then return dfastate_18
-               if c.ascii == 112 then return dfastate_18
-               if c.ascii == 113 then return dfastate_18
-               if c.ascii == 114 then return dfastate_18
-               if c.ascii == 115 then return dfastate_18
-               if c.ascii == 116 then return dfastate_18
-               if c.ascii == 117 then return dfastate_18
-               if c.ascii == 118 then return dfastate_18
-               if c.ascii == 119 then return dfastate_18
-               if c.ascii == 120 then return dfastate_18
-               if c.ascii == 121 then return dfastate_18
-               if c.ascii == 122 then return dfastate_18
-               if c.ascii == 65 then return dfastate_19
-               if c.ascii == 66 then return dfastate_19
-               if c.ascii == 67 then return dfastate_19
-               if c.ascii == 68 then return dfastate_19
-               if c.ascii == 69 then return dfastate_19
-               if c.ascii == 70 then return dfastate_19
-               if c.ascii == 71 then return dfastate_19
-               if c.ascii == 72 then return dfastate_19
-               if c.ascii == 73 then return dfastate_19
-               if c.ascii == 74 then return dfastate_19
-               if c.ascii == 75 then return dfastate_19
-               if c.ascii == 76 then return dfastate_19
-               if c.ascii == 77 then return dfastate_19
-               if c.ascii == 78 then return dfastate_19
-               if c.ascii == 79 then return dfastate_19
-               if c.ascii == 80 then return dfastate_19
-               if c.ascii == 81 then return dfastate_19
-               if c.ascii == 82 then return dfastate_19
-               if c.ascii == 83 then return dfastate_19
-               if c.ascii == 84 then return dfastate_19
-               if c.ascii == 85 then return dfastate_19
-               if c.ascii == 86 then return dfastate_19
-               if c.ascii == 87 then return dfastate_19
-               if c.ascii == 88 then return dfastate_19
-               if c.ascii == 89 then return dfastate_19
-               if c.ascii == 90 then return dfastate_19
-               return null
-       end
-end
-class DFAState8
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nid
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 95 then return dfastate_16
-               if c.ascii == 48 then return dfastate_17
-               if c.ascii == 49 then return dfastate_17
-               if c.ascii == 50 then return dfastate_17
-               if c.ascii == 51 then return dfastate_17
-               if c.ascii == 52 then return dfastate_17
-               if c.ascii == 53 then return dfastate_17
-               if c.ascii == 54 then return dfastate_17
-               if c.ascii == 55 then return dfastate_17
-               if c.ascii == 56 then return dfastate_17
-               if c.ascii == 57 then return dfastate_17
-               if c.ascii == 97 then return dfastate_18
-               if c.ascii == 98 then return dfastate_18
-               if c.ascii == 99 then return dfastate_18
-               if c.ascii == 100 then return dfastate_18
-               if c.ascii == 101 then return dfastate_18
-               if c.ascii == 102 then return dfastate_18
-               if c.ascii == 103 then return dfastate_18
-               if c.ascii == 104 then return dfastate_18
-               if c.ascii == 105 then return dfastate_18
-               if c.ascii == 106 then return dfastate_18
-               if c.ascii == 107 then return dfastate_18
-               if c.ascii == 108 then return dfastate_18
-               if c.ascii == 109 then return dfastate_18
-               if c.ascii == 110 then return dfastate_18
-               if c.ascii == 111 then return dfastate_18
-               if c.ascii == 112 then return dfastate_18
-               if c.ascii == 113 then return dfastate_18
-               if c.ascii == 114 then return dfastate_18
-               if c.ascii == 115 then return dfastate_18
-               if c.ascii == 116 then return dfastate_18
-               if c.ascii == 117 then return dfastate_18
-               if c.ascii == 118 then return dfastate_18
-               if c.ascii == 119 then return dfastate_18
-               if c.ascii == 120 then return dfastate_18
-               if c.ascii == 121 then return dfastate_18
-               if c.ascii == 122 then return dfastate_18
-               if c.ascii == 65 then return dfastate_19
-               if c.ascii == 66 then return dfastate_19
-               if c.ascii == 67 then return dfastate_19
-               if c.ascii == 68 then return dfastate_19
-               if c.ascii == 69 then return dfastate_19
-               if c.ascii == 70 then return dfastate_19
-               if c.ascii == 71 then return dfastate_19
-               if c.ascii == 72 then return dfastate_19
-               if c.ascii == 73 then return dfastate_19
-               if c.ascii == 74 then return dfastate_19
-               if c.ascii == 75 then return dfastate_19
-               if c.ascii == 76 then return dfastate_19
-               if c.ascii == 77 then return dfastate_19
-               if c.ascii == 78 then return dfastate_19
-               if c.ascii == 79 then return dfastate_19
-               if c.ascii == 80 then return dfastate_19
-               if c.ascii == 81 then return dfastate_19
-               if c.ascii == 82 then return dfastate_19
-               if c.ascii == 83 then return dfastate_19
-               if c.ascii == 84 then return dfastate_19
-               if c.ascii == 85 then return dfastate_19
-               if c.ascii == 86 then return dfastate_19
-               if c.ascii == 87 then return dfastate_19
-               if c.ascii == 88 then return dfastate_19
-               if c.ascii == 89 then return dfastate_19
-               if c.ascii == 90 then return dfastate_19
-               return null
-       end
-end
-class DFAState9
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Neol
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState10
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Neol
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 13 then return dfastate_15
-               return null
-       end
-end
-class DFAState11
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ncomment
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 32 then return dfastate_14
-               if c.ascii == 33 then return dfastate_14
-               if c.ascii == 34 then return dfastate_14
-               if c.ascii == 35 then return dfastate_14
-               if c.ascii == 36 then return dfastate_14
-               if c.ascii == 37 then return dfastate_14
-               if c.ascii == 38 then return dfastate_14
-               if c.ascii == 39 then return dfastate_14
-               if c.ascii == 40 then return dfastate_14
-               if c.ascii == 41 then return dfastate_14
-               if c.ascii == 42 then return dfastate_14
-               if c.ascii == 43 then return dfastate_14
-               if c.ascii == 44 then return dfastate_14
-               if c.ascii == 45 then return dfastate_14
-               if c.ascii == 46 then return dfastate_14
-               if c.ascii == 47 then return dfastate_14
-               if c.ascii == 48 then return dfastate_14
-               if c.ascii == 49 then return dfastate_14
-               if c.ascii == 50 then return dfastate_14
-               if c.ascii == 51 then return dfastate_14
-               if c.ascii == 52 then return dfastate_14
-               if c.ascii == 53 then return dfastate_14
-               if c.ascii == 54 then return dfastate_14
-               if c.ascii == 55 then return dfastate_14
-               if c.ascii == 56 then return dfastate_14
-               if c.ascii == 57 then return dfastate_14
-               if c.ascii == 58 then return dfastate_14
-               if c.ascii == 59 then return dfastate_14
-               if c.ascii == 60 then return dfastate_14
-               if c.ascii == 61 then return dfastate_14
-               if c.ascii == 62 then return dfastate_14
-               if c.ascii == 63 then return dfastate_14
-               if c.ascii == 64 then return dfastate_14
-               if c.ascii == 65 then return dfastate_14
-               if c.ascii == 66 then return dfastate_14
-               if c.ascii == 67 then return dfastate_14
-               if c.ascii == 68 then return dfastate_14
-               if c.ascii == 69 then return dfastate_14
-               if c.ascii == 70 then return dfastate_14
-               if c.ascii == 71 then return dfastate_14
-               if c.ascii == 72 then return dfastate_14
-               if c.ascii == 73 then return dfastate_14
-               if c.ascii == 74 then return dfastate_14
-               if c.ascii == 75 then return dfastate_14
-               if c.ascii == 76 then return dfastate_14
-               if c.ascii == 77 then return dfastate_14
-               if c.ascii == 78 then return dfastate_14
-               if c.ascii == 79 then return dfastate_14
-               if c.ascii == 80 then return dfastate_14
-               if c.ascii == 81 then return dfastate_14
-               if c.ascii == 82 then return dfastate_14
-               if c.ascii == 83 then return dfastate_14
-               if c.ascii == 84 then return dfastate_14
-               if c.ascii == 85 then return dfastate_14
-               if c.ascii == 86 then return dfastate_14
-               if c.ascii == 87 then return dfastate_14
-               if c.ascii == 88 then return dfastate_14
-               if c.ascii == 89 then return dfastate_14
-               if c.ascii == 90 then return dfastate_14
-               if c.ascii == 91 then return dfastate_14
-               if c.ascii == 92 then return dfastate_14
-               if c.ascii == 93 then return dfastate_14
-               if c.ascii == 94 then return dfastate_14
-               if c.ascii == 95 then return dfastate_14
-               if c.ascii == 96 then return dfastate_14
-               if c.ascii == 97 then return dfastate_14
-               if c.ascii == 98 then return dfastate_14
-               if c.ascii == 99 then return dfastate_14
-               if c.ascii == 100 then return dfastate_14
-               if c.ascii == 101 then return dfastate_14
-               if c.ascii == 102 then return dfastate_14
-               if c.ascii == 103 then return dfastate_14
-               if c.ascii == 104 then return dfastate_14
-               if c.ascii == 105 then return dfastate_14
-               if c.ascii == 106 then return dfastate_14
-               if c.ascii == 107 then return dfastate_14
-               if c.ascii == 108 then return dfastate_14
-               if c.ascii == 109 then return dfastate_14
-               if c.ascii == 110 then return dfastate_14
-               if c.ascii == 111 then return dfastate_14
-               if c.ascii == 112 then return dfastate_14
-               if c.ascii == 113 then return dfastate_14
-               if c.ascii == 114 then return dfastate_14
-               if c.ascii == 115 then return dfastate_14
-               if c.ascii == 116 then return dfastate_14
-               if c.ascii == 117 then return dfastate_14
-               if c.ascii == 118 then return dfastate_14
-               if c.ascii == 119 then return dfastate_14
-               if c.ascii == 120 then return dfastate_14
-               if c.ascii == 121 then return dfastate_14
-               if c.ascii == 122 then return dfastate_14
-               if c.ascii == 123 then return dfastate_14
-               if c.ascii == 124 then return dfastate_14
-               if c.ascii == 125 then return dfastate_14
-               if c.ascii == 126 then return dfastate_14
-               return null
-       end
-end
-class DFAState12
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               return null
-       end
-       redef fun trans(c) do
-               if c.ascii == 9 then return dfastate_12
-               if c.ascii == 32 then return dfastate_13
-               return null
-       end
-end
-class DFAState13
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               return null
-       end
-       redef fun trans(c) do
-               if c.ascii == 9 then return dfastate_12
-               if c.ascii == 32 then return dfastate_13
-               return null
-       end
-end
-class DFAState14
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ncomment
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 32 then return dfastate_14
-               if c.ascii == 33 then return dfastate_14
-               if c.ascii == 34 then return dfastate_14
-               if c.ascii == 35 then return dfastate_14
-               if c.ascii == 36 then return dfastate_14
-               if c.ascii == 37 then return dfastate_14
-               if c.ascii == 38 then return dfastate_14
-               if c.ascii == 39 then return dfastate_14
-               if c.ascii == 40 then return dfastate_14
-               if c.ascii == 41 then return dfastate_14
-               if c.ascii == 42 then return dfastate_14
-               if c.ascii == 43 then return dfastate_14
-               if c.ascii == 44 then return dfastate_14
-               if c.ascii == 45 then return dfastate_14
-               if c.ascii == 46 then return dfastate_14
-               if c.ascii == 47 then return dfastate_14
-               if c.ascii == 48 then return dfastate_14
-               if c.ascii == 49 then return dfastate_14
-               if c.ascii == 50 then return dfastate_14
-               if c.ascii == 51 then return dfastate_14
-               if c.ascii == 52 then return dfastate_14
-               if c.ascii == 53 then return dfastate_14
-               if c.ascii == 54 then return dfastate_14
-               if c.ascii == 55 then return dfastate_14
-               if c.ascii == 56 then return dfastate_14
-               if c.ascii == 57 then return dfastate_14
-               if c.ascii == 58 then return dfastate_14
-               if c.ascii == 59 then return dfastate_14
-               if c.ascii == 60 then return dfastate_14
-               if c.ascii == 61 then return dfastate_14
-               if c.ascii == 62 then return dfastate_14
-               if c.ascii == 63 then return dfastate_14
-               if c.ascii == 64 then return dfastate_14
-               if c.ascii == 65 then return dfastate_14
-               if c.ascii == 66 then return dfastate_14
-               if c.ascii == 67 then return dfastate_14
-               if c.ascii == 68 then return dfastate_14
-               if c.ascii == 69 then return dfastate_14
-               if c.ascii == 70 then return dfastate_14
-               if c.ascii == 71 then return dfastate_14
-               if c.ascii == 72 then return dfastate_14
-               if c.ascii == 73 then return dfastate_14
-               if c.ascii == 74 then return dfastate_14
-               if c.ascii == 75 then return dfastate_14
-               if c.ascii == 76 then return dfastate_14
-               if c.ascii == 77 then return dfastate_14
-               if c.ascii == 78 then return dfastate_14
-               if c.ascii == 79 then return dfastate_14
-               if c.ascii == 80 then return dfastate_14
-               if c.ascii == 81 then return dfastate_14
-               if c.ascii == 82 then return dfastate_14
-               if c.ascii == 83 then return dfastate_14
-               if c.ascii == 84 then return dfastate_14
-               if c.ascii == 85 then return dfastate_14
-               if c.ascii == 86 then return dfastate_14
-               if c.ascii == 87 then return dfastate_14
-               if c.ascii == 88 then return dfastate_14
-               if c.ascii == 89 then return dfastate_14
-               if c.ascii == 90 then return dfastate_14
-               if c.ascii == 91 then return dfastate_14
-               if c.ascii == 92 then return dfastate_14
-               if c.ascii == 93 then return dfastate_14
-               if c.ascii == 94 then return dfastate_14
-               if c.ascii == 95 then return dfastate_14
-               if c.ascii == 96 then return dfastate_14
-               if c.ascii == 97 then return dfastate_14
-               if c.ascii == 98 then return dfastate_14
-               if c.ascii == 99 then return dfastate_14
-               if c.ascii == 100 then return dfastate_14
-               if c.ascii == 101 then return dfastate_14
-               if c.ascii == 102 then return dfastate_14
-               if c.ascii == 103 then return dfastate_14
-               if c.ascii == 104 then return dfastate_14
-               if c.ascii == 105 then return dfastate_14
-               if c.ascii == 106 then return dfastate_14
-               if c.ascii == 107 then return dfastate_14
-               if c.ascii == 108 then return dfastate_14
-               if c.ascii == 109 then return dfastate_14
-               if c.ascii == 110 then return dfastate_14
-               if c.ascii == 111 then return dfastate_14
-               if c.ascii == 112 then return dfastate_14
-               if c.ascii == 113 then return dfastate_14
-               if c.ascii == 114 then return dfastate_14
-               if c.ascii == 115 then return dfastate_14
-               if c.ascii == 116 then return dfastate_14
-               if c.ascii == 117 then return dfastate_14
-               if c.ascii == 118 then return dfastate_14
-               if c.ascii == 119 then return dfastate_14
-               if c.ascii == 120 then return dfastate_14
-               if c.ascii == 121 then return dfastate_14
-               if c.ascii == 122 then return dfastate_14
-               if c.ascii == 123 then return dfastate_14
-               if c.ascii == 124 then return dfastate_14
-               if c.ascii == 125 then return dfastate_14
-               if c.ascii == 126 then return dfastate_14
-               return null
-       end
-end
-class DFAState15
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Neol
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState16
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nid
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 95 then return dfastate_16
-               if c.ascii == 48 then return dfastate_17
-               if c.ascii == 49 then return dfastate_17
-               if c.ascii == 50 then return dfastate_17
-               if c.ascii == 51 then return dfastate_17
-               if c.ascii == 52 then return dfastate_17
-               if c.ascii == 53 then return dfastate_17
-               if c.ascii == 54 then return dfastate_17
-               if c.ascii == 55 then return dfastate_17
-               if c.ascii == 56 then return dfastate_17
-               if c.ascii == 57 then return dfastate_17
-               if c.ascii == 97 then return dfastate_18
-               if c.ascii == 98 then return dfastate_18
-               if c.ascii == 99 then return dfastate_18
-               if c.ascii == 100 then return dfastate_18
-               if c.ascii == 101 then return dfastate_18
-               if c.ascii == 102 then return dfastate_18
-               if c.ascii == 103 then return dfastate_18
-               if c.ascii == 104 then return dfastate_18
-               if c.ascii == 105 then return dfastate_18
-               if c.ascii == 106 then return dfastate_18
-               if c.ascii == 107 then return dfastate_18
-               if c.ascii == 108 then return dfastate_18
-               if c.ascii == 109 then return dfastate_18
-               if c.ascii == 110 then return dfastate_18
-               if c.ascii == 111 then return dfastate_18
-               if c.ascii == 112 then return dfastate_18
-               if c.ascii == 113 then return dfastate_18
-               if c.ascii == 114 then return dfastate_18
-               if c.ascii == 115 then return dfastate_18
-               if c.ascii == 116 then return dfastate_18
-               if c.ascii == 117 then return dfastate_18
-               if c.ascii == 118 then return dfastate_18
-               if c.ascii == 119 then return dfastate_18
-               if c.ascii == 120 then return dfastate_18
-               if c.ascii == 121 then return dfastate_18
-               if c.ascii == 122 then return dfastate_18
-               if c.ascii == 65 then return dfastate_19
-               if c.ascii == 66 then return dfastate_19
-               if c.ascii == 67 then return dfastate_19
-               if c.ascii == 68 then return dfastate_19
-               if c.ascii == 69 then return dfastate_19
-               if c.ascii == 70 then return dfastate_19
-               if c.ascii == 71 then return dfastate_19
-               if c.ascii == 72 then return dfastate_19
-               if c.ascii == 73 then return dfastate_19
-               if c.ascii == 74 then return dfastate_19
-               if c.ascii == 75 then return dfastate_19
-               if c.ascii == 76 then return dfastate_19
-               if c.ascii == 77 then return dfastate_19
-               if c.ascii == 78 then return dfastate_19
-               if c.ascii == 79 then return dfastate_19
-               if c.ascii == 80 then return dfastate_19
-               if c.ascii == 81 then return dfastate_19
-               if c.ascii == 82 then return dfastate_19
-               if c.ascii == 83 then return dfastate_19
-               if c.ascii == 84 then return dfastate_19
-               if c.ascii == 85 then return dfastate_19
-               if c.ascii == 86 then return dfastate_19
-               if c.ascii == 87 then return dfastate_19
-               if c.ascii == 88 then return dfastate_19
-               if c.ascii == 89 then return dfastate_19
-               if c.ascii == 90 then return dfastate_19
-               return null
-       end
-end
-class DFAState17
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nid
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 95 then return dfastate_16
-               if c.ascii == 48 then return dfastate_17
-               if c.ascii == 49 then return dfastate_17
-               if c.ascii == 50 then return dfastate_17
-               if c.ascii == 51 then return dfastate_17
-               if c.ascii == 52 then return dfastate_17
-               if c.ascii == 53 then return dfastate_17
-               if c.ascii == 54 then return dfastate_17
-               if c.ascii == 55 then return dfastate_17
-               if c.ascii == 56 then return dfastate_17
-               if c.ascii == 57 then return dfastate_17
-               if c.ascii == 97 then return dfastate_18
-               if c.ascii == 98 then return dfastate_18
-               if c.ascii == 99 then return dfastate_18
-               if c.ascii == 100 then return dfastate_18
-               if c.ascii == 101 then return dfastate_18
-               if c.ascii == 102 then return dfastate_18
-               if c.ascii == 103 then return dfastate_18
-               if c.ascii == 104 then return dfastate_18
-               if c.ascii == 105 then return dfastate_18
-               if c.ascii == 106 then return dfastate_18
-               if c.ascii == 107 then return dfastate_18
-               if c.ascii == 108 then return dfastate_18
-               if c.ascii == 109 then return dfastate_18
-               if c.ascii == 110 then return dfastate_18
-               if c.ascii == 111 then return dfastate_18
-               if c.ascii == 112 then return dfastate_18
-               if c.ascii == 113 then return dfastate_18
-               if c.ascii == 114 then return dfastate_18
-               if c.ascii == 115 then return dfastate_18
-               if c.ascii == 116 then return dfastate_18
-               if c.ascii == 117 then return dfastate_18
-               if c.ascii == 118 then return dfastate_18
-               if c.ascii == 119 then return dfastate_18
-               if c.ascii == 120 then return dfastate_18
-               if c.ascii == 121 then return dfastate_18
-               if c.ascii == 122 then return dfastate_18
-               if c.ascii == 65 then return dfastate_19
-               if c.ascii == 66 then return dfastate_19
-               if c.ascii == 67 then return dfastate_19
-               if c.ascii == 68 then return dfastate_19
-               if c.ascii == 69 then return dfastate_19
-               if c.ascii == 70 then return dfastate_19
-               if c.ascii == 71 then return dfastate_19
-               if c.ascii == 72 then return dfastate_19
-               if c.ascii == 73 then return dfastate_19
-               if c.ascii == 74 then return dfastate_19
-               if c.ascii == 75 then return dfastate_19
-               if c.ascii == 76 then return dfastate_19
-               if c.ascii == 77 then return dfastate_19
-               if c.ascii == 78 then return dfastate_19
-               if c.ascii == 79 then return dfastate_19
-               if c.ascii == 80 then return dfastate_19
-               if c.ascii == 81 then return dfastate_19
-               if c.ascii == 82 then return dfastate_19
-               if c.ascii == 83 then return dfastate_19
-               if c.ascii == 84 then return dfastate_19
-               if c.ascii == 85 then return dfastate_19
-               if c.ascii == 86 then return dfastate_19
-               if c.ascii == 87 then return dfastate_19
-               if c.ascii == 88 then return dfastate_19
-               if c.ascii == 89 then return dfastate_19
-               if c.ascii == 90 then return dfastate_19
-               return null
-       end
-end
-class DFAState18
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nid
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 95 then return dfastate_16
-               if c.ascii == 48 then return dfastate_17
-               if c.ascii == 49 then return dfastate_17
-               if c.ascii == 50 then return dfastate_17
-               if c.ascii == 51 then return dfastate_17
-               if c.ascii == 52 then return dfastate_17
-               if c.ascii == 53 then return dfastate_17
-               if c.ascii == 54 then return dfastate_17
-               if c.ascii == 55 then return dfastate_17
-               if c.ascii == 56 then return dfastate_17
-               if c.ascii == 57 then return dfastate_17
-               if c.ascii == 97 then return dfastate_18
-               if c.ascii == 98 then return dfastate_18
-               if c.ascii == 99 then return dfastate_18
-               if c.ascii == 100 then return dfastate_18
-               if c.ascii == 101 then return dfastate_18
-               if c.ascii == 102 then return dfastate_18
-               if c.ascii == 103 then return dfastate_18
-               if c.ascii == 104 then return dfastate_18
-               if c.ascii == 105 then return dfastate_18
-               if c.ascii == 106 then return dfastate_18
-               if c.ascii == 107 then return dfastate_18
-               if c.ascii == 108 then return dfastate_18
-               if c.ascii == 109 then return dfastate_18
-               if c.ascii == 110 then return dfastate_18
-               if c.ascii == 111 then return dfastate_18
-               if c.ascii == 112 then return dfastate_18
-               if c.ascii == 113 then return dfastate_18
-               if c.ascii == 114 then return dfastate_18
-               if c.ascii == 115 then return dfastate_18
-               if c.ascii == 116 then return dfastate_18
-               if c.ascii == 117 then return dfastate_18
-               if c.ascii == 118 then return dfastate_18
-               if c.ascii == 119 then return dfastate_18
-               if c.ascii == 120 then return dfastate_18
-               if c.ascii == 121 then return dfastate_18
-               if c.ascii == 122 then return dfastate_18
-               if c.ascii == 65 then return dfastate_19
-               if c.ascii == 66 then return dfastate_19
-               if c.ascii == 67 then return dfastate_19
-               if c.ascii == 68 then return dfastate_19
-               if c.ascii == 69 then return dfastate_19
-               if c.ascii == 70 then return dfastate_19
-               if c.ascii == 71 then return dfastate_19
-               if c.ascii == 72 then return dfastate_19
-               if c.ascii == 73 then return dfastate_19
-               if c.ascii == 74 then return dfastate_19
-               if c.ascii == 75 then return dfastate_19
-               if c.ascii == 76 then return dfastate_19
-               if c.ascii == 77 then return dfastate_19
-               if c.ascii == 78 then return dfastate_19
-               if c.ascii == 79 then return dfastate_19
-               if c.ascii == 80 then return dfastate_19
-               if c.ascii == 81 then return dfastate_19
-               if c.ascii == 82 then return dfastate_19
-               if c.ascii == 83 then return dfastate_19
-               if c.ascii == 84 then return dfastate_19
-               if c.ascii == 85 then return dfastate_19
-               if c.ascii == 86 then return dfastate_19
-               if c.ascii == 87 then return dfastate_19
-               if c.ascii == 88 then return dfastate_19
-               if c.ascii == 89 then return dfastate_19
-               if c.ascii == 90 then return dfastate_19
-               return null
-       end
-end
-class DFAState19
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nid
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 95 then return dfastate_16
-               if c.ascii == 48 then return dfastate_17
-               if c.ascii == 49 then return dfastate_17
-               if c.ascii == 50 then return dfastate_17
-               if c.ascii == 51 then return dfastate_17
-               if c.ascii == 52 then return dfastate_17
-               if c.ascii == 53 then return dfastate_17
-               if c.ascii == 54 then return dfastate_17
-               if c.ascii == 55 then return dfastate_17
-               if c.ascii == 56 then return dfastate_17
-               if c.ascii == 57 then return dfastate_17
-               if c.ascii == 97 then return dfastate_18
-               if c.ascii == 98 then return dfastate_18
-               if c.ascii == 99 then return dfastate_18
-               if c.ascii == 100 then return dfastate_18
-               if c.ascii == 101 then return dfastate_18
-               if c.ascii == 102 then return dfastate_18
-               if c.ascii == 103 then return dfastate_18
-               if c.ascii == 104 then return dfastate_18
-               if c.ascii == 105 then return dfastate_18
-               if c.ascii == 106 then return dfastate_18
-               if c.ascii == 107 then return dfastate_18
-               if c.ascii == 108 then return dfastate_18
-               if c.ascii == 109 then return dfastate_18
-               if c.ascii == 110 then return dfastate_18
-               if c.ascii == 111 then return dfastate_18
-               if c.ascii == 112 then return dfastate_18
-               if c.ascii == 113 then return dfastate_18
-               if c.ascii == 114 then return dfastate_18
-               if c.ascii == 115 then return dfastate_18
-               if c.ascii == 116 then return dfastate_18
-               if c.ascii == 117 then return dfastate_18
-               if c.ascii == 118 then return dfastate_18
-               if c.ascii == 119 then return dfastate_18
-               if c.ascii == 120 then return dfastate_18
-               if c.ascii == 121 then return dfastate_18
-               if c.ascii == 122 then return dfastate_18
-               if c.ascii == 65 then return dfastate_19
-               if c.ascii == 66 then return dfastate_19
-               if c.ascii == 67 then return dfastate_19
-               if c.ascii == 68 then return dfastate_19
-               if c.ascii == 69 then return dfastate_19
-               if c.ascii == 70 then return dfastate_19
-               if c.ascii == 71 then return dfastate_19
-               if c.ascii == 72 then return dfastate_19
-               if c.ascii == 73 then return dfastate_19
-               if c.ascii == 74 then return dfastate_19
-               if c.ascii == 75 then return dfastate_19
-               if c.ascii == 76 then return dfastate_19
-               if c.ascii == 77 then return dfastate_19
-               if c.ascii == 78 then return dfastate_19
-               if c.ascii == 79 then return dfastate_19
-               if c.ascii == 80 then return dfastate_19
-               if c.ascii == 81 then return dfastate_19
-               if c.ascii == 82 then return dfastate_19
-               if c.ascii == 83 then return dfastate_19
-               if c.ascii == 84 then return dfastate_19
-               if c.ascii == 85 then return dfastate_19
-               if c.ascii == 86 then return dfastate_19
-               if c.ascii == 87 then return dfastate_19
-               if c.ascii == 88 then return dfastate_19
-               if c.ascii == 89 then return dfastate_19
-               if c.ascii == 90 then return dfastate_19
-               return null
-       end
-end
-class DFAState20
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 39 then return dfastate_32
-               return null
-       end
-end
-class DFAState21
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 120 then return dfastate_22
-               if c.ascii == 32 then return dfastate_23
-               if c.ascii == 33 then return dfastate_23
-               if c.ascii == 34 then return dfastate_23
-               if c.ascii == 35 then return dfastate_23
-               if c.ascii == 36 then return dfastate_23
-               if c.ascii == 37 then return dfastate_23
-               if c.ascii == 38 then return dfastate_23
-               if c.ascii == 39 then return dfastate_23
-               if c.ascii == 40 then return dfastate_23
-               if c.ascii == 41 then return dfastate_23
-               if c.ascii == 42 then return dfastate_23
-               if c.ascii == 43 then return dfastate_23
-               if c.ascii == 44 then return dfastate_23
-               if c.ascii == 45 then return dfastate_23
-               if c.ascii == 46 then return dfastate_23
-               if c.ascii == 47 then return dfastate_23
-               if c.ascii == 48 then return dfastate_23
-               if c.ascii == 49 then return dfastate_23
-               if c.ascii == 50 then return dfastate_23
-               if c.ascii == 51 then return dfastate_23
-               if c.ascii == 52 then return dfastate_23
-               if c.ascii == 53 then return dfastate_23
-               if c.ascii == 54 then return dfastate_23
-               if c.ascii == 55 then return dfastate_23
-               if c.ascii == 56 then return dfastate_23
-               if c.ascii == 57 then return dfastate_23
-               if c.ascii == 58 then return dfastate_23
-               if c.ascii == 59 then return dfastate_23
-               if c.ascii == 60 then return dfastate_23
-               if c.ascii == 61 then return dfastate_23
-               if c.ascii == 62 then return dfastate_23
-               if c.ascii == 63 then return dfastate_23
-               if c.ascii == 64 then return dfastate_23
-               if c.ascii == 65 then return dfastate_23
-               if c.ascii == 66 then return dfastate_23
-               if c.ascii == 67 then return dfastate_23
-               if c.ascii == 68 then return dfastate_23
-               if c.ascii == 69 then return dfastate_23
-               if c.ascii == 70 then return dfastate_23
-               if c.ascii == 71 then return dfastate_23
-               if c.ascii == 72 then return dfastate_23
-               if c.ascii == 73 then return dfastate_23
-               if c.ascii == 74 then return dfastate_23
-               if c.ascii == 75 then return dfastate_23
-               if c.ascii == 76 then return dfastate_23
-               if c.ascii == 77 then return dfastate_23
-               if c.ascii == 78 then return dfastate_23
-               if c.ascii == 79 then return dfastate_23
-               if c.ascii == 80 then return dfastate_23
-               if c.ascii == 81 then return dfastate_23
-               if c.ascii == 82 then return dfastate_23
-               if c.ascii == 83 then return dfastate_23
-               if c.ascii == 84 then return dfastate_23
-               if c.ascii == 85 then return dfastate_23
-               if c.ascii == 86 then return dfastate_23
-               if c.ascii == 87 then return dfastate_23
-               if c.ascii == 88 then return dfastate_23
-               if c.ascii == 89 then return dfastate_23
-               if c.ascii == 90 then return dfastate_23
-               if c.ascii == 91 then return dfastate_23
-               if c.ascii == 92 then return dfastate_23
-               if c.ascii == 93 then return dfastate_23
-               if c.ascii == 94 then return dfastate_23
-               if c.ascii == 95 then return dfastate_23
-               if c.ascii == 96 then return dfastate_23
-               if c.ascii == 97 then return dfastate_23
-               if c.ascii == 98 then return dfastate_23
-               if c.ascii == 99 then return dfastate_23
-               if c.ascii == 100 then return dfastate_23
-               if c.ascii == 101 then return dfastate_23
-               if c.ascii == 102 then return dfastate_23
-               if c.ascii == 103 then return dfastate_23
-               if c.ascii == 104 then return dfastate_23
-               if c.ascii == 105 then return dfastate_23
-               if c.ascii == 106 then return dfastate_23
-               if c.ascii == 107 then return dfastate_23
-               if c.ascii == 108 then return dfastate_23
-               if c.ascii == 109 then return dfastate_23
-               if c.ascii == 110 then return dfastate_23
-               if c.ascii == 111 then return dfastate_23
-               if c.ascii == 112 then return dfastate_23
-               if c.ascii == 113 then return dfastate_23
-               if c.ascii == 114 then return dfastate_23
-               if c.ascii == 115 then return dfastate_23
-               if c.ascii == 116 then return dfastate_23
-               if c.ascii == 117 then return dfastate_23
-               if c.ascii == 118 then return dfastate_23
-               if c.ascii == 119 then return dfastate_23
-               if c.ascii == 121 then return dfastate_23
-               if c.ascii == 122 then return dfastate_23
-               if c.ascii == 123 then return dfastate_23
-               if c.ascii == 124 then return dfastate_23
-               if c.ascii == 125 then return dfastate_23
-               if c.ascii == 126 then return dfastate_23
-               return null
-       end
-end
-class DFAState22
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 39 then return dfastate_24
-               if c.ascii == 97 then return dfastate_25
-               if c.ascii == 98 then return dfastate_25
-               if c.ascii == 99 then return dfastate_25
-               if c.ascii == 100 then return dfastate_25
-               if c.ascii == 101 then return dfastate_25
-               if c.ascii == 102 then return dfastate_25
-               if c.ascii == 48 then return dfastate_26
-               if c.ascii == 49 then return dfastate_26
-               if c.ascii == 50 then return dfastate_26
-               if c.ascii == 51 then return dfastate_26
-               if c.ascii == 52 then return dfastate_26
-               if c.ascii == 53 then return dfastate_26
-               if c.ascii == 54 then return dfastate_26
-               if c.ascii == 55 then return dfastate_26
-               if c.ascii == 56 then return dfastate_26
-               if c.ascii == 57 then return dfastate_26
-               if c.ascii == 65 then return dfastate_27
-               if c.ascii == 66 then return dfastate_27
-               if c.ascii == 67 then return dfastate_27
-               if c.ascii == 68 then return dfastate_27
-               if c.ascii == 69 then return dfastate_27
-               if c.ascii == 70 then return dfastate_27
-               return null
-       end
-end
-class DFAState23
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 39 then return dfastate_24
-               return null
-       end
-end
-class DFAState24
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nchar
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState25
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 97 then return dfastate_28
-               if c.ascii == 98 then return dfastate_28
-               if c.ascii == 99 then return dfastate_28
-               if c.ascii == 100 then return dfastate_28
-               if c.ascii == 101 then return dfastate_28
-               if c.ascii == 102 then return dfastate_28
-               if c.ascii == 48 then return dfastate_29
-               if c.ascii == 49 then return dfastate_29
-               if c.ascii == 50 then return dfastate_29
-               if c.ascii == 51 then return dfastate_29
-               if c.ascii == 52 then return dfastate_29
-               if c.ascii == 53 then return dfastate_29
-               if c.ascii == 54 then return dfastate_29
-               if c.ascii == 55 then return dfastate_29
-               if c.ascii == 56 then return dfastate_29
-               if c.ascii == 57 then return dfastate_29
-               if c.ascii == 65 then return dfastate_30
-               if c.ascii == 66 then return dfastate_30
-               if c.ascii == 67 then return dfastate_30
-               if c.ascii == 68 then return dfastate_30
-               if c.ascii == 69 then return dfastate_30
-               if c.ascii == 70 then return dfastate_30
-               return null
-       end
-end
-class DFAState26
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 97 then return dfastate_28
-               if c.ascii == 98 then return dfastate_28
-               if c.ascii == 99 then return dfastate_28
-               if c.ascii == 100 then return dfastate_28
-               if c.ascii == 101 then return dfastate_28
-               if c.ascii == 102 then return dfastate_28
-               if c.ascii == 48 then return dfastate_29
-               if c.ascii == 49 then return dfastate_29
-               if c.ascii == 50 then return dfastate_29
-               if c.ascii == 51 then return dfastate_29
-               if c.ascii == 52 then return dfastate_29
-               if c.ascii == 53 then return dfastate_29
-               if c.ascii == 54 then return dfastate_29
-               if c.ascii == 55 then return dfastate_29
-               if c.ascii == 56 then return dfastate_29
-               if c.ascii == 57 then return dfastate_29
-               if c.ascii == 65 then return dfastate_30
-               if c.ascii == 66 then return dfastate_30
-               if c.ascii == 67 then return dfastate_30
-               if c.ascii == 68 then return dfastate_30
-               if c.ascii == 69 then return dfastate_30
-               if c.ascii == 70 then return dfastate_30
-               return null
-       end
-end
-class DFAState27
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 97 then return dfastate_28
-               if c.ascii == 98 then return dfastate_28
-               if c.ascii == 99 then return dfastate_28
-               if c.ascii == 100 then return dfastate_28
-               if c.ascii == 101 then return dfastate_28
-               if c.ascii == 102 then return dfastate_28
-               if c.ascii == 48 then return dfastate_29
-               if c.ascii == 49 then return dfastate_29
-               if c.ascii == 50 then return dfastate_29
-               if c.ascii == 51 then return dfastate_29
-               if c.ascii == 52 then return dfastate_29
-               if c.ascii == 53 then return dfastate_29
-               if c.ascii == 54 then return dfastate_29
-               if c.ascii == 55 then return dfastate_29
-               if c.ascii == 56 then return dfastate_29
-               if c.ascii == 57 then return dfastate_29
-               if c.ascii == 65 then return dfastate_30
-               if c.ascii == 66 then return dfastate_30
-               if c.ascii == 67 then return dfastate_30
-               if c.ascii == 68 then return dfastate_30
-               if c.ascii == 69 then return dfastate_30
-               if c.ascii == 70 then return dfastate_30
-               return null
-       end
-end
-class DFAState28
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 39 then return dfastate_31
-               return null
-       end
-end
-class DFAState29
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 39 then return dfastate_31
-               return null
-       end
-end
-class DFAState30
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 39 then return dfastate_31
-               return null
-       end
-end
-class DFAState31
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nchar
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState32
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nchar
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState33
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 32 then return dfastate_33
-               if c.ascii == 33 then return dfastate_33
-               if c.ascii == 35 then return dfastate_33
-               if c.ascii == 36 then return dfastate_33
-               if c.ascii == 37 then return dfastate_33
-               if c.ascii == 38 then return dfastate_33
-               if c.ascii == 39 then return dfastate_33
-               if c.ascii == 40 then return dfastate_33
-               if c.ascii == 41 then return dfastate_33
-               if c.ascii == 42 then return dfastate_33
-               if c.ascii == 43 then return dfastate_33
-               if c.ascii == 44 then return dfastate_33
-               if c.ascii == 45 then return dfastate_33
-               if c.ascii == 46 then return dfastate_33
-               if c.ascii == 47 then return dfastate_33
-               if c.ascii == 48 then return dfastate_33
-               if c.ascii == 49 then return dfastate_33
-               if c.ascii == 50 then return dfastate_33
-               if c.ascii == 51 then return dfastate_33
-               if c.ascii == 52 then return dfastate_33
-               if c.ascii == 53 then return dfastate_33
-               if c.ascii == 54 then return dfastate_33
-               if c.ascii == 55 then return dfastate_33
-               if c.ascii == 56 then return dfastate_33
-               if c.ascii == 57 then return dfastate_33
-               if c.ascii == 58 then return dfastate_33
-               if c.ascii == 59 then return dfastate_33
-               if c.ascii == 60 then return dfastate_33
-               if c.ascii == 61 then return dfastate_33
-               if c.ascii == 62 then return dfastate_33
-               if c.ascii == 63 then return dfastate_33
-               if c.ascii == 64 then return dfastate_33
-               if c.ascii == 65 then return dfastate_33
-               if c.ascii == 66 then return dfastate_33
-               if c.ascii == 67 then return dfastate_33
-               if c.ascii == 68 then return dfastate_33
-               if c.ascii == 69 then return dfastate_33
-               if c.ascii == 70 then return dfastate_33
-               if c.ascii == 71 then return dfastate_33
-               if c.ascii == 72 then return dfastate_33
-               if c.ascii == 73 then return dfastate_33
-               if c.ascii == 74 then return dfastate_33
-               if c.ascii == 75 then return dfastate_33
-               if c.ascii == 76 then return dfastate_33
-               if c.ascii == 77 then return dfastate_33
-               if c.ascii == 78 then return dfastate_33
-               if c.ascii == 79 then return dfastate_33
-               if c.ascii == 80 then return dfastate_33
-               if c.ascii == 81 then return dfastate_33
-               if c.ascii == 82 then return dfastate_33
-               if c.ascii == 83 then return dfastate_33
-               if c.ascii == 84 then return dfastate_33
-               if c.ascii == 85 then return dfastate_33
-               if c.ascii == 86 then return dfastate_33
-               if c.ascii == 87 then return dfastate_33
-               if c.ascii == 88 then return dfastate_33
-               if c.ascii == 89 then return dfastate_33
-               if c.ascii == 90 then return dfastate_33
-               if c.ascii == 91 then return dfastate_33
-               if c.ascii == 92 then return dfastate_42
-               if c.ascii == 93 then return dfastate_33
-               if c.ascii == 94 then return dfastate_33
-               if c.ascii == 95 then return dfastate_33
-               if c.ascii == 96 then return dfastate_33
-               if c.ascii == 97 then return dfastate_33
-               if c.ascii == 98 then return dfastate_33
-               if c.ascii == 99 then return dfastate_33
-               if c.ascii == 100 then return dfastate_33
-               if c.ascii == 101 then return dfastate_33
-               if c.ascii == 102 then return dfastate_33
-               if c.ascii == 103 then return dfastate_33
-               if c.ascii == 104 then return dfastate_33
-               if c.ascii == 105 then return dfastate_33
-               if c.ascii == 106 then return dfastate_33
-               if c.ascii == 107 then return dfastate_33
-               if c.ascii == 108 then return dfastate_33
-               if c.ascii == 109 then return dfastate_33
-               if c.ascii == 110 then return dfastate_33
-               if c.ascii == 111 then return dfastate_33
-               if c.ascii == 112 then return dfastate_33
-               if c.ascii == 113 then return dfastate_33
-               if c.ascii == 114 then return dfastate_33
-               if c.ascii == 115 then return dfastate_33
-               if c.ascii == 116 then return dfastate_33
-               if c.ascii == 117 then return dfastate_33
-               if c.ascii == 118 then return dfastate_33
-               if c.ascii == 119 then return dfastate_33
-               if c.ascii == 120 then return dfastate_33
-               if c.ascii == 121 then return dfastate_33
-               if c.ascii == 122 then return dfastate_33
-               if c.ascii == 123 then return dfastate_33
-               if c.ascii == 124 then return dfastate_33
-               if c.ascii == 125 then return dfastate_33
-               if c.ascii == 126 then return dfastate_33
-               return null
-       end
-end
-class DFAState34
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 32 then return dfastate_36
-               if c.ascii == 33 then return dfastate_36
-               if c.ascii == 34 then return dfastate_37
-               if c.ascii == 35 then return dfastate_36
-               if c.ascii == 36 then return dfastate_36
-               if c.ascii == 37 then return dfastate_36
-               if c.ascii == 38 then return dfastate_36
-               if c.ascii == 39 then return dfastate_36
-               if c.ascii == 40 then return dfastate_36
-               if c.ascii == 41 then return dfastate_36
-               if c.ascii == 42 then return dfastate_36
-               if c.ascii == 43 then return dfastate_36
-               if c.ascii == 44 then return dfastate_36
-               if c.ascii == 45 then return dfastate_36
-               if c.ascii == 46 then return dfastate_36
-               if c.ascii == 47 then return dfastate_36
-               if c.ascii == 48 then return dfastate_36
-               if c.ascii == 49 then return dfastate_36
-               if c.ascii == 50 then return dfastate_36
-               if c.ascii == 51 then return dfastate_36
-               if c.ascii == 52 then return dfastate_36
-               if c.ascii == 53 then return dfastate_36
-               if c.ascii == 54 then return dfastate_36
-               if c.ascii == 55 then return dfastate_36
-               if c.ascii == 56 then return dfastate_36
-               if c.ascii == 57 then return dfastate_36
-               if c.ascii == 58 then return dfastate_36
-               if c.ascii == 59 then return dfastate_36
-               if c.ascii == 60 then return dfastate_36
-               if c.ascii == 61 then return dfastate_36
-               if c.ascii == 62 then return dfastate_36
-               if c.ascii == 63 then return dfastate_36
-               if c.ascii == 64 then return dfastate_36
-               if c.ascii == 65 then return dfastate_36
-               if c.ascii == 66 then return dfastate_36
-               if c.ascii == 67 then return dfastate_36
-               if c.ascii == 68 then return dfastate_36
-               if c.ascii == 69 then return dfastate_36
-               if c.ascii == 70 then return dfastate_36
-               if c.ascii == 71 then return dfastate_36
-               if c.ascii == 72 then return dfastate_36
-               if c.ascii == 73 then return dfastate_36
-               if c.ascii == 74 then return dfastate_36
-               if c.ascii == 75 then return dfastate_36
-               if c.ascii == 76 then return dfastate_36
-               if c.ascii == 77 then return dfastate_36
-               if c.ascii == 78 then return dfastate_36
-               if c.ascii == 79 then return dfastate_36
-               if c.ascii == 80 then return dfastate_36
-               if c.ascii == 81 then return dfastate_36
-               if c.ascii == 82 then return dfastate_36
-               if c.ascii == 83 then return dfastate_36
-               if c.ascii == 84 then return dfastate_36
-               if c.ascii == 85 then return dfastate_36
-               if c.ascii == 86 then return dfastate_36
-               if c.ascii == 87 then return dfastate_36
-               if c.ascii == 88 then return dfastate_36
-               if c.ascii == 89 then return dfastate_36
-               if c.ascii == 90 then return dfastate_36
-               if c.ascii == 91 then return dfastate_36
-               if c.ascii == 92 then return dfastate_38
-               if c.ascii == 93 then return dfastate_36
-               if c.ascii == 94 then return dfastate_36
-               if c.ascii == 95 then return dfastate_36
-               if c.ascii == 96 then return dfastate_36
-               if c.ascii == 97 then return dfastate_36
-               if c.ascii == 98 then return dfastate_36
-               if c.ascii == 99 then return dfastate_36
-               if c.ascii == 100 then return dfastate_36
-               if c.ascii == 101 then return dfastate_36
-               if c.ascii == 102 then return dfastate_36
-               if c.ascii == 103 then return dfastate_36
-               if c.ascii == 104 then return dfastate_36
-               if c.ascii == 105 then return dfastate_36
-               if c.ascii == 106 then return dfastate_36
-               if c.ascii == 107 then return dfastate_36
-               if c.ascii == 108 then return dfastate_36
-               if c.ascii == 109 then return dfastate_36
-               if c.ascii == 110 then return dfastate_36
-               if c.ascii == 111 then return dfastate_36
-               if c.ascii == 112 then return dfastate_36
-               if c.ascii == 113 then return dfastate_36
-               if c.ascii == 114 then return dfastate_36
-               if c.ascii == 115 then return dfastate_36
-               if c.ascii == 116 then return dfastate_36
-               if c.ascii == 117 then return dfastate_36
-               if c.ascii == 118 then return dfastate_36
-               if c.ascii == 119 then return dfastate_36
-               if c.ascii == 120 then return dfastate_36
-               if c.ascii == 121 then return dfastate_36
-               if c.ascii == 122 then return dfastate_36
-               if c.ascii == 123 then return dfastate_36
-               if c.ascii == 124 then return dfastate_36
-               if c.ascii == 125 then return dfastate_36
-               if c.ascii == 126 then return dfastate_36
-               return null
-       end
-end
-class DFAState35
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nstring
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState36
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 32 then return dfastate_33
-               if c.ascii == 33 then return dfastate_33
-               if c.ascii == 35 then return dfastate_33
-               if c.ascii == 36 then return dfastate_33
-               if c.ascii == 37 then return dfastate_33
-               if c.ascii == 38 then return dfastate_33
-               if c.ascii == 39 then return dfastate_33
-               if c.ascii == 40 then return dfastate_33
-               if c.ascii == 41 then return dfastate_33
-               if c.ascii == 42 then return dfastate_33
-               if c.ascii == 43 then return dfastate_33
-               if c.ascii == 44 then return dfastate_33
-               if c.ascii == 45 then return dfastate_33
-               if c.ascii == 46 then return dfastate_33
-               if c.ascii == 47 then return dfastate_33
-               if c.ascii == 48 then return dfastate_33
-               if c.ascii == 49 then return dfastate_33
-               if c.ascii == 50 then return dfastate_33
-               if c.ascii == 51 then return dfastate_33
-               if c.ascii == 52 then return dfastate_33
-               if c.ascii == 53 then return dfastate_33
-               if c.ascii == 54 then return dfastate_33
-               if c.ascii == 55 then return dfastate_33
-               if c.ascii == 56 then return dfastate_33
-               if c.ascii == 57 then return dfastate_33
-               if c.ascii == 58 then return dfastate_33
-               if c.ascii == 59 then return dfastate_33
-               if c.ascii == 60 then return dfastate_33
-               if c.ascii == 61 then return dfastate_33
-               if c.ascii == 62 then return dfastate_33
-               if c.ascii == 63 then return dfastate_33
-               if c.ascii == 64 then return dfastate_33
-               if c.ascii == 65 then return dfastate_33
-               if c.ascii == 66 then return dfastate_33
-               if c.ascii == 67 then return dfastate_33
-               if c.ascii == 68 then return dfastate_33
-               if c.ascii == 69 then return dfastate_33
-               if c.ascii == 70 then return dfastate_33
-               if c.ascii == 71 then return dfastate_33
-               if c.ascii == 72 then return dfastate_33
-               if c.ascii == 73 then return dfastate_33
-               if c.ascii == 74 then return dfastate_33
-               if c.ascii == 75 then return dfastate_33
-               if c.ascii == 76 then return dfastate_33
-               if c.ascii == 77 then return dfastate_33
-               if c.ascii == 78 then return dfastate_33
-               if c.ascii == 79 then return dfastate_33
-               if c.ascii == 80 then return dfastate_33
-               if c.ascii == 81 then return dfastate_33
-               if c.ascii == 82 then return dfastate_33
-               if c.ascii == 83 then return dfastate_33
-               if c.ascii == 84 then return dfastate_33
-               if c.ascii == 85 then return dfastate_33
-               if c.ascii == 86 then return dfastate_33
-               if c.ascii == 87 then return dfastate_33
-               if c.ascii == 88 then return dfastate_33
-               if c.ascii == 89 then return dfastate_33
-               if c.ascii == 90 then return dfastate_33
-               if c.ascii == 91 then return dfastate_33
-               if c.ascii == 92 then return dfastate_39
-               if c.ascii == 93 then return dfastate_33
-               if c.ascii == 94 then return dfastate_33
-               if c.ascii == 95 then return dfastate_33
-               if c.ascii == 96 then return dfastate_33
-               if c.ascii == 97 then return dfastate_33
-               if c.ascii == 98 then return dfastate_33
-               if c.ascii == 99 then return dfastate_33
-               if c.ascii == 100 then return dfastate_33
-               if c.ascii == 101 then return dfastate_33
-               if c.ascii == 102 then return dfastate_33
-               if c.ascii == 103 then return dfastate_33
-               if c.ascii == 104 then return dfastate_33
-               if c.ascii == 105 then return dfastate_33
-               if c.ascii == 106 then return dfastate_33
-               if c.ascii == 107 then return dfastate_33
-               if c.ascii == 108 then return dfastate_33
-               if c.ascii == 109 then return dfastate_33
-               if c.ascii == 110 then return dfastate_33
-               if c.ascii == 111 then return dfastate_33
-               if c.ascii == 112 then return dfastate_33
-               if c.ascii == 113 then return dfastate_33
-               if c.ascii == 114 then return dfastate_33
-               if c.ascii == 115 then return dfastate_33
-               if c.ascii == 116 then return dfastate_33
-               if c.ascii == 117 then return dfastate_33
-               if c.ascii == 118 then return dfastate_33
-               if c.ascii == 119 then return dfastate_33
-               if c.ascii == 120 then return dfastate_33
-               if c.ascii == 121 then return dfastate_33
-               if c.ascii == 122 then return dfastate_33
-               if c.ascii == 123 then return dfastate_33
-               if c.ascii == 124 then return dfastate_33
-               if c.ascii == 125 then return dfastate_33
-               if c.ascii == 126 then return dfastate_33
-               if c.ascii == 34 then return dfastate_35
-               return null
-       end
-end
-class DFAState37
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 34 then return dfastate_35
-               if c.ascii == 32 then return dfastate_33
-               if c.ascii == 33 then return dfastate_33
-               if c.ascii == 35 then return dfastate_33
-               if c.ascii == 36 then return dfastate_33
-               if c.ascii == 37 then return dfastate_33
-               if c.ascii == 38 then return dfastate_33
-               if c.ascii == 39 then return dfastate_33
-               if c.ascii == 40 then return dfastate_33
-               if c.ascii == 41 then return dfastate_33
-               if c.ascii == 42 then return dfastate_33
-               if c.ascii == 43 then return dfastate_33
-               if c.ascii == 44 then return dfastate_33
-               if c.ascii == 45 then return dfastate_33
-               if c.ascii == 46 then return dfastate_33
-               if c.ascii == 47 then return dfastate_33
-               if c.ascii == 48 then return dfastate_33
-               if c.ascii == 49 then return dfastate_33
-               if c.ascii == 50 then return dfastate_33
-               if c.ascii == 51 then return dfastate_33
-               if c.ascii == 52 then return dfastate_33
-               if c.ascii == 53 then return dfastate_33
-               if c.ascii == 54 then return dfastate_33
-               if c.ascii == 55 then return dfastate_33
-               if c.ascii == 56 then return dfastate_33
-               if c.ascii == 57 then return dfastate_33
-               if c.ascii == 58 then return dfastate_33
-               if c.ascii == 59 then return dfastate_33
-               if c.ascii == 60 then return dfastate_33
-               if c.ascii == 61 then return dfastate_33
-               if c.ascii == 62 then return dfastate_33
-               if c.ascii == 63 then return dfastate_33
-               if c.ascii == 64 then return dfastate_33
-               if c.ascii == 65 then return dfastate_33
-               if c.ascii == 66 then return dfastate_33
-               if c.ascii == 67 then return dfastate_33
-               if c.ascii == 68 then return dfastate_33
-               if c.ascii == 69 then return dfastate_33
-               if c.ascii == 70 then return dfastate_33
-               if c.ascii == 71 then return dfastate_33
-               if c.ascii == 72 then return dfastate_33
-               if c.ascii == 73 then return dfastate_33
-               if c.ascii == 74 then return dfastate_33
-               if c.ascii == 75 then return dfastate_33
-               if c.ascii == 76 then return dfastate_33
-               if c.ascii == 77 then return dfastate_33
-               if c.ascii == 78 then return dfastate_33
-               if c.ascii == 79 then return dfastate_33
-               if c.ascii == 80 then return dfastate_33
-               if c.ascii == 81 then return dfastate_33
-               if c.ascii == 82 then return dfastate_33
-               if c.ascii == 83 then return dfastate_33
-               if c.ascii == 84 then return dfastate_33
-               if c.ascii == 85 then return dfastate_33
-               if c.ascii == 86 then return dfastate_33
-               if c.ascii == 87 then return dfastate_33
-               if c.ascii == 88 then return dfastate_33
-               if c.ascii == 89 then return dfastate_33
-               if c.ascii == 90 then return dfastate_33
-               if c.ascii == 91 then return dfastate_33
-               if c.ascii == 92 then return dfastate_34
-               if c.ascii == 93 then return dfastate_33
-               if c.ascii == 94 then return dfastate_33
-               if c.ascii == 95 then return dfastate_33
-               if c.ascii == 96 then return dfastate_33
-               if c.ascii == 97 then return dfastate_33
-               if c.ascii == 98 then return dfastate_33
-               if c.ascii == 99 then return dfastate_33
-               if c.ascii == 100 then return dfastate_33
-               if c.ascii == 101 then return dfastate_33
-               if c.ascii == 102 then return dfastate_33
-               if c.ascii == 103 then return dfastate_33
-               if c.ascii == 104 then return dfastate_33
-               if c.ascii == 105 then return dfastate_33
-               if c.ascii == 106 then return dfastate_33
-               if c.ascii == 107 then return dfastate_33
-               if c.ascii == 108 then return dfastate_33
-               if c.ascii == 109 then return dfastate_33
-               if c.ascii == 110 then return dfastate_33
-               if c.ascii == 111 then return dfastate_33
-               if c.ascii == 112 then return dfastate_33
-               if c.ascii == 113 then return dfastate_33
-               if c.ascii == 114 then return dfastate_33
-               if c.ascii == 115 then return dfastate_33
-               if c.ascii == 116 then return dfastate_33
-               if c.ascii == 117 then return dfastate_33
-               if c.ascii == 118 then return dfastate_33
-               if c.ascii == 119 then return dfastate_33
-               if c.ascii == 120 then return dfastate_33
-               if c.ascii == 121 then return dfastate_33
-               if c.ascii == 122 then return dfastate_33
-               if c.ascii == 123 then return dfastate_33
-               if c.ascii == 124 then return dfastate_33
-               if c.ascii == 125 then return dfastate_33
-               if c.ascii == 126 then return dfastate_33
-               return null
-       end
-end
-class DFAState38
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 34 then return dfastate_35
-               if c.ascii == 32 then return dfastate_33
-               if c.ascii == 33 then return dfastate_33
-               if c.ascii == 35 then return dfastate_33
-               if c.ascii == 36 then return dfastate_33
-               if c.ascii == 37 then return dfastate_33
-               if c.ascii == 38 then return dfastate_33
-               if c.ascii == 39 then return dfastate_33
-               if c.ascii == 40 then return dfastate_33
-               if c.ascii == 41 then return dfastate_33
-               if c.ascii == 42 then return dfastate_33
-               if c.ascii == 43 then return dfastate_33
-               if c.ascii == 44 then return dfastate_33
-               if c.ascii == 45 then return dfastate_33
-               if c.ascii == 46 then return dfastate_33
-               if c.ascii == 47 then return dfastate_33
-               if c.ascii == 48 then return dfastate_33
-               if c.ascii == 49 then return dfastate_33
-               if c.ascii == 50 then return dfastate_33
-               if c.ascii == 51 then return dfastate_33
-               if c.ascii == 52 then return dfastate_33
-               if c.ascii == 53 then return dfastate_33
-               if c.ascii == 54 then return dfastate_33
-               if c.ascii == 55 then return dfastate_33
-               if c.ascii == 56 then return dfastate_33
-               if c.ascii == 57 then return dfastate_33
-               if c.ascii == 58 then return dfastate_33
-               if c.ascii == 59 then return dfastate_33
-               if c.ascii == 60 then return dfastate_33
-               if c.ascii == 61 then return dfastate_33
-               if c.ascii == 62 then return dfastate_33
-               if c.ascii == 63 then return dfastate_33
-               if c.ascii == 64 then return dfastate_33
-               if c.ascii == 65 then return dfastate_33
-               if c.ascii == 66 then return dfastate_33
-               if c.ascii == 67 then return dfastate_33
-               if c.ascii == 68 then return dfastate_33
-               if c.ascii == 69 then return dfastate_33
-               if c.ascii == 70 then return dfastate_33
-               if c.ascii == 71 then return dfastate_33
-               if c.ascii == 72 then return dfastate_33
-               if c.ascii == 73 then return dfastate_33
-               if c.ascii == 74 then return dfastate_33
-               if c.ascii == 75 then return dfastate_33
-               if c.ascii == 76 then return dfastate_33
-               if c.ascii == 77 then return dfastate_33
-               if c.ascii == 78 then return dfastate_33
-               if c.ascii == 79 then return dfastate_33
-               if c.ascii == 80 then return dfastate_33
-               if c.ascii == 81 then return dfastate_33
-               if c.ascii == 82 then return dfastate_33
-               if c.ascii == 83 then return dfastate_33
-               if c.ascii == 84 then return dfastate_33
-               if c.ascii == 85 then return dfastate_33
-               if c.ascii == 86 then return dfastate_33
-               if c.ascii == 87 then return dfastate_33
-               if c.ascii == 88 then return dfastate_33
-               if c.ascii == 89 then return dfastate_33
-               if c.ascii == 90 then return dfastate_33
-               if c.ascii == 91 then return dfastate_33
-               if c.ascii == 92 then return dfastate_39
-               if c.ascii == 93 then return dfastate_33
-               if c.ascii == 94 then return dfastate_33
-               if c.ascii == 95 then return dfastate_33
-               if c.ascii == 96 then return dfastate_33
-               if c.ascii == 97 then return dfastate_33
-               if c.ascii == 98 then return dfastate_33
-               if c.ascii == 99 then return dfastate_33
-               if c.ascii == 100 then return dfastate_33
-               if c.ascii == 101 then return dfastate_33
-               if c.ascii == 102 then return dfastate_33
-               if c.ascii == 103 then return dfastate_33
-               if c.ascii == 104 then return dfastate_33
-               if c.ascii == 105 then return dfastate_33
-               if c.ascii == 106 then return dfastate_33
-               if c.ascii == 107 then return dfastate_33
-               if c.ascii == 108 then return dfastate_33
-               if c.ascii == 109 then return dfastate_33
-               if c.ascii == 110 then return dfastate_33
-               if c.ascii == 111 then return dfastate_33
-               if c.ascii == 112 then return dfastate_33
-               if c.ascii == 113 then return dfastate_33
-               if c.ascii == 114 then return dfastate_33
-               if c.ascii == 115 then return dfastate_33
-               if c.ascii == 116 then return dfastate_33
-               if c.ascii == 117 then return dfastate_33
-               if c.ascii == 118 then return dfastate_33
-               if c.ascii == 119 then return dfastate_33
-               if c.ascii == 120 then return dfastate_33
-               if c.ascii == 121 then return dfastate_33
-               if c.ascii == 122 then return dfastate_33
-               if c.ascii == 123 then return dfastate_33
-               if c.ascii == 124 then return dfastate_33
-               if c.ascii == 125 then return dfastate_33
-               if c.ascii == 126 then return dfastate_33
-               return null
-       end
-end
-class DFAState39
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 34 then return dfastate_40
-               if c.ascii == 32 then return dfastate_36
-               if c.ascii == 33 then return dfastate_36
-               if c.ascii == 35 then return dfastate_36
-               if c.ascii == 36 then return dfastate_36
-               if c.ascii == 37 then return dfastate_36
-               if c.ascii == 38 then return dfastate_36
-               if c.ascii == 39 then return dfastate_36
-               if c.ascii == 40 then return dfastate_36
-               if c.ascii == 41 then return dfastate_36
-               if c.ascii == 42 then return dfastate_36
-               if c.ascii == 43 then return dfastate_36
-               if c.ascii == 44 then return dfastate_36
-               if c.ascii == 45 then return dfastate_36
-               if c.ascii == 46 then return dfastate_36
-               if c.ascii == 47 then return dfastate_36
-               if c.ascii == 48 then return dfastate_36
-               if c.ascii == 49 then return dfastate_36
-               if c.ascii == 50 then return dfastate_36
-               if c.ascii == 51 then return dfastate_36
-               if c.ascii == 52 then return dfastate_36
-               if c.ascii == 53 then return dfastate_36
-               if c.ascii == 54 then return dfastate_36
-               if c.ascii == 55 then return dfastate_36
-               if c.ascii == 56 then return dfastate_36
-               if c.ascii == 57 then return dfastate_36
-               if c.ascii == 58 then return dfastate_36
-               if c.ascii == 59 then return dfastate_36
-               if c.ascii == 60 then return dfastate_36
-               if c.ascii == 61 then return dfastate_36
-               if c.ascii == 62 then return dfastate_36
-               if c.ascii == 63 then return dfastate_36
-               if c.ascii == 64 then return dfastate_36
-               if c.ascii == 65 then return dfastate_36
-               if c.ascii == 66 then return dfastate_36
-               if c.ascii == 67 then return dfastate_36
-               if c.ascii == 68 then return dfastate_36
-               if c.ascii == 69 then return dfastate_36
-               if c.ascii == 70 then return dfastate_36
-               if c.ascii == 71 then return dfastate_36
-               if c.ascii == 72 then return dfastate_36
-               if c.ascii == 73 then return dfastate_36
-               if c.ascii == 74 then return dfastate_36
-               if c.ascii == 75 then return dfastate_36
-               if c.ascii == 76 then return dfastate_36
-               if c.ascii == 77 then return dfastate_36
-               if c.ascii == 78 then return dfastate_36
-               if c.ascii == 79 then return dfastate_36
-               if c.ascii == 80 then return dfastate_36
-               if c.ascii == 81 then return dfastate_36
-               if c.ascii == 82 then return dfastate_36
-               if c.ascii == 83 then return dfastate_36
-               if c.ascii == 84 then return dfastate_36
-               if c.ascii == 85 then return dfastate_36
-               if c.ascii == 86 then return dfastate_36
-               if c.ascii == 87 then return dfastate_36
-               if c.ascii == 88 then return dfastate_36
-               if c.ascii == 89 then return dfastate_36
-               if c.ascii == 90 then return dfastate_36
-               if c.ascii == 91 then return dfastate_36
-               if c.ascii == 92 then return dfastate_41
-               if c.ascii == 93 then return dfastate_36
-               if c.ascii == 94 then return dfastate_36
-               if c.ascii == 95 then return dfastate_36
-               if c.ascii == 96 then return dfastate_36
-               if c.ascii == 97 then return dfastate_36
-               if c.ascii == 98 then return dfastate_36
-               if c.ascii == 99 then return dfastate_36
-               if c.ascii == 100 then return dfastate_36
-               if c.ascii == 101 then return dfastate_36
-               if c.ascii == 102 then return dfastate_36
-               if c.ascii == 103 then return dfastate_36
-               if c.ascii == 104 then return dfastate_36
-               if c.ascii == 105 then return dfastate_36
-               if c.ascii == 106 then return dfastate_36
-               if c.ascii == 107 then return dfastate_36
-               if c.ascii == 108 then return dfastate_36
-               if c.ascii == 109 then return dfastate_36
-               if c.ascii == 110 then return dfastate_36
-               if c.ascii == 111 then return dfastate_36
-               if c.ascii == 112 then return dfastate_36
-               if c.ascii == 113 then return dfastate_36
-               if c.ascii == 114 then return dfastate_36
-               if c.ascii == 115 then return dfastate_36
-               if c.ascii == 116 then return dfastate_36
-               if c.ascii == 117 then return dfastate_36
-               if c.ascii == 118 then return dfastate_36
-               if c.ascii == 119 then return dfastate_36
-               if c.ascii == 120 then return dfastate_36
-               if c.ascii == 121 then return dfastate_36
-               if c.ascii == 122 then return dfastate_36
-               if c.ascii == 123 then return dfastate_36
-               if c.ascii == 124 then return dfastate_36
-               if c.ascii == 125 then return dfastate_36
-               if c.ascii == 126 then return dfastate_36
-               return null
-       end
-end
-class DFAState40
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nstring
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 34 then return dfastate_35
-               if c.ascii == 32 then return dfastate_33
-               if c.ascii == 33 then return dfastate_33
-               if c.ascii == 35 then return dfastate_33
-               if c.ascii == 36 then return dfastate_33
-               if c.ascii == 37 then return dfastate_33
-               if c.ascii == 38 then return dfastate_33
-               if c.ascii == 39 then return dfastate_33
-               if c.ascii == 40 then return dfastate_33
-               if c.ascii == 41 then return dfastate_33
-               if c.ascii == 42 then return dfastate_33
-               if c.ascii == 43 then return dfastate_33
-               if c.ascii == 44 then return dfastate_33
-               if c.ascii == 45 then return dfastate_33
-               if c.ascii == 46 then return dfastate_33
-               if c.ascii == 47 then return dfastate_33
-               if c.ascii == 48 then return dfastate_33
-               if c.ascii == 49 then return dfastate_33
-               if c.ascii == 50 then return dfastate_33
-               if c.ascii == 51 then return dfastate_33
-               if c.ascii == 52 then return dfastate_33
-               if c.ascii == 53 then return dfastate_33
-               if c.ascii == 54 then return dfastate_33
-               if c.ascii == 55 then return dfastate_33
-               if c.ascii == 56 then return dfastate_33
-               if c.ascii == 57 then return dfastate_33
-               if c.ascii == 58 then return dfastate_33
-               if c.ascii == 59 then return dfastate_33
-               if c.ascii == 60 then return dfastate_33
-               if c.ascii == 61 then return dfastate_33
-               if c.ascii == 62 then return dfastate_33
-               if c.ascii == 63 then return dfastate_33
-               if c.ascii == 64 then return dfastate_33
-               if c.ascii == 65 then return dfastate_33
-               if c.ascii == 66 then return dfastate_33
-               if c.ascii == 67 then return dfastate_33
-               if c.ascii == 68 then return dfastate_33
-               if c.ascii == 69 then return dfastate_33
-               if c.ascii == 70 then return dfastate_33
-               if c.ascii == 71 then return dfastate_33
-               if c.ascii == 72 then return dfastate_33
-               if c.ascii == 73 then return dfastate_33
-               if c.ascii == 74 then return dfastate_33
-               if c.ascii == 75 then return dfastate_33
-               if c.ascii == 76 then return dfastate_33
-               if c.ascii == 77 then return dfastate_33
-               if c.ascii == 78 then return dfastate_33
-               if c.ascii == 79 then return dfastate_33
-               if c.ascii == 80 then return dfastate_33
-               if c.ascii == 81 then return dfastate_33
-               if c.ascii == 82 then return dfastate_33
-               if c.ascii == 83 then return dfastate_33
-               if c.ascii == 84 then return dfastate_33
-               if c.ascii == 85 then return dfastate_33
-               if c.ascii == 86 then return dfastate_33
-               if c.ascii == 87 then return dfastate_33
-               if c.ascii == 88 then return dfastate_33
-               if c.ascii == 89 then return dfastate_33
-               if c.ascii == 90 then return dfastate_33
-               if c.ascii == 91 then return dfastate_33
-               if c.ascii == 92 then return dfastate_34
-               if c.ascii == 93 then return dfastate_33
-               if c.ascii == 94 then return dfastate_33
-               if c.ascii == 95 then return dfastate_33
-               if c.ascii == 96 then return dfastate_33
-               if c.ascii == 97 then return dfastate_33
-               if c.ascii == 98 then return dfastate_33
-               if c.ascii == 99 then return dfastate_33
-               if c.ascii == 100 then return dfastate_33
-               if c.ascii == 101 then return dfastate_33
-               if c.ascii == 102 then return dfastate_33
-               if c.ascii == 103 then return dfastate_33
-               if c.ascii == 104 then return dfastate_33
-               if c.ascii == 105 then return dfastate_33
-               if c.ascii == 106 then return dfastate_33
-               if c.ascii == 107 then return dfastate_33
-               if c.ascii == 108 then return dfastate_33
-               if c.ascii == 109 then return dfastate_33
-               if c.ascii == 110 then return dfastate_33
-               if c.ascii == 111 then return dfastate_33
-               if c.ascii == 112 then return dfastate_33
-               if c.ascii == 113 then return dfastate_33
-               if c.ascii == 114 then return dfastate_33
-               if c.ascii == 115 then return dfastate_33
-               if c.ascii == 116 then return dfastate_33
-               if c.ascii == 117 then return dfastate_33
-               if c.ascii == 118 then return dfastate_33
-               if c.ascii == 119 then return dfastate_33
-               if c.ascii == 120 then return dfastate_33
-               if c.ascii == 121 then return dfastate_33
-               if c.ascii == 122 then return dfastate_33
-               if c.ascii == 123 then return dfastate_33
-               if c.ascii == 124 then return dfastate_33
-               if c.ascii == 125 then return dfastate_33
-               if c.ascii == 126 then return dfastate_33
-               return null
-       end
-end
-class DFAState41
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 34 then return dfastate_40
-               if c.ascii == 32 then return dfastate_36
-               if c.ascii == 33 then return dfastate_36
-               if c.ascii == 35 then return dfastate_36
-               if c.ascii == 36 then return dfastate_36
-               if c.ascii == 37 then return dfastate_36
-               if c.ascii == 38 then return dfastate_36
-               if c.ascii == 39 then return dfastate_36
-               if c.ascii == 40 then return dfastate_36
-               if c.ascii == 41 then return dfastate_36
-               if c.ascii == 42 then return dfastate_36
-               if c.ascii == 43 then return dfastate_36
-               if c.ascii == 44 then return dfastate_36
-               if c.ascii == 45 then return dfastate_36
-               if c.ascii == 46 then return dfastate_36
-               if c.ascii == 47 then return dfastate_36
-               if c.ascii == 48 then return dfastate_36
-               if c.ascii == 49 then return dfastate_36
-               if c.ascii == 50 then return dfastate_36
-               if c.ascii == 51 then return dfastate_36
-               if c.ascii == 52 then return dfastate_36
-               if c.ascii == 53 then return dfastate_36
-               if c.ascii == 54 then return dfastate_36
-               if c.ascii == 55 then return dfastate_36
-               if c.ascii == 56 then return dfastate_36
-               if c.ascii == 57 then return dfastate_36
-               if c.ascii == 58 then return dfastate_36
-               if c.ascii == 59 then return dfastate_36
-               if c.ascii == 60 then return dfastate_36
-               if c.ascii == 61 then return dfastate_36
-               if c.ascii == 62 then return dfastate_36
-               if c.ascii == 63 then return dfastate_36
-               if c.ascii == 64 then return dfastate_36
-               if c.ascii == 65 then return dfastate_36
-               if c.ascii == 66 then return dfastate_36
-               if c.ascii == 67 then return dfastate_36
-               if c.ascii == 68 then return dfastate_36
-               if c.ascii == 69 then return dfastate_36
-               if c.ascii == 70 then return dfastate_36
-               if c.ascii == 71 then return dfastate_36
-               if c.ascii == 72 then return dfastate_36
-               if c.ascii == 73 then return dfastate_36
-               if c.ascii == 74 then return dfastate_36
-               if c.ascii == 75 then return dfastate_36
-               if c.ascii == 76 then return dfastate_36
-               if c.ascii == 77 then return dfastate_36
-               if c.ascii == 78 then return dfastate_36
-               if c.ascii == 79 then return dfastate_36
-               if c.ascii == 80 then return dfastate_36
-               if c.ascii == 81 then return dfastate_36
-               if c.ascii == 82 then return dfastate_36
-               if c.ascii == 83 then return dfastate_36
-               if c.ascii == 84 then return dfastate_36
-               if c.ascii == 85 then return dfastate_36
-               if c.ascii == 86 then return dfastate_36
-               if c.ascii == 87 then return dfastate_36
-               if c.ascii == 88 then return dfastate_36
-               if c.ascii == 89 then return dfastate_36
-               if c.ascii == 90 then return dfastate_36
-               if c.ascii == 91 then return dfastate_36
-               if c.ascii == 92 then return dfastate_41
-               if c.ascii == 93 then return dfastate_36
-               if c.ascii == 94 then return dfastate_36
-               if c.ascii == 95 then return dfastate_36
-               if c.ascii == 96 then return dfastate_36
-               if c.ascii == 97 then return dfastate_36
-               if c.ascii == 98 then return dfastate_36
-               if c.ascii == 99 then return dfastate_36
-               if c.ascii == 100 then return dfastate_36
-               if c.ascii == 101 then return dfastate_36
-               if c.ascii == 102 then return dfastate_36
-               if c.ascii == 103 then return dfastate_36
-               if c.ascii == 104 then return dfastate_36
-               if c.ascii == 105 then return dfastate_36
-               if c.ascii == 106 then return dfastate_36
-               if c.ascii == 107 then return dfastate_36
-               if c.ascii == 108 then return dfastate_36
-               if c.ascii == 109 then return dfastate_36
-               if c.ascii == 110 then return dfastate_36
-               if c.ascii == 111 then return dfastate_36
-               if c.ascii == 112 then return dfastate_36
-               if c.ascii == 113 then return dfastate_36
-               if c.ascii == 114 then return dfastate_36
-               if c.ascii == 115 then return dfastate_36
-               if c.ascii == 116 then return dfastate_36
-               if c.ascii == 117 then return dfastate_36
-               if c.ascii == 118 then return dfastate_36
-               if c.ascii == 119 then return dfastate_36
-               if c.ascii == 120 then return dfastate_36
-               if c.ascii == 121 then return dfastate_36
-               if c.ascii == 122 then return dfastate_36
-               if c.ascii == 123 then return dfastate_36
-               if c.ascii == 124 then return dfastate_36
-               if c.ascii == 125 then return dfastate_36
-               if c.ascii == 126 then return dfastate_36
-               return null
-       end
-end
-class DFAState42
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 34 then return dfastate_35
-               if c.ascii == 32 then return dfastate_33
-               if c.ascii == 33 then return dfastate_33
-               if c.ascii == 35 then return dfastate_33
-               if c.ascii == 36 then return dfastate_33
-               if c.ascii == 37 then return dfastate_33
-               if c.ascii == 38 then return dfastate_33
-               if c.ascii == 39 then return dfastate_33
-               if c.ascii == 40 then return dfastate_33
-               if c.ascii == 41 then return dfastate_33
-               if c.ascii == 42 then return dfastate_33
-               if c.ascii == 43 then return dfastate_33
-               if c.ascii == 44 then return dfastate_33
-               if c.ascii == 45 then return dfastate_33
-               if c.ascii == 46 then return dfastate_33
-               if c.ascii == 47 then return dfastate_33
-               if c.ascii == 48 then return dfastate_33
-               if c.ascii == 49 then return dfastate_33
-               if c.ascii == 50 then return dfastate_33
-               if c.ascii == 51 then return dfastate_33
-               if c.ascii == 52 then return dfastate_33
-               if c.ascii == 53 then return dfastate_33
-               if c.ascii == 54 then return dfastate_33
-               if c.ascii == 55 then return dfastate_33
-               if c.ascii == 56 then return dfastate_33
-               if c.ascii == 57 then return dfastate_33
-               if c.ascii == 58 then return dfastate_33
-               if c.ascii == 59 then return dfastate_33
-               if c.ascii == 60 then return dfastate_33
-               if c.ascii == 61 then return dfastate_33
-               if c.ascii == 62 then return dfastate_33
-               if c.ascii == 63 then return dfastate_33
-               if c.ascii == 64 then return dfastate_33
-               if c.ascii == 65 then return dfastate_33
-               if c.ascii == 66 then return dfastate_33
-               if c.ascii == 67 then return dfastate_33
-               if c.ascii == 68 then return dfastate_33
-               if c.ascii == 69 then return dfastate_33
-               if c.ascii == 70 then return dfastate_33
-               if c.ascii == 71 then return dfastate_33
-               if c.ascii == 72 then return dfastate_33
-               if c.ascii == 73 then return dfastate_33
-               if c.ascii == 74 then return dfastate_33
-               if c.ascii == 75 then return dfastate_33
-               if c.ascii == 76 then return dfastate_33
-               if c.ascii == 77 then return dfastate_33
-               if c.ascii == 78 then return dfastate_33
-               if c.ascii == 79 then return dfastate_33
-               if c.ascii == 80 then return dfastate_33
-               if c.ascii == 81 then return dfastate_33
-               if c.ascii == 82 then return dfastate_33
-               if c.ascii == 83 then return dfastate_33
-               if c.ascii == 84 then return dfastate_33
-               if c.ascii == 85 then return dfastate_33
-               if c.ascii == 86 then return dfastate_33
-               if c.ascii == 87 then return dfastate_33
-               if c.ascii == 88 then return dfastate_33
-               if c.ascii == 89 then return dfastate_33
-               if c.ascii == 90 then return dfastate_33
-               if c.ascii == 91 then return dfastate_33
-               if c.ascii == 92 then return dfastate_39
-               if c.ascii == 93 then return dfastate_33
-               if c.ascii == 94 then return dfastate_33
-               if c.ascii == 95 then return dfastate_33
-               if c.ascii == 96 then return dfastate_33
-               if c.ascii == 97 then return dfastate_33
-               if c.ascii == 98 then return dfastate_33
-               if c.ascii == 99 then return dfastate_33
-               if c.ascii == 100 then return dfastate_33
-               if c.ascii == 101 then return dfastate_33
-               if c.ascii == 102 then return dfastate_33
-               if c.ascii == 103 then return dfastate_33
-               if c.ascii == 104 then return dfastate_33
-               if c.ascii == 105 then return dfastate_33
-               if c.ascii == 106 then return dfastate_33
-               if c.ascii == 107 then return dfastate_33
-               if c.ascii == 108 then return dfastate_33
-               if c.ascii == 109 then return dfastate_33
-               if c.ascii == 110 then return dfastate_33
-               if c.ascii == 111 then return dfastate_33
-               if c.ascii == 112 then return dfastate_33
-               if c.ascii == 113 then return dfastate_33
-               if c.ascii == 114 then return dfastate_33
-               if c.ascii == 115 then return dfastate_33
-               if c.ascii == 116 then return dfastate_33
-               if c.ascii == 117 then return dfastate_33
-               if c.ascii == 118 then return dfastate_33
-               if c.ascii == 119 then return dfastate_33
-               if c.ascii == 120 then return dfastate_33
-               if c.ascii == 121 then return dfastate_33
-               if c.ascii == 122 then return dfastate_33
-               if c.ascii == 123 then return dfastate_33
-               if c.ascii == 124 then return dfastate_33
-               if c.ascii == 125 then return dfastate_33
-               if c.ascii == 126 then return dfastate_33
-               return null
-       end
-end
-class DFAState43
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 113 then return dfastate_95
-               if c.ascii == 81 then return dfastate_96
-               if c.ascii == 110 then return dfastate_97
-               if c.ascii == 78 then return dfastate_98
-               return null
-       end
-end
-class DFAState44
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 113 then return dfastate_95
-               if c.ascii == 81 then return dfastate_96
-               if c.ascii == 110 then return dfastate_97
-               if c.ascii == 78 then return dfastate_98
-               return null
-       end
-end
-class DFAState45
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 117 then return dfastate_75
-               if c.ascii == 85 then return dfastate_76
-               if c.ascii == 108 then return dfastate_77
-               if c.ascii == 76 then return dfastate_78
-               if c.ascii == 121 then return dfastate_79
-               if c.ascii == 89 then return dfastate_80
-               return null
-       end
-end
-class DFAState46
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 117 then return dfastate_75
-               if c.ascii == 85 then return dfastate_76
-               if c.ascii == 108 then return dfastate_77
-               if c.ascii == 76 then return dfastate_78
-               if c.ascii == 121 then return dfastate_79
-               if c.ascii == 89 then return dfastate_80
-               return null
-       end
-end
-class DFAState47
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 111 then return dfastate_69
-               if c.ascii == 79 then return dfastate_70
-               return null
-       end
-end
-class DFAState48
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 111 then return dfastate_69
-               if c.ascii == 79 then return dfastate_70
-               return null
-       end
-end
-class DFAState49
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 100 then return dfastate_51
-               if c.ascii == 68 then return dfastate_52
-               if c.ascii == 115 then return dfastate_53
-               if c.ascii == 83 then return dfastate_54
-               return null
-       end
-end
-class DFAState50
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 100 then return dfastate_51
-               if c.ascii == 68 then return dfastate_52
-               if c.ascii == 115 then return dfastate_53
-               if c.ascii == 83 then return dfastate_54
-               return null
-       end
-end
-class DFAState51
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 100 then return dfastate_61
-               if c.ascii == 68 then return dfastate_62
-               return null
-       end
-end
-class DFAState52
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 100 then return dfastate_61
-               if c.ascii == 68 then return dfastate_62
-               return null
-       end
-end
-class DFAState53
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 99 then return dfastate_55
-               if c.ascii == 67 then return dfastate_56
-               return null
-       end
-end
-class DFAState54
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 99 then return dfastate_55
-               if c.ascii == 67 then return dfastate_56
-               return null
-       end
-end
-class DFAState55
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 105 then return dfastate_57
-               if c.ascii == 73 then return dfastate_58
-               return null
-       end
-end
-class DFAState56
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 105 then return dfastate_57
-               if c.ascii == 73 then return dfastate_58
-               return null
-       end
-end
-class DFAState57
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 105 then return dfastate_59
-               if c.ascii == 73 then return dfastate_60
-               return null
-       end
-end
-class DFAState58
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 105 then return dfastate_59
-               if c.ascii == 73 then return dfastate_60
-               return null
-       end
-end
-class DFAState59
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_ascii
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState60
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_ascii
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState61
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 114 then return dfastate_63
-               if c.ascii == 82 then return dfastate_64
-               return null
-       end
-end
-class DFAState62
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 114 then return dfastate_63
-               if c.ascii == 82 then return dfastate_64
-               return null
-       end
-end
-class DFAState63
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 115 then return dfastate_65
-               if c.ascii == 83 then return dfastate_66
-               return null
-       end
-end
-class DFAState64
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 115 then return dfastate_65
-               if c.ascii == 83 then return dfastate_66
-               return null
-       end
-end
-class DFAState65
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 115 then return dfastate_67
-               if c.ascii == 83 then return dfastate_68
-               return null
-       end
-end
-class DFAState66
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 115 then return dfastate_67
-               if c.ascii == 83 then return dfastate_68
-               return null
-       end
-end
-class DFAState67
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_addrss
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState68
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_addrss
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState69
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 114 then return dfastate_71
-               if c.ascii == 82 then return dfastate_72
-               return null
-       end
-end
-class DFAState70
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 114 then return dfastate_71
-               if c.ascii == 82 then return dfastate_72
-               return null
-       end
-end
-class DFAState71
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 100 then return dfastate_73
-               if c.ascii == 68 then return dfastate_74
-               return null
-       end
-end
-class DFAState72
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 100 then return dfastate_73
-               if c.ascii == 68 then return dfastate_74
-               return null
-       end
-end
-class DFAState73
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_word
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState74
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_word
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState75
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 114 then return dfastate_91
-               if c.ascii == 82 then return dfastate_92
-               return null
-       end
-end
-class DFAState76
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 114 then return dfastate_91
-               if c.ascii == 82 then return dfastate_92
-               return null
-       end
-end
-class DFAState77
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 111 then return dfastate_85
-               if c.ascii == 79 then return dfastate_86
-               return null
-       end
-end
-class DFAState78
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 111 then return dfastate_85
-               if c.ascii == 79 then return dfastate_86
-               return null
-       end
-end
-class DFAState79
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 116 then return dfastate_81
-               if c.ascii == 84 then return dfastate_82
-               return null
-       end
-end
-class DFAState80
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 116 then return dfastate_81
-               if c.ascii == 84 then return dfastate_82
-               return null
-       end
-end
-class DFAState81
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 101 then return dfastate_83
-               if c.ascii == 69 then return dfastate_84
-               return null
-       end
-end
-class DFAState82
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 101 then return dfastate_83
-               if c.ascii == 69 then return dfastate_84
-               return null
-       end
-end
-class DFAState83
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_byte
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState84
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_byte
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState85
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 99 then return dfastate_87
-               if c.ascii == 67 then return dfastate_88
-               return null
-       end
-end
-class DFAState86
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 99 then return dfastate_87
-               if c.ascii == 67 then return dfastate_88
-               return null
-       end
-end
-class DFAState87
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 107 then return dfastate_89
-               if c.ascii == 75 then return dfastate_90
-               return null
-       end
-end
-class DFAState88
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 107 then return dfastate_89
-               if c.ascii == 75 then return dfastate_90
-               return null
-       end
-end
-class DFAState89
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_block
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState90
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_block
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState91
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 110 then return dfastate_93
-               if c.ascii == 78 then return dfastate_94
-               return null
-       end
-end
-class DFAState92
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 110 then return dfastate_93
-               if c.ascii == 78 then return dfastate_94
-               return null
-       end
-end
-class DFAState93
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_burn
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState94
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_burn
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState95
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 117 then return dfastate_105
-               if c.ascii == 85 then return dfastate_106
-               return null
-       end
-end
-class DFAState96
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 117 then return dfastate_105
-               if c.ascii == 85 then return dfastate_106
-               return null
-       end
-end
-class DFAState97
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 100 then return dfastate_99
-               if c.ascii == 68 then return dfastate_100
-               return null
-       end
-end
-class DFAState98
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 100 then return dfastate_99
-               if c.ascii == 68 then return dfastate_100
-               return null
-       end
-end
-class DFAState99
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nend_block
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 32 then return dfastate_101
-               if c.ascii == 33 then return dfastate_101
-               if c.ascii == 34 then return dfastate_101
-               if c.ascii == 35 then return dfastate_101
-               if c.ascii == 36 then return dfastate_101
-               if c.ascii == 37 then return dfastate_101
-               if c.ascii == 38 then return dfastate_101
-               if c.ascii == 39 then return dfastate_101
-               if c.ascii == 40 then return dfastate_101
-               if c.ascii == 41 then return dfastate_101
-               if c.ascii == 42 then return dfastate_101
-               if c.ascii == 43 then return dfastate_101
-               if c.ascii == 44 then return dfastate_101
-               if c.ascii == 45 then return dfastate_101
-               if c.ascii == 46 then return dfastate_101
-               if c.ascii == 47 then return dfastate_101
-               if c.ascii == 48 then return dfastate_101
-               if c.ascii == 49 then return dfastate_101
-               if c.ascii == 50 then return dfastate_101
-               if c.ascii == 51 then return dfastate_101
-               if c.ascii == 52 then return dfastate_101
-               if c.ascii == 53 then return dfastate_101
-               if c.ascii == 54 then return dfastate_101
-               if c.ascii == 55 then return dfastate_101
-               if c.ascii == 56 then return dfastate_101
-               if c.ascii == 57 then return dfastate_101
-               if c.ascii == 58 then return dfastate_101
-               if c.ascii == 59 then return dfastate_101
-               if c.ascii == 60 then return dfastate_101
-               if c.ascii == 61 then return dfastate_101
-               if c.ascii == 62 then return dfastate_101
-               if c.ascii == 63 then return dfastate_101
-               if c.ascii == 64 then return dfastate_101
-               if c.ascii == 65 then return dfastate_101
-               if c.ascii == 66 then return dfastate_101
-               if c.ascii == 67 then return dfastate_101
-               if c.ascii == 68 then return dfastate_101
-               if c.ascii == 69 then return dfastate_101
-               if c.ascii == 70 then return dfastate_101
-               if c.ascii == 71 then return dfastate_101
-               if c.ascii == 72 then return dfastate_101
-               if c.ascii == 73 then return dfastate_101
-               if c.ascii == 74 then return dfastate_101
-               if c.ascii == 75 then return dfastate_101
-               if c.ascii == 76 then return dfastate_101
-               if c.ascii == 77 then return dfastate_101
-               if c.ascii == 78 then return dfastate_101
-               if c.ascii == 79 then return dfastate_101
-               if c.ascii == 80 then return dfastate_101
-               if c.ascii == 81 then return dfastate_101
-               if c.ascii == 82 then return dfastate_101
-               if c.ascii == 83 then return dfastate_101
-               if c.ascii == 84 then return dfastate_101
-               if c.ascii == 85 then return dfastate_101
-               if c.ascii == 86 then return dfastate_101
-               if c.ascii == 87 then return dfastate_101
-               if c.ascii == 88 then return dfastate_101
-               if c.ascii == 89 then return dfastate_101
-               if c.ascii == 90 then return dfastate_101
-               if c.ascii == 91 then return dfastate_101
-               if c.ascii == 92 then return dfastate_101
-               if c.ascii == 93 then return dfastate_101
-               if c.ascii == 94 then return dfastate_101
-               if c.ascii == 95 then return dfastate_101
-               if c.ascii == 96 then return dfastate_101
-               if c.ascii == 97 then return dfastate_101
-               if c.ascii == 98 then return dfastate_101
-               if c.ascii == 99 then return dfastate_101
-               if c.ascii == 100 then return dfastate_101
-               if c.ascii == 101 then return dfastate_101
-               if c.ascii == 102 then return dfastate_101
-               if c.ascii == 103 then return dfastate_101
-               if c.ascii == 104 then return dfastate_101
-               if c.ascii == 105 then return dfastate_101
-               if c.ascii == 106 then return dfastate_101
-               if c.ascii == 107 then return dfastate_101
-               if c.ascii == 108 then return dfastate_101
-               if c.ascii == 109 then return dfastate_101
-               if c.ascii == 110 then return dfastate_101
-               if c.ascii == 111 then return dfastate_101
-               if c.ascii == 112 then return dfastate_101
-               if c.ascii == 113 then return dfastate_101
-               if c.ascii == 114 then return dfastate_101
-               if c.ascii == 115 then return dfastate_101
-               if c.ascii == 116 then return dfastate_101
-               if c.ascii == 117 then return dfastate_101
-               if c.ascii == 118 then return dfastate_101
-               if c.ascii == 119 then return dfastate_101
-               if c.ascii == 120 then return dfastate_101
-               if c.ascii == 121 then return dfastate_101
-               if c.ascii == 122 then return dfastate_101
-               if c.ascii == 123 then return dfastate_101
-               if c.ascii == 124 then return dfastate_101
-               if c.ascii == 125 then return dfastate_101
-               if c.ascii == 126 then return dfastate_101
-               if c.ascii == 13 then return dfastate_102
-               if c.ascii == 10 then return dfastate_103
-               return null
-       end
-end
-class DFAState100
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nend_block
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 32 then return dfastate_101
-               if c.ascii == 33 then return dfastate_101
-               if c.ascii == 34 then return dfastate_101
-               if c.ascii == 35 then return dfastate_101
-               if c.ascii == 36 then return dfastate_101
-               if c.ascii == 37 then return dfastate_101
-               if c.ascii == 38 then return dfastate_101
-               if c.ascii == 39 then return dfastate_101
-               if c.ascii == 40 then return dfastate_101
-               if c.ascii == 41 then return dfastate_101
-               if c.ascii == 42 then return dfastate_101
-               if c.ascii == 43 then return dfastate_101
-               if c.ascii == 44 then return dfastate_101
-               if c.ascii == 45 then return dfastate_101
-               if c.ascii == 46 then return dfastate_101
-               if c.ascii == 47 then return dfastate_101
-               if c.ascii == 48 then return dfastate_101
-               if c.ascii == 49 then return dfastate_101
-               if c.ascii == 50 then return dfastate_101
-               if c.ascii == 51 then return dfastate_101
-               if c.ascii == 52 then return dfastate_101
-               if c.ascii == 53 then return dfastate_101
-               if c.ascii == 54 then return dfastate_101
-               if c.ascii == 55 then return dfastate_101
-               if c.ascii == 56 then return dfastate_101
-               if c.ascii == 57 then return dfastate_101
-               if c.ascii == 58 then return dfastate_101
-               if c.ascii == 59 then return dfastate_101
-               if c.ascii == 60 then return dfastate_101
-               if c.ascii == 61 then return dfastate_101
-               if c.ascii == 62 then return dfastate_101
-               if c.ascii == 63 then return dfastate_101
-               if c.ascii == 64 then return dfastate_101
-               if c.ascii == 65 then return dfastate_101
-               if c.ascii == 66 then return dfastate_101
-               if c.ascii == 67 then return dfastate_101
-               if c.ascii == 68 then return dfastate_101
-               if c.ascii == 69 then return dfastate_101
-               if c.ascii == 70 then return dfastate_101
-               if c.ascii == 71 then return dfastate_101
-               if c.ascii == 72 then return dfastate_101
-               if c.ascii == 73 then return dfastate_101
-               if c.ascii == 74 then return dfastate_101
-               if c.ascii == 75 then return dfastate_101
-               if c.ascii == 76 then return dfastate_101
-               if c.ascii == 77 then return dfastate_101
-               if c.ascii == 78 then return dfastate_101
-               if c.ascii == 79 then return dfastate_101
-               if c.ascii == 80 then return dfastate_101
-               if c.ascii == 81 then return dfastate_101
-               if c.ascii == 82 then return dfastate_101
-               if c.ascii == 83 then return dfastate_101
-               if c.ascii == 84 then return dfastate_101
-               if c.ascii == 85 then return dfastate_101
-               if c.ascii == 86 then return dfastate_101
-               if c.ascii == 87 then return dfastate_101
-               if c.ascii == 88 then return dfastate_101
-               if c.ascii == 89 then return dfastate_101
-               if c.ascii == 90 then return dfastate_101
-               if c.ascii == 91 then return dfastate_101
-               if c.ascii == 92 then return dfastate_101
-               if c.ascii == 93 then return dfastate_101
-               if c.ascii == 94 then return dfastate_101
-               if c.ascii == 95 then return dfastate_101
-               if c.ascii == 96 then return dfastate_101
-               if c.ascii == 97 then return dfastate_101
-               if c.ascii == 98 then return dfastate_101
-               if c.ascii == 99 then return dfastate_101
-               if c.ascii == 100 then return dfastate_101
-               if c.ascii == 101 then return dfastate_101
-               if c.ascii == 102 then return dfastate_101
-               if c.ascii == 103 then return dfastate_101
-               if c.ascii == 104 then return dfastate_101
-               if c.ascii == 105 then return dfastate_101
-               if c.ascii == 106 then return dfastate_101
-               if c.ascii == 107 then return dfastate_101
-               if c.ascii == 108 then return dfastate_101
-               if c.ascii == 109 then return dfastate_101
-               if c.ascii == 110 then return dfastate_101
-               if c.ascii == 111 then return dfastate_101
-               if c.ascii == 112 then return dfastate_101
-               if c.ascii == 113 then return dfastate_101
-               if c.ascii == 114 then return dfastate_101
-               if c.ascii == 115 then return dfastate_101
-               if c.ascii == 116 then return dfastate_101
-               if c.ascii == 117 then return dfastate_101
-               if c.ascii == 118 then return dfastate_101
-               if c.ascii == 119 then return dfastate_101
-               if c.ascii == 120 then return dfastate_101
-               if c.ascii == 121 then return dfastate_101
-               if c.ascii == 122 then return dfastate_101
-               if c.ascii == 123 then return dfastate_101
-               if c.ascii == 124 then return dfastate_101
-               if c.ascii == 125 then return dfastate_101
-               if c.ascii == 126 then return dfastate_101
-               if c.ascii == 13 then return dfastate_102
-               if c.ascii == 10 then return dfastate_103
-               return null
-       end
-end
-class DFAState101
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nend_block
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 32 then return dfastate_101
-               if c.ascii == 33 then return dfastate_101
-               if c.ascii == 34 then return dfastate_101
-               if c.ascii == 35 then return dfastate_101
-               if c.ascii == 36 then return dfastate_101
-               if c.ascii == 37 then return dfastate_101
-               if c.ascii == 38 then return dfastate_101
-               if c.ascii == 39 then return dfastate_101
-               if c.ascii == 40 then return dfastate_101
-               if c.ascii == 41 then return dfastate_101
-               if c.ascii == 42 then return dfastate_101
-               if c.ascii == 43 then return dfastate_101
-               if c.ascii == 44 then return dfastate_101
-               if c.ascii == 45 then return dfastate_101
-               if c.ascii == 46 then return dfastate_101
-               if c.ascii == 47 then return dfastate_101
-               if c.ascii == 48 then return dfastate_101
-               if c.ascii == 49 then return dfastate_101
-               if c.ascii == 50 then return dfastate_101
-               if c.ascii == 51 then return dfastate_101
-               if c.ascii == 52 then return dfastate_101
-               if c.ascii == 53 then return dfastate_101
-               if c.ascii == 54 then return dfastate_101
-               if c.ascii == 55 then return dfastate_101
-               if c.ascii == 56 then return dfastate_101
-               if c.ascii == 57 then return dfastate_101
-               if c.ascii == 58 then return dfastate_101
-               if c.ascii == 59 then return dfastate_101
-               if c.ascii == 60 then return dfastate_101
-               if c.ascii == 61 then return dfastate_101
-               if c.ascii == 62 then return dfastate_101
-               if c.ascii == 63 then return dfastate_101
-               if c.ascii == 64 then return dfastate_101
-               if c.ascii == 65 then return dfastate_101
-               if c.ascii == 66 then return dfastate_101
-               if c.ascii == 67 then return dfastate_101
-               if c.ascii == 68 then return dfastate_101
-               if c.ascii == 69 then return dfastate_101
-               if c.ascii == 70 then return dfastate_101
-               if c.ascii == 71 then return dfastate_101
-               if c.ascii == 72 then return dfastate_101
-               if c.ascii == 73 then return dfastate_101
-               if c.ascii == 74 then return dfastate_101
-               if c.ascii == 75 then return dfastate_101
-               if c.ascii == 76 then return dfastate_101
-               if c.ascii == 77 then return dfastate_101
-               if c.ascii == 78 then return dfastate_101
-               if c.ascii == 79 then return dfastate_101
-               if c.ascii == 80 then return dfastate_101
-               if c.ascii == 81 then return dfastate_101
-               if c.ascii == 82 then return dfastate_101
-               if c.ascii == 83 then return dfastate_101
-               if c.ascii == 84 then return dfastate_101
-               if c.ascii == 85 then return dfastate_101
-               if c.ascii == 86 then return dfastate_101
-               if c.ascii == 87 then return dfastate_101
-               if c.ascii == 88 then return dfastate_101
-               if c.ascii == 89 then return dfastate_101
-               if c.ascii == 90 then return dfastate_101
-               if c.ascii == 91 then return dfastate_101
-               if c.ascii == 92 then return dfastate_101
-               if c.ascii == 93 then return dfastate_101
-               if c.ascii == 94 then return dfastate_101
-               if c.ascii == 95 then return dfastate_101
-               if c.ascii == 96 then return dfastate_101
-               if c.ascii == 97 then return dfastate_101
-               if c.ascii == 98 then return dfastate_101
-               if c.ascii == 99 then return dfastate_101
-               if c.ascii == 100 then return dfastate_101
-               if c.ascii == 101 then return dfastate_101
-               if c.ascii == 102 then return dfastate_101
-               if c.ascii == 103 then return dfastate_101
-               if c.ascii == 104 then return dfastate_101
-               if c.ascii == 105 then return dfastate_101
-               if c.ascii == 106 then return dfastate_101
-               if c.ascii == 107 then return dfastate_101
-               if c.ascii == 108 then return dfastate_101
-               if c.ascii == 109 then return dfastate_101
-               if c.ascii == 110 then return dfastate_101
-               if c.ascii == 111 then return dfastate_101
-               if c.ascii == 112 then return dfastate_101
-               if c.ascii == 113 then return dfastate_101
-               if c.ascii == 114 then return dfastate_101
-               if c.ascii == 115 then return dfastate_101
-               if c.ascii == 116 then return dfastate_101
-               if c.ascii == 117 then return dfastate_101
-               if c.ascii == 118 then return dfastate_101
-               if c.ascii == 119 then return dfastate_101
-               if c.ascii == 120 then return dfastate_101
-               if c.ascii == 121 then return dfastate_101
-               if c.ascii == 122 then return dfastate_101
-               if c.ascii == 123 then return dfastate_101
-               if c.ascii == 124 then return dfastate_101
-               if c.ascii == 125 then return dfastate_101
-               if c.ascii == 126 then return dfastate_101
-               if c.ascii == 13 then return dfastate_102
-               if c.ascii == 10 then return dfastate_103
-               return null
-       end
-end
-class DFAState102
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nend_block
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 32 then return dfastate_101
-               if c.ascii == 33 then return dfastate_101
-               if c.ascii == 34 then return dfastate_101
-               if c.ascii == 35 then return dfastate_101
-               if c.ascii == 36 then return dfastate_101
-               if c.ascii == 37 then return dfastate_101
-               if c.ascii == 38 then return dfastate_101
-               if c.ascii == 39 then return dfastate_101
-               if c.ascii == 40 then return dfastate_101
-               if c.ascii == 41 then return dfastate_101
-               if c.ascii == 42 then return dfastate_101
-               if c.ascii == 43 then return dfastate_101
-               if c.ascii == 44 then return dfastate_101
-               if c.ascii == 45 then return dfastate_101
-               if c.ascii == 46 then return dfastate_101
-               if c.ascii == 47 then return dfastate_101
-               if c.ascii == 48 then return dfastate_101
-               if c.ascii == 49 then return dfastate_101
-               if c.ascii == 50 then return dfastate_101
-               if c.ascii == 51 then return dfastate_101
-               if c.ascii == 52 then return dfastate_101
-               if c.ascii == 53 then return dfastate_101
-               if c.ascii == 54 then return dfastate_101
-               if c.ascii == 55 then return dfastate_101
-               if c.ascii == 56 then return dfastate_101
-               if c.ascii == 57 then return dfastate_101
-               if c.ascii == 58 then return dfastate_101
-               if c.ascii == 59 then return dfastate_101
-               if c.ascii == 60 then return dfastate_101
-               if c.ascii == 61 then return dfastate_101
-               if c.ascii == 62 then return dfastate_101
-               if c.ascii == 63 then return dfastate_101
-               if c.ascii == 64 then return dfastate_101
-               if c.ascii == 65 then return dfastate_101
-               if c.ascii == 66 then return dfastate_101
-               if c.ascii == 67 then return dfastate_101
-               if c.ascii == 68 then return dfastate_101
-               if c.ascii == 69 then return dfastate_101
-               if c.ascii == 70 then return dfastate_101
-               if c.ascii == 71 then return dfastate_101
-               if c.ascii == 72 then return dfastate_101
-               if c.ascii == 73 then return dfastate_101
-               if c.ascii == 74 then return dfastate_101
-               if c.ascii == 75 then return dfastate_101
-               if c.ascii == 76 then return dfastate_101
-               if c.ascii == 77 then return dfastate_101
-               if c.ascii == 78 then return dfastate_101
-               if c.ascii == 79 then return dfastate_101
-               if c.ascii == 80 then return dfastate_101
-               if c.ascii == 81 then return dfastate_101
-               if c.ascii == 82 then return dfastate_101
-               if c.ascii == 83 then return dfastate_101
-               if c.ascii == 84 then return dfastate_101
-               if c.ascii == 85 then return dfastate_101
-               if c.ascii == 86 then return dfastate_101
-               if c.ascii == 87 then return dfastate_101
-               if c.ascii == 88 then return dfastate_101
-               if c.ascii == 89 then return dfastate_101
-               if c.ascii == 90 then return dfastate_101
-               if c.ascii == 91 then return dfastate_101
-               if c.ascii == 92 then return dfastate_101
-               if c.ascii == 93 then return dfastate_101
-               if c.ascii == 94 then return dfastate_101
-               if c.ascii == 95 then return dfastate_101
-               if c.ascii == 96 then return dfastate_101
-               if c.ascii == 97 then return dfastate_101
-               if c.ascii == 98 then return dfastate_101
-               if c.ascii == 99 then return dfastate_101
-               if c.ascii == 100 then return dfastate_101
-               if c.ascii == 101 then return dfastate_101
-               if c.ascii == 102 then return dfastate_101
-               if c.ascii == 103 then return dfastate_101
-               if c.ascii == 104 then return dfastate_101
-               if c.ascii == 105 then return dfastate_101
-               if c.ascii == 106 then return dfastate_101
-               if c.ascii == 107 then return dfastate_101
-               if c.ascii == 108 then return dfastate_101
-               if c.ascii == 109 then return dfastate_101
-               if c.ascii == 110 then return dfastate_101
-               if c.ascii == 111 then return dfastate_101
-               if c.ascii == 112 then return dfastate_101
-               if c.ascii == 113 then return dfastate_101
-               if c.ascii == 114 then return dfastate_101
-               if c.ascii == 115 then return dfastate_101
-               if c.ascii == 116 then return dfastate_101
-               if c.ascii == 117 then return dfastate_101
-               if c.ascii == 118 then return dfastate_101
-               if c.ascii == 119 then return dfastate_101
-               if c.ascii == 120 then return dfastate_101
-               if c.ascii == 121 then return dfastate_101
-               if c.ascii == 122 then return dfastate_101
-               if c.ascii == 123 then return dfastate_101
-               if c.ascii == 124 then return dfastate_101
-               if c.ascii == 125 then return dfastate_101
-               if c.ascii == 126 then return dfastate_101
-               if c.ascii == 13 then return dfastate_102
-               if c.ascii == 10 then return dfastate_103
-               return null
-       end
-end
-class DFAState103
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nend_block
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 13 then return dfastate_104
-               if c.ascii == 32 then return dfastate_101
-               if c.ascii == 33 then return dfastate_101
-               if c.ascii == 34 then return dfastate_101
-               if c.ascii == 35 then return dfastate_101
-               if c.ascii == 36 then return dfastate_101
-               if c.ascii == 37 then return dfastate_101
-               if c.ascii == 38 then return dfastate_101
-               if c.ascii == 39 then return dfastate_101
-               if c.ascii == 40 then return dfastate_101
-               if c.ascii == 41 then return dfastate_101
-               if c.ascii == 42 then return dfastate_101
-               if c.ascii == 43 then return dfastate_101
-               if c.ascii == 44 then return dfastate_101
-               if c.ascii == 45 then return dfastate_101
-               if c.ascii == 46 then return dfastate_101
-               if c.ascii == 47 then return dfastate_101
-               if c.ascii == 48 then return dfastate_101
-               if c.ascii == 49 then return dfastate_101
-               if c.ascii == 50 then return dfastate_101
-               if c.ascii == 51 then return dfastate_101
-               if c.ascii == 52 then return dfastate_101
-               if c.ascii == 53 then return dfastate_101
-               if c.ascii == 54 then return dfastate_101
-               if c.ascii == 55 then return dfastate_101
-               if c.ascii == 56 then return dfastate_101
-               if c.ascii == 57 then return dfastate_101
-               if c.ascii == 58 then return dfastate_101
-               if c.ascii == 59 then return dfastate_101
-               if c.ascii == 60 then return dfastate_101
-               if c.ascii == 61 then return dfastate_101
-               if c.ascii == 62 then return dfastate_101
-               if c.ascii == 63 then return dfastate_101
-               if c.ascii == 64 then return dfastate_101
-               if c.ascii == 65 then return dfastate_101
-               if c.ascii == 66 then return dfastate_101
-               if c.ascii == 67 then return dfastate_101
-               if c.ascii == 68 then return dfastate_101
-               if c.ascii == 69 then return dfastate_101
-               if c.ascii == 70 then return dfastate_101
-               if c.ascii == 71 then return dfastate_101
-               if c.ascii == 72 then return dfastate_101
-               if c.ascii == 73 then return dfastate_101
-               if c.ascii == 74 then return dfastate_101
-               if c.ascii == 75 then return dfastate_101
-               if c.ascii == 76 then return dfastate_101
-               if c.ascii == 77 then return dfastate_101
-               if c.ascii == 78 then return dfastate_101
-               if c.ascii == 79 then return dfastate_101
-               if c.ascii == 80 then return dfastate_101
-               if c.ascii == 81 then return dfastate_101
-               if c.ascii == 82 then return dfastate_101
-               if c.ascii == 83 then return dfastate_101
-               if c.ascii == 84 then return dfastate_101
-               if c.ascii == 85 then return dfastate_101
-               if c.ascii == 86 then return dfastate_101
-               if c.ascii == 87 then return dfastate_101
-               if c.ascii == 88 then return dfastate_101
-               if c.ascii == 89 then return dfastate_101
-               if c.ascii == 90 then return dfastate_101
-               if c.ascii == 91 then return dfastate_101
-               if c.ascii == 92 then return dfastate_101
-               if c.ascii == 93 then return dfastate_101
-               if c.ascii == 94 then return dfastate_101
-               if c.ascii == 95 then return dfastate_101
-               if c.ascii == 96 then return dfastate_101
-               if c.ascii == 97 then return dfastate_101
-               if c.ascii == 98 then return dfastate_101
-               if c.ascii == 99 then return dfastate_101
-               if c.ascii == 100 then return dfastate_101
-               if c.ascii == 101 then return dfastate_101
-               if c.ascii == 102 then return dfastate_101
-               if c.ascii == 103 then return dfastate_101
-               if c.ascii == 104 then return dfastate_101
-               if c.ascii == 105 then return dfastate_101
-               if c.ascii == 106 then return dfastate_101
-               if c.ascii == 107 then return dfastate_101
-               if c.ascii == 108 then return dfastate_101
-               if c.ascii == 109 then return dfastate_101
-               if c.ascii == 110 then return dfastate_101
-               if c.ascii == 111 then return dfastate_101
-               if c.ascii == 112 then return dfastate_101
-               if c.ascii == 113 then return dfastate_101
-               if c.ascii == 114 then return dfastate_101
-               if c.ascii == 115 then return dfastate_101
-               if c.ascii == 116 then return dfastate_101
-               if c.ascii == 117 then return dfastate_101
-               if c.ascii == 118 then return dfastate_101
-               if c.ascii == 119 then return dfastate_101
-               if c.ascii == 120 then return dfastate_101
-               if c.ascii == 121 then return dfastate_101
-               if c.ascii == 122 then return dfastate_101
-               if c.ascii == 123 then return dfastate_101
-               if c.ascii == 124 then return dfastate_101
-               if c.ascii == 125 then return dfastate_101
-               if c.ascii == 126 then return dfastate_101
-               if c.ascii == 10 then return dfastate_103
-               return null
-       end
-end
-class DFAState104
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Nend_block
-               t.position = position
-               t.text = text
-               return t
-       end
-       redef fun trans(c) do
-               if c.ascii == 32 then return dfastate_101
-               if c.ascii == 33 then return dfastate_101
-               if c.ascii == 34 then return dfastate_101
-               if c.ascii == 35 then return dfastate_101
-               if c.ascii == 36 then return dfastate_101
-               if c.ascii == 37 then return dfastate_101
-               if c.ascii == 38 then return dfastate_101
-               if c.ascii == 39 then return dfastate_101
-               if c.ascii == 40 then return dfastate_101
-               if c.ascii == 41 then return dfastate_101
-               if c.ascii == 42 then return dfastate_101
-               if c.ascii == 43 then return dfastate_101
-               if c.ascii == 44 then return dfastate_101
-               if c.ascii == 45 then return dfastate_101
-               if c.ascii == 46 then return dfastate_101
-               if c.ascii == 47 then return dfastate_101
-               if c.ascii == 48 then return dfastate_101
-               if c.ascii == 49 then return dfastate_101
-               if c.ascii == 50 then return dfastate_101
-               if c.ascii == 51 then return dfastate_101
-               if c.ascii == 52 then return dfastate_101
-               if c.ascii == 53 then return dfastate_101
-               if c.ascii == 54 then return dfastate_101
-               if c.ascii == 55 then return dfastate_101
-               if c.ascii == 56 then return dfastate_101
-               if c.ascii == 57 then return dfastate_101
-               if c.ascii == 58 then return dfastate_101
-               if c.ascii == 59 then return dfastate_101
-               if c.ascii == 60 then return dfastate_101
-               if c.ascii == 61 then return dfastate_101
-               if c.ascii == 62 then return dfastate_101
-               if c.ascii == 63 then return dfastate_101
-               if c.ascii == 64 then return dfastate_101
-               if c.ascii == 65 then return dfastate_101
-               if c.ascii == 66 then return dfastate_101
-               if c.ascii == 67 then return dfastate_101
-               if c.ascii == 68 then return dfastate_101
-               if c.ascii == 69 then return dfastate_101
-               if c.ascii == 70 then return dfastate_101
-               if c.ascii == 71 then return dfastate_101
-               if c.ascii == 72 then return dfastate_101
-               if c.ascii == 73 then return dfastate_101
-               if c.ascii == 74 then return dfastate_101
-               if c.ascii == 75 then return dfastate_101
-               if c.ascii == 76 then return dfastate_101
-               if c.ascii == 77 then return dfastate_101
-               if c.ascii == 78 then return dfastate_101
-               if c.ascii == 79 then return dfastate_101
-               if c.ascii == 80 then return dfastate_101
-               if c.ascii == 81 then return dfastate_101
-               if c.ascii == 82 then return dfastate_101
-               if c.ascii == 83 then return dfastate_101
-               if c.ascii == 84 then return dfastate_101
-               if c.ascii == 85 then return dfastate_101
-               if c.ascii == 86 then return dfastate_101
-               if c.ascii == 87 then return dfastate_101
-               if c.ascii == 88 then return dfastate_101
-               if c.ascii == 89 then return dfastate_101
-               if c.ascii == 90 then return dfastate_101
-               if c.ascii == 91 then return dfastate_101
-               if c.ascii == 92 then return dfastate_101
-               if c.ascii == 93 then return dfastate_101
-               if c.ascii == 94 then return dfastate_101
-               if c.ascii == 95 then return dfastate_101
-               if c.ascii == 96 then return dfastate_101
-               if c.ascii == 97 then return dfastate_101
-               if c.ascii == 98 then return dfastate_101
-               if c.ascii == 99 then return dfastate_101
-               if c.ascii == 100 then return dfastate_101
-               if c.ascii == 101 then return dfastate_101
-               if c.ascii == 102 then return dfastate_101
-               if c.ascii == 103 then return dfastate_101
-               if c.ascii == 104 then return dfastate_101
-               if c.ascii == 105 then return dfastate_101
-               if c.ascii == 106 then return dfastate_101
-               if c.ascii == 107 then return dfastate_101
-               if c.ascii == 108 then return dfastate_101
-               if c.ascii == 109 then return dfastate_101
-               if c.ascii == 110 then return dfastate_101
-               if c.ascii == 111 then return dfastate_101
-               if c.ascii == 112 then return dfastate_101
-               if c.ascii == 113 then return dfastate_101
-               if c.ascii == 114 then return dfastate_101
-               if c.ascii == 115 then return dfastate_101
-               if c.ascii == 116 then return dfastate_101
-               if c.ascii == 117 then return dfastate_101
-               if c.ascii == 118 then return dfastate_101
-               if c.ascii == 119 then return dfastate_101
-               if c.ascii == 120 then return dfastate_101
-               if c.ascii == 121 then return dfastate_101
-               if c.ascii == 122 then return dfastate_101
-               if c.ascii == 123 then return dfastate_101
-               if c.ascii == 124 then return dfastate_101
-               if c.ascii == 125 then return dfastate_101
-               if c.ascii == 126 then return dfastate_101
-               if c.ascii == 13 then return dfastate_102
-               if c.ascii == 10 then return dfastate_103
-               return null
-       end
-end
-class DFAState105
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 97 then return dfastate_107
-               if c.ascii == 65 then return dfastate_108
-               return null
-       end
-end
-class DFAState106
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 97 then return dfastate_107
-               if c.ascii == 65 then return dfastate_108
-               return null
-       end
-end
-class DFAState107
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 116 then return dfastate_109
-               if c.ascii == 84 then return dfastate_110
-               return null
-       end
-end
-class DFAState108
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 116 then return dfastate_109
-               if c.ascii == 84 then return dfastate_110
-               return null
-       end
-end
-class DFAState109
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 101 then return dfastate_111
-               if c.ascii == 69 then return dfastate_112
-               return null
-       end
-end
-class DFAState110
-       super DFAState
-       redef fun trans(c) do
-               if c.ascii == 101 then return dfastate_111
-               if c.ascii == 69 then return dfastate_112
-               return null
-       end
-end
-class DFAState111
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_equate
-               t.position = position
-               t.text = text
-               return t
-       end
-end
-class DFAState112
-       super DFAState
-       redef fun is_accept do return true
-       redef fun make_token(position, text) do
-               var t = new Ntk_equate
-               t.position = position
-               t.text = text
-               return t
-       end
-end
diff --git a/contrib/pep8analysis/src/parser/pep8_parser.nit b/contrib/pep8analysis/src/parser/pep8_parser.nit
deleted file mode 100644 (file)
index 1b91658..0000000
+++ /dev/null
@@ -1,1754 +0,0 @@
-# Parser generated by nitcc
-import nitcc_runtime
-class MyParser
-       super Parser
-       redef fun start_state do return state_Start
-end
-redef class Object
-       private fun state_Start: LRStateStart do return once new LRStateStart
-       private fun state_listing: LRStatelisting do return once new LRStatelisting
-       private fun state_line_43d: LRStateline_43d do return once new LRStateline_43d
-       private fun state_line: LRStateline do return once new LRStateline
-       private fun state_label_decl: LRStatelabel_decl do return once new LRStatelabel_decl
-       private fun state_id: LRStateid do return once new LRStateid
-       private fun state_comment: LRStatecomment do return once new LRStatecomment
-       private fun state_eol: LRStateeol do return once new LRStateeol
-       private fun state_instruction: LRStateinstruction do return once new LRStateinstruction
-       private fun state_directive: LRStatedirective do return once new LRStatedirective
-       private fun state_tk_byte: LRStatetk_byte do return once new LRStatetk_byte
-       private fun state_tk_word: LRStatetk_word do return once new LRStatetk_word
-       private fun state_tk_block: LRStatetk_block do return once new LRStatetk_block
-       private fun state_tk_ascii: LRStatetk_ascii do return once new LRStatetk_ascii
-       private fun state_tk_addrss: LRStatetk_addrss do return once new LRStatetk_addrss
-       private fun state_tk_equate: LRStatetk_equate do return once new LRStatetk_equate
-       private fun state_tk_burn: LRStatetk_burn do return once new LRStatetk_burn
-       private fun state_end_block: LRStateend_block do return once new LRStateend_block
-       private fun state_listing_32dEof: LRStatelisting_32dEof do return once new LRStatelisting_32dEof
-       private fun state_line_43d_32dlabel_decl: LRStateline_43d_32dlabel_decl do return once new LRStateline_43d_32dlabel_decl
-       private fun state_line_43d_32dline: LRStateline_43d_32dline do return once new LRStateline_43d_32dline
-       private fun state_line_43d_32dend_block: LRStateline_43d_32dend_block do return once new LRStateline_43d_32dend_block
-       private fun state_label_decl_32dcomment: LRStatelabel_decl_32dcomment do return once new LRStatelabel_decl_32dcomment
-       private fun state_label_decl_32deol: LRStatelabel_decl_32deol do return once new LRStatelabel_decl_32deol
-       private fun state_label_decl_32dinstruction: LRStatelabel_decl_32dinstruction do return once new LRStatelabel_decl_32dinstruction
-       private fun state_label_decl_32ddirective: LRStatelabel_decl_32ddirective do return once new LRStatelabel_decl_32ddirective
-       private fun state_label_decl_32dend_block: LRStatelabel_decl_32dend_block do return once new LRStatelabel_decl_32dend_block
-       private fun state_label_decl_32did: LRStatelabel_decl_32did do return once new LRStatelabel_decl_32did
-       private fun state_id_32dcolon: LRStateid_32dcolon do return once new LRStateid_32dcolon
-       private fun state_id_32doperand: LRStateid_32doperand do return once new LRStateid_32doperand
-       private fun state_id_32dvalue: LRStateid_32dvalue do return once new LRStateid_32dvalue
-       private fun state_id_32did: LRStateid_32did do return once new LRStateid_32did
-       private fun state_id_32dchar: LRStateid_32dchar do return once new LRStateid_32dchar
-       private fun state_id_32dstring: LRStateid_32dstring do return once new LRStateid_32dstring
-       private fun state_comment_32deol: LRStatecomment_32deol do return once new LRStatecomment_32deol
-       private fun state_instruction_32dcomment: LRStateinstruction_32dcomment do return once new LRStateinstruction_32dcomment
-       private fun state_instruction_32deol: LRStateinstruction_32deol do return once new LRStateinstruction_32deol
-       private fun state_directive_32dcomment: LRStatedirective_32dcomment do return once new LRStatedirective_32dcomment
-       private fun state_directive_32deol: LRStatedirective_32deol do return once new LRStatedirective_32deol
-       private fun state_tk_byte_32dvalue: LRStatetk_byte_32dvalue do return once new LRStatetk_byte_32dvalue
-       private fun state_tk_word_32dvalue: LRStatetk_word_32dvalue do return once new LRStatetk_word_32dvalue
-       private fun state_tk_block_32dvalue: LRStatetk_block_32dvalue do return once new LRStatetk_block_32dvalue
-       private fun state_tk_ascii_32dvalue: LRStatetk_ascii_32dvalue do return once new LRStatetk_ascii_32dvalue
-       private fun state_tk_addrss_32dvalue: LRStatetk_addrss_32dvalue do return once new LRStatetk_addrss_32dvalue
-       private fun state_tk_equate_32dvalue: LRStatetk_equate_32dvalue do return once new LRStatetk_equate_32dvalue
-       private fun state_tk_burn_32dvalue: LRStatetk_burn_32dvalue do return once new LRStatetk_burn_32dvalue
-       private fun state_line_43d_32dlabel_decl_32dend_block: LRStateline_43d_32dlabel_decl_32dend_block do return once new LRStateline_43d_32dlabel_decl_32dend_block
-       private fun state_label_decl_32dcomment_32deol: LRStatelabel_decl_32dcomment_32deol do return once new LRStatelabel_decl_32dcomment_32deol
-       private fun state_label_decl_32dinstruction_32dcomment: LRStatelabel_decl_32dinstruction_32dcomment do return once new LRStatelabel_decl_32dinstruction_32dcomment
-       private fun state_label_decl_32dinstruction_32deol: LRStatelabel_decl_32dinstruction_32deol do return once new LRStatelabel_decl_32dinstruction_32deol
-       private fun state_label_decl_32ddirective_32dcomment: LRStatelabel_decl_32ddirective_32dcomment do return once new LRStatelabel_decl_32ddirective_32dcomment
-       private fun state_label_decl_32ddirective_32deol: LRStatelabel_decl_32ddirective_32deol do return once new LRStatelabel_decl_32ddirective_32deol
-       private fun state_id_32dvalue_32dcomma: LRStateid_32dvalue_32dcomma do return once new LRStateid_32dvalue_32dcomma
-       private fun state_instruction_32dcomment_32deol: LRStateinstruction_32dcomment_32deol do return once new LRStateinstruction_32dcomment_32deol
-       private fun state_directive_32dcomment_32deol: LRStatedirective_32dcomment_32deol do return once new LRStatedirective_32dcomment_32deol
-       private fun state_label_decl_32dinstruction_32dcomment_32deol: LRStatelabel_decl_32dinstruction_32dcomment_32deol do return once new LRStatelabel_decl_32dinstruction_32dcomment_32deol
-       private fun state_label_decl_32ddirective_32dcomment_32deol: LRStatelabel_decl_32ddirective_32dcomment_32deol do return once new LRStatelabel_decl_32ddirective_32dcomment_32deol
-       private fun state_id_32dvalue_32dcomma_32did: LRStateid_32dvalue_32dcomma_32did do return once new LRStateid_32dvalue_32dcomma_32did
-       private fun goto_Nlisting: Goto_Nlisting do return once new Goto_Nlisting
-       private fun goto_Nline: Goto_Nline do return once new Goto_Nline
-       private fun goto_Nlabel_decl: Goto_Nlabel_decl do return once new Goto_Nlabel_decl
-       private fun goto_Ninstruction: Goto_Ninstruction do return once new Goto_Ninstruction
-       private fun goto_Noperand: Goto_Noperand do return once new Goto_Noperand
-       private fun goto_Nvalue: Goto_Nvalue do return once new Goto_Nvalue
-       private fun goto_Ndirective: Goto_Ndirective do return once new Goto_Ndirective
-       private fun goto_Nline_43d: Goto_Nline_43d do return once new Goto_Nline_43d
-       private fun goto_N_start: Goto_N_start do return once new Goto_N_start
-end
-redef class NToken
-       # guarded action for state Start
-       # 11 shift(s) and 0 reduce(s)
-       private fun action_sStart(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state listing
-       # 1 shift(s) and 0 reduce(s)
-       private fun action_slisting(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state line+
-       # 11 shift(s) and 0 reduce(s)
-       private fun action_sline_43d(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state label_decl
-       # 11 shift(s) and 0 reduce(s)
-       private fun action_slabel_decl(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state id
-       # 4 shift(s) and 1 reduce(s)
-       private fun action_sid(parser: Parser) do
-               # REDUCE instruction::instruction_unary=id
-               var n0 = parser.pop.as(Nid)
-               var p1 = new Ninstruction_unary(n0)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Ninstruction)
-       end
-       # guarded action for state comment
-       # 1 shift(s) and 0 reduce(s)
-       private fun action_scomment(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state instruction
-       # 2 shift(s) and 0 reduce(s)
-       private fun action_sinstruction(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state directive
-       # 2 shift(s) and 0 reduce(s)
-       private fun action_sdirective(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state tk_byte
-       # 3 shift(s) and 0 reduce(s)
-       private fun action_stk_byte(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state tk_word
-       # 3 shift(s) and 0 reduce(s)
-       private fun action_stk_word(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state tk_block
-       # 3 shift(s) and 0 reduce(s)
-       private fun action_stk_block(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state tk_ascii
-       # 3 shift(s) and 0 reduce(s)
-       private fun action_stk_ascii(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state tk_addrss
-       # 3 shift(s) and 0 reduce(s)
-       private fun action_stk_addrss(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state tk_equate
-       # 3 shift(s) and 0 reduce(s)
-       private fun action_stk_equate(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state tk_burn
-       # 3 shift(s) and 0 reduce(s)
-       private fun action_stk_burn(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state line+ label_decl
-       # 11 shift(s) and 0 reduce(s)
-       private fun action_sline_43d_32dlabel_decl(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state label_decl comment
-       # 1 shift(s) and 0 reduce(s)
-       private fun action_slabel_decl_32dcomment(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state label_decl instruction
-       # 2 shift(s) and 0 reduce(s)
-       private fun action_slabel_decl_32dinstruction(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state label_decl directive
-       # 2 shift(s) and 0 reduce(s)
-       private fun action_slabel_decl_32ddirective(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state label_decl id
-       # 3 shift(s) and 1 reduce(s)
-       private fun action_slabel_decl_32did(parser: Parser) do
-               # REDUCE instruction::instruction_unary=id
-               var n0 = parser.pop.as(Nid)
-               var p1 = new Ninstruction_unary(n0)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Ninstruction)
-       end
-       # guarded action for state id value
-       # 1 shift(s) and 1 reduce(s)
-       private fun action_sid_32dvalue(parser: Parser) do
-               # REDUCE operand::operand_immediate=value
-               var n0 = parser.pop.as(Nvalue)
-               var p1 = new Noperand_immediate(n0)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Noperand)
-       end
-       # guarded action for state instruction comment
-       # 1 shift(s) and 0 reduce(s)
-       private fun action_sinstruction_32dcomment(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state directive comment
-       # 1 shift(s) and 0 reduce(s)
-       private fun action_sdirective_32dcomment(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state label_decl instruction comment
-       # 1 shift(s) and 0 reduce(s)
-       private fun action_slabel_decl_32dinstruction_32dcomment(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state label_decl directive comment
-       # 1 shift(s) and 0 reduce(s)
-       private fun action_slabel_decl_32ddirective_32dcomment(parser: Parser) do
-               parser.parse_error
-       end
-       # guarded action for state id value comma
-       # 1 shift(s) and 0 reduce(s)
-       private fun action_sid_32dvalue_32dcomma(parser: Parser) do
-               parser.parse_error
-       end
-end
-class NIgnored
-       super NToken
-       redef fun node_name do return "Ignored"
-end
-class Nend_block
-       super NToken
-       redef fun action_sStart(parser) do
-               parser.shift(state_end_block)
-       end
-       redef fun action_sline_43d(parser) do
-               parser.shift(state_line_43d_32dend_block)
-       end
-       redef fun action_slabel_decl(parser) do
-               parser.shift(state_label_decl_32dend_block)
-       end
-       redef fun action_sline_43d_32dlabel_decl(parser) do
-               parser.shift(state_line_43d_32dlabel_decl_32dend_block)
-       end
-       redef fun node_name do return "end_block"
-end
-class Ncomment
-       super NToken
-       redef fun action_sStart(parser) do
-               parser.shift(state_comment)
-       end
-       redef fun action_sline_43d(parser) do
-               parser.shift(state_comment)
-       end
-       redef fun action_slabel_decl(parser) do
-               parser.shift(state_label_decl_32dcomment)
-       end
-       redef fun action_sinstruction(parser) do
-               parser.shift(state_instruction_32dcomment)
-       end
-       redef fun action_sdirective(parser) do
-               parser.shift(state_directive_32dcomment)
-       end
-       redef fun action_sline_43d_32dlabel_decl(parser) do
-               parser.shift(state_label_decl_32dcomment)
-       end
-       redef fun action_slabel_decl_32dinstruction(parser) do
-               parser.shift(state_label_decl_32dinstruction_32dcomment)
-       end
-       redef fun action_slabel_decl_32ddirective(parser) do
-               parser.shift(state_label_decl_32ddirective_32dcomment)
-       end
-       redef fun node_name do return "comment"
-end
-class Neol
-       super NToken
-       redef fun action_sStart(parser) do
-               parser.shift(state_eol)
-       end
-       redef fun action_sline_43d(parser) do
-               parser.shift(state_eol)
-       end
-       redef fun action_slabel_decl(parser) do
-               parser.shift(state_label_decl_32deol)
-       end
-       redef fun action_scomment(parser) do
-               parser.shift(state_comment_32deol)
-       end
-       redef fun action_sinstruction(parser) do
-               parser.shift(state_instruction_32deol)
-       end
-       redef fun action_sdirective(parser) do
-               parser.shift(state_directive_32deol)
-       end
-       redef fun action_sline_43d_32dlabel_decl(parser) do
-               parser.shift(state_label_decl_32deol)
-       end
-       redef fun action_slabel_decl_32dcomment(parser) do
-               parser.shift(state_label_decl_32dcomment_32deol)
-       end
-       redef fun action_slabel_decl_32dinstruction(parser) do
-               parser.shift(state_label_decl_32dinstruction_32deol)
-       end
-       redef fun action_slabel_decl_32ddirective(parser) do
-               parser.shift(state_label_decl_32ddirective_32deol)
-       end
-       redef fun action_sinstruction_32dcomment(parser) do
-               parser.shift(state_instruction_32dcomment_32deol)
-       end
-       redef fun action_sdirective_32dcomment(parser) do
-               parser.shift(state_directive_32dcomment_32deol)
-       end
-       redef fun action_slabel_decl_32dinstruction_32dcomment(parser) do
-               parser.shift(state_label_decl_32dinstruction_32dcomment_32deol)
-       end
-       redef fun action_slabel_decl_32ddirective_32dcomment(parser) do
-               parser.shift(state_label_decl_32ddirective_32dcomment_32deol)
-       end
-       redef fun node_name do return "eol"
-end
-class Nid
-       super NToken
-       redef fun action_sStart(parser) do
-               parser.shift(state_id)
-       end
-       redef fun action_sline_43d(parser) do
-               parser.shift(state_id)
-       end
-       redef fun action_slabel_decl(parser) do
-               parser.shift(state_label_decl_32did)
-       end
-       redef fun action_sid(parser) do
-               parser.shift(state_id_32did)
-       end
-       redef fun action_stk_byte(parser) do
-               parser.shift(state_id_32did)
-       end
-       redef fun action_stk_word(parser) do
-               parser.shift(state_id_32did)
-       end
-       redef fun action_stk_block(parser) do
-               parser.shift(state_id_32did)
-       end
-       redef fun action_stk_ascii(parser) do
-               parser.shift(state_id_32did)
-       end
-       redef fun action_stk_addrss(parser) do
-               parser.shift(state_id_32did)
-       end
-       redef fun action_stk_equate(parser) do
-               parser.shift(state_id_32did)
-       end
-       redef fun action_stk_burn(parser) do
-               parser.shift(state_id_32did)
-       end
-       redef fun action_sline_43d_32dlabel_decl(parser) do
-               parser.shift(state_label_decl_32did)
-       end
-       redef fun action_slabel_decl_32did(parser) do
-               parser.shift(state_id_32did)
-       end
-       redef fun action_sid_32dvalue_32dcomma(parser) do
-               parser.shift(state_id_32dvalue_32dcomma_32did)
-       end
-       redef fun node_name do return "id"
-end
-class Ncolon
-       super NToken
-       redef fun action_sid(parser) do
-               parser.shift(state_id_32dcolon)
-       end
-       redef fun node_name do return "colon"
-end
-class Ncomma
-       super NToken
-       redef fun action_sid_32dvalue(parser) do
-               parser.shift(state_id_32dvalue_32dcomma)
-       end
-       redef fun node_name do return "comma"
-end
-class Nchar
-       super NToken
-       redef fun action_sid(parser) do
-               parser.shift(state_id_32dchar)
-       end
-       redef fun action_stk_byte(parser) do
-               parser.shift(state_id_32dchar)
-       end
-       redef fun action_stk_word(parser) do
-               parser.shift(state_id_32dchar)
-       end
-       redef fun action_stk_block(parser) do
-               parser.shift(state_id_32dchar)
-       end
-       redef fun action_stk_ascii(parser) do
-               parser.shift(state_id_32dchar)
-       end
-       redef fun action_stk_addrss(parser) do
-               parser.shift(state_id_32dchar)
-       end
-       redef fun action_stk_equate(parser) do
-               parser.shift(state_id_32dchar)
-       end
-       redef fun action_stk_burn(parser) do
-               parser.shift(state_id_32dchar)
-       end
-       redef fun action_slabel_decl_32did(parser) do
-               parser.shift(state_id_32dchar)
-       end
-       redef fun node_name do return "char"
-end
-class Nstring
-       super NToken
-       redef fun action_sid(parser) do
-               parser.shift(state_id_32dstring)
-       end
-       redef fun action_stk_byte(parser) do
-               parser.shift(state_id_32dstring)
-       end
-       redef fun action_stk_word(parser) do
-               parser.shift(state_id_32dstring)
-       end
-       redef fun action_stk_block(parser) do
-               parser.shift(state_id_32dstring)
-       end
-       redef fun action_stk_ascii(parser) do
-               parser.shift(state_id_32dstring)
-       end
-       redef fun action_stk_addrss(parser) do
-               parser.shift(state_id_32dstring)
-       end
-       redef fun action_stk_equate(parser) do
-               parser.shift(state_id_32dstring)
-       end
-       redef fun action_stk_burn(parser) do
-               parser.shift(state_id_32dstring)
-       end
-       redef fun action_slabel_decl_32did(parser) do
-               parser.shift(state_id_32dstring)
-       end
-       redef fun node_name do return "string"
-end
-class Ntk_byte
-       super NToken
-       redef fun action_sStart(parser) do
-               parser.shift(state_tk_byte)
-       end
-       redef fun action_sline_43d(parser) do
-               parser.shift(state_tk_byte)
-       end
-       redef fun action_slabel_decl(parser) do
-               parser.shift(state_tk_byte)
-       end
-       redef fun action_sline_43d_32dlabel_decl(parser) do
-               parser.shift(state_tk_byte)
-       end
-       redef fun node_name do return "tk_byte"
-end
-class Ntk_word
-       super NToken
-       redef fun action_sStart(parser) do
-               parser.shift(state_tk_word)
-       end
-       redef fun action_sline_43d(parser) do
-               parser.shift(state_tk_word)
-       end
-       redef fun action_slabel_decl(parser) do
-               parser.shift(state_tk_word)
-       end
-       redef fun action_sline_43d_32dlabel_decl(parser) do
-               parser.shift(state_tk_word)
-       end
-       redef fun node_name do return "tk_word"
-end
-class Ntk_block
-       super NToken
-       redef fun action_sStart(parser) do
-               parser.shift(state_tk_block)
-       end
-       redef fun action_sline_43d(parser) do
-               parser.shift(state_tk_block)
-       end
-       redef fun action_slabel_decl(parser) do
-               parser.shift(state_tk_block)
-       end
-       redef fun action_sline_43d_32dlabel_decl(parser) do
-               parser.shift(state_tk_block)
-       end
-       redef fun node_name do return "tk_block"
-end
-class Ntk_ascii
-       super NToken
-       redef fun action_sStart(parser) do
-               parser.shift(state_tk_ascii)
-       end
-       redef fun action_sline_43d(parser) do
-               parser.shift(state_tk_ascii)
-       end
-       redef fun action_slabel_decl(parser) do
-               parser.shift(state_tk_ascii)
-       end
-       redef fun action_sline_43d_32dlabel_decl(parser) do
-               parser.shift(state_tk_ascii)
-       end
-       redef fun node_name do return "tk_ascii"
-end
-class Ntk_addrss
-       super NToken
-       redef fun action_sStart(parser) do
-               parser.shift(state_tk_addrss)
-       end
-       redef fun action_sline_43d(parser) do
-               parser.shift(state_tk_addrss)
-       end
-       redef fun action_slabel_decl(parser) do
-               parser.shift(state_tk_addrss)
-       end
-       redef fun action_sline_43d_32dlabel_decl(parser) do
-               parser.shift(state_tk_addrss)
-       end
-       redef fun node_name do return "tk_addrss"
-end
-class Ntk_equate
-       super NToken
-       redef fun action_sStart(parser) do
-               parser.shift(state_tk_equate)
-       end
-       redef fun action_sline_43d(parser) do
-               parser.shift(state_tk_equate)
-       end
-       redef fun action_slabel_decl(parser) do
-               parser.shift(state_tk_equate)
-       end
-       redef fun action_sline_43d_32dlabel_decl(parser) do
-               parser.shift(state_tk_equate)
-       end
-       redef fun node_name do return "tk_equate"
-end
-class Ntk_burn
-       super NToken
-       redef fun action_sStart(parser) do
-               parser.shift(state_tk_burn)
-       end
-       redef fun action_sline_43d(parser) do
-               parser.shift(state_tk_burn)
-       end
-       redef fun action_slabel_decl(parser) do
-               parser.shift(state_tk_burn)
-       end
-       redef fun action_sline_43d_32dlabel_decl(parser) do
-               parser.shift(state_tk_burn)
-       end
-       redef fun node_name do return "tk_burn"
-end
-redef class NEof
-       super NToken
-       redef fun action_slisting(parser) do
-               parser.shift(state_listing_32dEof)
-       end
-       redef fun node_name do return "Eof"
-end
-redef class LRGoto
-       private fun goto_sStart(parser: Parser) do abort
-       private fun goto_sline_43d(parser: Parser) do abort
-       private fun goto_slabel_decl(parser: Parser) do abort
-       private fun goto_sid(parser: Parser) do abort
-       private fun goto_sline_43d_32dlabel_decl(parser: Parser) do abort
-       private fun goto_slabel_decl_32did(parser: Parser) do abort
-end
-class Goto_Nlisting
-       super LRGoto
-       redef fun goto_sStart(parser) do
-               parser.push(state_listing)
-       end
-end
-class Goto_Nline
-       super LRGoto
-       redef fun goto_sStart(parser) do
-               parser.push(state_line)
-       end
-       redef fun goto_sline_43d(parser) do
-               parser.push(state_line_43d_32dline)
-       end
-end
-class Goto_Nlabel_decl
-       super LRGoto
-       redef fun goto_sStart(parser) do
-               parser.push(state_label_decl)
-       end
-       redef fun goto_sline_43d(parser) do
-               parser.push(state_line_43d_32dlabel_decl)
-       end
-end
-class Goto_Ninstruction
-       super LRGoto
-       redef fun goto_sStart(parser) do
-               parser.push(state_instruction)
-       end
-       redef fun goto_sline_43d(parser) do
-               parser.push(state_instruction)
-       end
-       redef fun goto_slabel_decl(parser) do
-               parser.push(state_label_decl_32dinstruction)
-       end
-       redef fun goto_sline_43d_32dlabel_decl(parser) do
-               parser.push(state_label_decl_32dinstruction)
-       end
-end
-class Goto_Noperand
-       super LRGoto
-       redef fun goto_sid(parser) do
-               parser.push(state_id_32doperand)
-       end
-       redef fun goto_slabel_decl_32did(parser) do
-               parser.push(state_id_32doperand)
-       end
-end
-class Goto_Nvalue
-       super LRGoto
-       redef fun goto_sid(parser) do
-               parser.push(state_id_32dvalue)
-       end
-       redef fun goto_slabel_decl_32did(parser) do
-               parser.push(state_id_32dvalue)
-       end
-end
-class Goto_Ndirective
-       super LRGoto
-       redef fun goto_sStart(parser) do
-               parser.push(state_directive)
-       end
-       redef fun goto_sline_43d(parser) do
-               parser.push(state_directive)
-       end
-       redef fun goto_slabel_decl(parser) do
-               parser.push(state_label_decl_32ddirective)
-       end
-       redef fun goto_sline_43d_32dlabel_decl(parser) do
-               parser.push(state_label_decl_32ddirective)
-       end
-end
-class Goto_Nline_43d
-       super LRGoto
-       redef fun goto_sStart(parser) do
-               parser.push(state_line_43d)
-       end
-end
-class Goto_N_start
-       super LRGoto
-end
-class Nlisting
-       super NProd
-       redef fun node_name do return "listing"
-       var n_lines: nullable Nodes[Nline]
-       var n_label_decl: nullable Nlabel_decl
-       var n_end_block: Nend_block
-       init(n_lines: nullable Nodes[Nline], n_label_decl: nullable Nlabel_decl, n_end_block: Nend_block) do
-               self.n_lines = n_lines
-               self.n_label_decl = n_label_decl
-               self.n_end_block = n_end_block
-       end
-       redef fun number_of_children do return 3
-       redef fun child(i) do
-               if i == 0 then return n_lines
-               if i == 1 then return n_label_decl
-               if i == 2 then return n_end_block
-               abort
-       end
-end
-class Nline
-       super NProd
-       redef fun node_name do return "line"
-end
-class Nline_empty
-       super Nline
-       redef fun node_name do return "line_empty"
-       var n_label_decl: nullable Nlabel_decl
-       var n_comment: nullable Ncomment
-       var n_eol: Neol
-       init(n_label_decl: nullable Nlabel_decl, n_comment: nullable Ncomment, n_eol: Neol) do
-               self.n_label_decl = n_label_decl
-               self.n_comment = n_comment
-               self.n_eol = n_eol
-       end
-       redef fun number_of_children do return 3
-       redef fun child(i) do
-               if i == 0 then return n_label_decl
-               if i == 1 then return n_comment
-               if i == 2 then return n_eol
-               abort
-       end
-end
-class Nline_instruction
-       super Nline
-       redef fun node_name do return "line_instruction"
-       var n_label_decl: nullable Nlabel_decl
-       var n_instruction: Ninstruction
-       var n_comment: nullable Ncomment
-       var n_eol: Neol
-       init(n_label_decl: nullable Nlabel_decl, n_instruction: Ninstruction, n_comment: nullable Ncomment, n_eol: Neol) do
-               self.n_label_decl = n_label_decl
-               self.n_instruction = n_instruction
-               self.n_comment = n_comment
-               self.n_eol = n_eol
-       end
-       redef fun number_of_children do return 4
-       redef fun child(i) do
-               if i == 0 then return n_label_decl
-               if i == 1 then return n_instruction
-               if i == 2 then return n_comment
-               if i == 3 then return n_eol
-               abort
-       end
-end
-class Nline_directive
-       super Nline
-       redef fun node_name do return "line_directive"
-       var n_label_decl: nullable Nlabel_decl
-       var n_directive: Ndirective
-       var n_comment: nullable Ncomment
-       var n_eol: Neol
-       init(n_label_decl: nullable Nlabel_decl, n_directive: Ndirective, n_comment: nullable Ncomment, n_eol: Neol) do
-               self.n_label_decl = n_label_decl
-               self.n_directive = n_directive
-               self.n_comment = n_comment
-               self.n_eol = n_eol
-       end
-       redef fun number_of_children do return 4
-       redef fun child(i) do
-               if i == 0 then return n_label_decl
-               if i == 1 then return n_directive
-               if i == 2 then return n_comment
-               if i == 3 then return n_eol
-               abort
-       end
-end
-class Nlabel_decl
-       super NProd
-       redef fun node_name do return "label_decl"
-       var n_id: Nid
-       var n_colon: Ncolon
-       init(n_id: Nid, n_colon: Ncolon) do
-               self.n_id = n_id
-               self.n_colon = n_colon
-       end
-       redef fun number_of_children do return 2
-       redef fun child(i) do
-               if i == 0 then return n_id
-               if i == 1 then return n_colon
-               abort
-       end
-end
-class Ninstruction
-       super NProd
-       redef fun node_name do return "instruction"
-end
-class Ninstruction_unary
-       super Ninstruction
-       redef fun node_name do return "instruction_unary"
-       var n_id: Nid
-       init(n_id: Nid) do
-               self.n_id = n_id
-       end
-       redef fun number_of_children do return 1
-       redef fun child(i) do
-               if i == 0 then return n_id
-               abort
-       end
-end
-class Ninstruction_binary
-       super Ninstruction
-       redef fun node_name do return "instruction_binary"
-       var n_id: Nid
-       var n_operand: Noperand
-       init(n_id: Nid, n_operand: Noperand) do
-               self.n_id = n_id
-               self.n_operand = n_operand
-       end
-       redef fun number_of_children do return 2
-       redef fun child(i) do
-               if i == 0 then return n_id
-               if i == 1 then return n_operand
-               abort
-       end
-end
-class Noperand
-       super NProd
-       redef fun node_name do return "operand"
-end
-class Noperand_immediate
-       super Noperand
-       redef fun node_name do return "operand_immediate"
-       var n_value: Nvalue
-       init(n_value: Nvalue) do
-               self.n_value = n_value
-       end
-       redef fun number_of_children do return 1
-       redef fun child(i) do
-               if i == 0 then return n_value
-               abort
-       end
-end
-class Noperand_any
-       super Noperand
-       redef fun node_name do return "operand_any"
-       var n_value: Nvalue
-       var n_comma: Ncomma
-       var n_id: Nid
-       init(n_value: Nvalue, n_comma: Ncomma, n_id: Nid) do
-               self.n_value = n_value
-               self.n_comma = n_comma
-               self.n_id = n_id
-       end
-       redef fun number_of_children do return 3
-       redef fun child(i) do
-               if i == 0 then return n_value
-               if i == 1 then return n_comma
-               if i == 2 then return n_id
-               abort
-       end
-end
-class Nvalue
-       super NProd
-       redef fun node_name do return "value"
-end
-class Nvalue_label
-       super Nvalue
-       redef fun node_name do return "value_label"
-       var n_id: Nid
-       init(n_id: Nid) do
-               self.n_id = n_id
-       end
-       redef fun number_of_children do return 1
-       redef fun child(i) do
-               if i == 0 then return n_id
-               abort
-       end
-end
-class Nvalue_char
-       super Nvalue
-       redef fun node_name do return "value_char"
-       var n_char: Nchar
-       init(n_char: Nchar) do
-               self.n_char = n_char
-       end
-       redef fun number_of_children do return 1
-       redef fun child(i) do
-               if i == 0 then return n_char
-               abort
-       end
-end
-class Nvalue_string
-       super Nvalue
-       redef fun node_name do return "value_string"
-       var n_string: Nstring
-       init(n_string: Nstring) do
-               self.n_string = n_string
-       end
-       redef fun number_of_children do return 1
-       redef fun child(i) do
-               if i == 0 then return n_string
-               abort
-       end
-end
-class Ndirective
-       super NProd
-       redef fun node_name do return "directive"
-end
-class Ndirective_byte
-       super Ndirective
-       redef fun node_name do return "directive_byte"
-       var n_tk_byte: Ntk_byte
-       var n_value: Nvalue
-       init(n_tk_byte: Ntk_byte, n_value: Nvalue) do
-               self.n_tk_byte = n_tk_byte
-               self.n_value = n_value
-       end
-       redef fun number_of_children do return 2
-       redef fun child(i) do
-               if i == 0 then return n_tk_byte
-               if i == 1 then return n_value
-               abort
-       end
-end
-class Ndirective_word
-       super Ndirective
-       redef fun node_name do return "directive_word"
-       var n_tk_word: Ntk_word
-       var n_value: Nvalue
-       init(n_tk_word: Ntk_word, n_value: Nvalue) do
-               self.n_tk_word = n_tk_word
-               self.n_value = n_value
-       end
-       redef fun number_of_children do return 2
-       redef fun child(i) do
-               if i == 0 then return n_tk_word
-               if i == 1 then return n_value
-               abort
-       end
-end
-class Ndirective_block
-       super Ndirective
-       redef fun node_name do return "directive_block"
-       var n_tk_block: Ntk_block
-       var n_value: Nvalue
-       init(n_tk_block: Ntk_block, n_value: Nvalue) do
-               self.n_tk_block = n_tk_block
-               self.n_value = n_value
-       end
-       redef fun number_of_children do return 2
-       redef fun child(i) do
-               if i == 0 then return n_tk_block
-               if i == 1 then return n_value
-               abort
-       end
-end
-class Ndirective_ascii
-       super Ndirective
-       redef fun node_name do return "directive_ascii"
-       var n_tk_ascii: Ntk_ascii
-       var n_value: Nvalue
-       init(n_tk_ascii: Ntk_ascii, n_value: Nvalue) do
-               self.n_tk_ascii = n_tk_ascii
-               self.n_value = n_value
-       end
-       redef fun number_of_children do return 2
-       redef fun child(i) do
-               if i == 0 then return n_tk_ascii
-               if i == 1 then return n_value
-               abort
-       end
-end
-class Ndirective_addrss
-       super Ndirective
-       redef fun node_name do return "directive_addrss"
-       var n_tk_addrss: Ntk_addrss
-       var n_value: Nvalue
-       init(n_tk_addrss: Ntk_addrss, n_value: Nvalue) do
-               self.n_tk_addrss = n_tk_addrss
-               self.n_value = n_value
-       end
-       redef fun number_of_children do return 2
-       redef fun child(i) do
-               if i == 0 then return n_tk_addrss
-               if i == 1 then return n_value
-               abort
-       end
-end
-class Ndirective_equate
-       super Ndirective
-       redef fun node_name do return "directive_equate"
-       var n_tk_equate: Ntk_equate
-       var n_value: Nvalue
-       init(n_tk_equate: Ntk_equate, n_value: Nvalue) do
-               self.n_tk_equate = n_tk_equate
-               self.n_value = n_value
-       end
-       redef fun number_of_children do return 2
-       redef fun child(i) do
-               if i == 0 then return n_tk_equate
-               if i == 1 then return n_value
-               abort
-       end
-end
-class Ndirective_burn
-       super Ndirective
-       redef fun node_name do return "directive_burn"
-       var n_tk_burn: Ntk_burn
-       var n_value: Nvalue
-       init(n_tk_burn: Ntk_burn, n_value: Nvalue) do
-               self.n_tk_burn = n_tk_burn
-               self.n_value = n_value
-       end
-       redef fun number_of_children do return 2
-       redef fun child(i) do
-               if i == 0 then return n_tk_burn
-               if i == 1 then return n_value
-               abort
-       end
-end
-class N_start
-       super NProd
-       redef fun node_name do return "_start"
-end
-class NStart
-       super N_start
-       redef fun node_name do return "Start"
-       var n_0: Nlisting
-       var n_1: NEof
-       init(n_0: Nlisting, n_1: NEof) do
-               self.n_0 = n_0
-               self.n_1 = n_1
-       end
-       redef fun number_of_children do return 2
-       redef fun child(i) do
-               if i == 0 then return n_0
-               if i == 1 then return n_1
-               abort
-       end
-end
-# State Start
-private class LRStateStart
-       super LRState
-       redef fun to_s do return "Start"
-       redef fun error_msg do return "listing, line+, line, label_decl, instruction, directive"
-       redef fun action(parser) do
-               parser.peek_token.action_sStart(parser)
-       end
-       redef fun goto(parser, goto) do
-               goto.goto_sStart(parser)
-       end
-end
-# State listing
-private class LRStatelisting
-       super LRState
-       redef fun to_s do return "listing"
-       redef fun error_msg do return "Eof"
-       redef fun action(parser) do
-               parser.peek_token.action_slisting(parser)
-       end
-end
-# State line+
-private class LRStateline_43d
-       super LRState
-       redef fun to_s do return "line+"
-       redef fun error_msg do return "label_decl, line, instruction, directive"
-       redef fun action(parser) do
-               parser.peek_token.action_sline_43d(parser)
-       end
-       redef fun goto(parser, goto) do
-               goto.goto_sline_43d(parser)
-       end
-end
-# State line
-private class LRStateline
-       super LRState
-       redef fun to_s do return "line"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line+::line+_one=line
-               var n0 = parser.pop.as(Nline)
-               var prod = new Nodes[Nline]
-               prod.items.add(n0)
-               parser.node_stack.push prod
-               parser.goto(goto_Nline_43d)
-       end
-end
-# State label_decl
-private class LRStatelabel_decl
-       super LRState
-       redef fun to_s do return "label_decl"
-       redef fun error_msg do return "instruction, directive"
-       redef fun action(parser) do
-               parser.peek_token.action_slabel_decl(parser)
-       end
-       redef fun goto(parser, goto) do
-               goto.goto_slabel_decl(parser)
-       end
-end
-# State id
-private class LRStateid
-       super LRState
-       redef fun to_s do return "id"
-       redef fun error_msg do return "operand, value"
-       redef fun action(parser) do
-               parser.peek_token.action_sid(parser)
-       end
-       redef fun goto(parser, goto) do
-               goto.goto_sid(parser)
-       end
-end
-# State comment
-private class LRStatecomment
-       super LRState
-       redef fun to_s do return "comment"
-       redef fun error_msg do return "eol"
-       redef fun action(parser) do
-               parser.peek_token.action_scomment(parser)
-       end
-end
-# State eol
-private class LRStateeol
-       super LRState
-       redef fun to_s do return "eol"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line::line_empty_3=eol
-               var n0 = parser.pop.as(Neol)
-               var p1 = new Nline_empty(null, null, n0)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nline)
-       end
-end
-# State instruction
-private class LRStateinstruction
-       super LRState
-       redef fun to_s do return "instruction"
-       redef fun error_msg do return "comment, eol"
-       redef fun action(parser) do
-               parser.peek_token.action_sinstruction(parser)
-       end
-end
-# State directive
-private class LRStatedirective
-       super LRState
-       redef fun to_s do return "directive"
-       redef fun error_msg do return "comment, eol"
-       redef fun action(parser) do
-               parser.peek_token.action_sdirective(parser)
-       end
-end
-# State tk_byte
-private class LRStatetk_byte
-       super LRState
-       redef fun to_s do return "tk_byte"
-       redef fun error_msg do return "value"
-       redef fun action(parser) do
-               parser.peek_token.action_stk_byte(parser)
-       end
-       redef fun goto(parser, goto) do
-               parser.push(state_tk_byte_32dvalue)
-       end
-end
-# State tk_word
-private class LRStatetk_word
-       super LRState
-       redef fun to_s do return "tk_word"
-       redef fun error_msg do return "value"
-       redef fun action(parser) do
-               parser.peek_token.action_stk_word(parser)
-       end
-       redef fun goto(parser, goto) do
-               parser.push(state_tk_word_32dvalue)
-       end
-end
-# State tk_block
-private class LRStatetk_block
-       super LRState
-       redef fun to_s do return "tk_block"
-       redef fun error_msg do return "value"
-       redef fun action(parser) do
-               parser.peek_token.action_stk_block(parser)
-       end
-       redef fun goto(parser, goto) do
-               parser.push(state_tk_block_32dvalue)
-       end
-end
-# State tk_ascii
-private class LRStatetk_ascii
-       super LRState
-       redef fun to_s do return "tk_ascii"
-       redef fun error_msg do return "value"
-       redef fun action(parser) do
-               parser.peek_token.action_stk_ascii(parser)
-       end
-       redef fun goto(parser, goto) do
-               parser.push(state_tk_ascii_32dvalue)
-       end
-end
-# State tk_addrss
-private class LRStatetk_addrss
-       super LRState
-       redef fun to_s do return "tk_addrss"
-       redef fun error_msg do return "value"
-       redef fun action(parser) do
-               parser.peek_token.action_stk_addrss(parser)
-       end
-       redef fun goto(parser, goto) do
-               parser.push(state_tk_addrss_32dvalue)
-       end
-end
-# State tk_equate
-private class LRStatetk_equate
-       super LRState
-       redef fun to_s do return "tk_equate"
-       redef fun error_msg do return "value"
-       redef fun action(parser) do
-               parser.peek_token.action_stk_equate(parser)
-       end
-       redef fun goto(parser, goto) do
-               parser.push(state_tk_equate_32dvalue)
-       end
-end
-# State tk_burn
-private class LRStatetk_burn
-       super LRState
-       redef fun to_s do return "tk_burn"
-       redef fun error_msg do return "value"
-       redef fun action(parser) do
-               parser.peek_token.action_stk_burn(parser)
-       end
-       redef fun goto(parser, goto) do
-               parser.push(state_tk_burn_32dvalue)
-       end
-end
-# State end_block
-private class LRStateend_block
-       super LRState
-       redef fun to_s do return "end_block"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE listing::listing_3=end_block
-               var n0 = parser.pop.as(Nend_block)
-               var p1 = new Nlisting(null, null, n0)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nlisting)
-       end
-end
-# State listing Eof
-private class LRStatelisting_32dEof
-       super LRState
-       redef fun to_s do return "listing Eof"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE _start::Start=listing Eof
-               var n1 = parser.pop.as(NEof)
-               var n0 = parser.pop.as(Nlisting)
-               var p1 = new NStart(n0, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.stop = true
-       end
-end
-# State line+ label_decl
-private class LRStateline_43d_32dlabel_decl
-       super LRState
-       redef fun to_s do return "line+ label_decl"
-       redef fun error_msg do return "instruction, directive"
-       redef fun action(parser) do
-               parser.peek_token.action_sline_43d_32dlabel_decl(parser)
-       end
-       redef fun goto(parser, goto) do
-               goto.goto_sline_43d_32dlabel_decl(parser)
-       end
-end
-# State line+ line
-private class LRStateline_43d_32dline
-       super LRState
-       redef fun to_s do return "line+ line"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line+::line+_more=line+ line
-               var n1 = parser.pop.as(Nline)
-               var n0 = parser.pop.as(Nodes[Nline])
-               var prod = n0
-               n0.items.add(n1)
-               parser.node_stack.push prod
-               parser.goto(goto_Nline_43d)
-       end
-end
-# State line+ end_block
-private class LRStateline_43d_32dend_block
-       super LRState
-       redef fun to_s do return "line+ end_block"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE listing::listing_2=line+ end_block
-               var n1 = parser.pop.as(Nend_block)
-               var n0 = parser.pop.as(Nodes[Nline])
-               var p1 = new Nlisting(n0, null, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nlisting)
-       end
-end
-# State label_decl comment
-private class LRStatelabel_decl_32dcomment
-       super LRState
-       redef fun to_s do return "label_decl comment"
-       redef fun error_msg do return "eol"
-       redef fun action(parser) do
-               parser.peek_token.action_slabel_decl_32dcomment(parser)
-       end
-end
-# State label_decl eol
-private class LRStatelabel_decl_32deol
-       super LRState
-       redef fun to_s do return "label_decl eol"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line::line_empty_2=label_decl eol
-               var n1 = parser.pop.as(Neol)
-               var n0 = parser.pop.as(Nlabel_decl)
-               var p1 = new Nline_empty(n0, null, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nline)
-       end
-end
-# State label_decl instruction
-private class LRStatelabel_decl_32dinstruction
-       super LRState
-       redef fun to_s do return "label_decl instruction"
-       redef fun error_msg do return "comment, eol"
-       redef fun action(parser) do
-               parser.peek_token.action_slabel_decl_32dinstruction(parser)
-       end
-end
-# State label_decl directive
-private class LRStatelabel_decl_32ddirective
-       super LRState
-       redef fun to_s do return "label_decl directive"
-       redef fun error_msg do return "comment, eol"
-       redef fun action(parser) do
-               parser.peek_token.action_slabel_decl_32ddirective(parser)
-       end
-end
-# State label_decl end_block
-private class LRStatelabel_decl_32dend_block
-       super LRState
-       redef fun to_s do return "label_decl end_block"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE listing::listing_1=label_decl end_block
-               var n1 = parser.pop.as(Nend_block)
-               var n0 = parser.pop.as(Nlabel_decl)
-               var p1 = new Nlisting(null, n0, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nlisting)
-       end
-end
-# State label_decl id
-private class LRStatelabel_decl_32did
-       super LRState
-       redef fun to_s do return "label_decl id"
-       redef fun error_msg do return "operand, value"
-       redef fun action(parser) do
-               parser.peek_token.action_slabel_decl_32did(parser)
-       end
-       redef fun goto(parser, goto) do
-               goto.goto_slabel_decl_32did(parser)
-       end
-end
-# State id colon
-private class LRStateid_32dcolon
-       super LRState
-       redef fun to_s do return "id colon"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE label_decl::label_decl=id colon
-               var n1 = parser.pop.as(Ncolon)
-               var n0 = parser.pop.as(Nid)
-               var p1 = new Nlabel_decl(n0, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nlabel_decl)
-       end
-end
-# State id operand
-private class LRStateid_32doperand
-       super LRState
-       redef fun to_s do return "id operand"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE instruction::instruction_binary=id operand
-               var n1 = parser.pop.as(Noperand)
-               var n0 = parser.pop.as(Nid)
-               var p1 = new Ninstruction_binary(n0, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Ninstruction)
-       end
-end
-# State id value
-private class LRStateid_32dvalue
-       super LRState
-       redef fun to_s do return "id value"
-       redef fun error_msg do return "comma"
-       redef fun action(parser) do
-               parser.peek_token.action_sid_32dvalue(parser)
-       end
-end
-# State id id
-private class LRStateid_32did
-       super LRState
-       redef fun to_s do return "id id"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE value::value_label=id
-               var n0 = parser.pop.as(Nid)
-               var p1 = new Nvalue_label(n0)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nvalue)
-       end
-end
-# State id char
-private class LRStateid_32dchar
-       super LRState
-       redef fun to_s do return "id char"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE value::value_char=char
-               var n0 = parser.pop.as(Nchar)
-               var p1 = new Nvalue_char(n0)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nvalue)
-       end
-end
-# State id string
-private class LRStateid_32dstring
-       super LRState
-       redef fun to_s do return "id string"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE value::value_string=string
-               var n0 = parser.pop.as(Nstring)
-               var p1 = new Nvalue_string(n0)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nvalue)
-       end
-end
-# State comment eol
-private class LRStatecomment_32deol
-       super LRState
-       redef fun to_s do return "comment eol"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line::line_empty_1=comment eol
-               var n1 = parser.pop.as(Neol)
-               var n0 = parser.pop.as(Ncomment)
-               var p1 = new Nline_empty(null, n0, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nline)
-       end
-end
-# State instruction comment
-private class LRStateinstruction_32dcomment
-       super LRState
-       redef fun to_s do return "instruction comment"
-       redef fun error_msg do return "eol"
-       redef fun action(parser) do
-               parser.peek_token.action_sinstruction_32dcomment(parser)
-       end
-end
-# State instruction eol
-private class LRStateinstruction_32deol
-       super LRState
-       redef fun to_s do return "instruction eol"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line::line_instruction_3=instruction eol
-               var n1 = parser.pop.as(Neol)
-               var n0 = parser.pop.as(Ninstruction)
-               var p1 = new Nline_instruction(null, n0, null, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nline)
-       end
-end
-# State directive comment
-private class LRStatedirective_32dcomment
-       super LRState
-       redef fun to_s do return "directive comment"
-       redef fun error_msg do return "eol"
-       redef fun action(parser) do
-               parser.peek_token.action_sdirective_32dcomment(parser)
-       end
-end
-# State directive eol
-private class LRStatedirective_32deol
-       super LRState
-       redef fun to_s do return "directive eol"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line::line_directive_3=directive eol
-               var n1 = parser.pop.as(Neol)
-               var n0 = parser.pop.as(Ndirective)
-               var p1 = new Nline_directive(null, n0, null, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nline)
-       end
-end
-# State tk_byte value
-private class LRStatetk_byte_32dvalue
-       super LRState
-       redef fun to_s do return "tk_byte value"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE directive::directive_byte=tk_byte value
-               var n1 = parser.pop.as(Nvalue)
-               var n0 = parser.pop.as(Ntk_byte)
-               var p1 = new Ndirective_byte(n0, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Ndirective)
-       end
-end
-# State tk_word value
-private class LRStatetk_word_32dvalue
-       super LRState
-       redef fun to_s do return "tk_word value"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE directive::directive_word=tk_word value
-               var n1 = parser.pop.as(Nvalue)
-               var n0 = parser.pop.as(Ntk_word)
-               var p1 = new Ndirective_word(n0, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Ndirective)
-       end
-end
-# State tk_block value
-private class LRStatetk_block_32dvalue
-       super LRState
-       redef fun to_s do return "tk_block value"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE directive::directive_block=tk_block value
-               var n1 = parser.pop.as(Nvalue)
-               var n0 = parser.pop.as(Ntk_block)
-               var p1 = new Ndirective_block(n0, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Ndirective)
-       end
-end
-# State tk_ascii value
-private class LRStatetk_ascii_32dvalue
-       super LRState
-       redef fun to_s do return "tk_ascii value"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE directive::directive_ascii=tk_ascii value
-               var n1 = parser.pop.as(Nvalue)
-               var n0 = parser.pop.as(Ntk_ascii)
-               var p1 = new Ndirective_ascii(n0, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Ndirective)
-       end
-end
-# State tk_addrss value
-private class LRStatetk_addrss_32dvalue
-       super LRState
-       redef fun to_s do return "tk_addrss value"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE directive::directive_addrss=tk_addrss value
-               var n1 = parser.pop.as(Nvalue)
-               var n0 = parser.pop.as(Ntk_addrss)
-               var p1 = new Ndirective_addrss(n0, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Ndirective)
-       end
-end
-# State tk_equate value
-private class LRStatetk_equate_32dvalue
-       super LRState
-       redef fun to_s do return "tk_equate value"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE directive::directive_equate=tk_equate value
-               var n1 = parser.pop.as(Nvalue)
-               var n0 = parser.pop.as(Ntk_equate)
-               var p1 = new Ndirective_equate(n0, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Ndirective)
-       end
-end
-# State tk_burn value
-private class LRStatetk_burn_32dvalue
-       super LRState
-       redef fun to_s do return "tk_burn value"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE directive::directive_burn=tk_burn value
-               var n1 = parser.pop.as(Nvalue)
-               var n0 = parser.pop.as(Ntk_burn)
-               var p1 = new Ndirective_burn(n0, n1)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Ndirective)
-       end
-end
-# State line+ label_decl end_block
-private class LRStateline_43d_32dlabel_decl_32dend_block
-       super LRState
-       redef fun to_s do return "line+ label_decl end_block"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE listing::listing_0=line+ label_decl end_block
-               var n2 = parser.pop.as(Nend_block)
-               var n1 = parser.pop.as(Nlabel_decl)
-               var n0 = parser.pop.as(Nodes[Nline])
-               var p1 = new Nlisting(n0, n1, n2)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nlisting)
-       end
-end
-# State label_decl comment eol
-private class LRStatelabel_decl_32dcomment_32deol
-       super LRState
-       redef fun to_s do return "label_decl comment eol"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line::line_empty_0=label_decl comment eol
-               var n2 = parser.pop.as(Neol)
-               var n1 = parser.pop.as(Ncomment)
-               var n0 = parser.pop.as(Nlabel_decl)
-               var p1 = new Nline_empty(n0, n1, n2)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nline)
-       end
-end
-# State label_decl instruction comment
-private class LRStatelabel_decl_32dinstruction_32dcomment
-       super LRState
-       redef fun to_s do return "label_decl instruction comment"
-       redef fun error_msg do return "eol"
-       redef fun action(parser) do
-               parser.peek_token.action_slabel_decl_32dinstruction_32dcomment(parser)
-       end
-end
-# State label_decl instruction eol
-private class LRStatelabel_decl_32dinstruction_32deol
-       super LRState
-       redef fun to_s do return "label_decl instruction eol"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line::line_instruction_2=label_decl instruction eol
-               var n2 = parser.pop.as(Neol)
-               var n1 = parser.pop.as(Ninstruction)
-               var n0 = parser.pop.as(Nlabel_decl)
-               var p1 = new Nline_instruction(n0, n1, null, n2)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nline)
-       end
-end
-# State label_decl directive comment
-private class LRStatelabel_decl_32ddirective_32dcomment
-       super LRState
-       redef fun to_s do return "label_decl directive comment"
-       redef fun error_msg do return "eol"
-       redef fun action(parser) do
-               parser.peek_token.action_slabel_decl_32ddirective_32dcomment(parser)
-       end
-end
-# State label_decl directive eol
-private class LRStatelabel_decl_32ddirective_32deol
-       super LRState
-       redef fun to_s do return "label_decl directive eol"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line::line_directive_2=label_decl directive eol
-               var n2 = parser.pop.as(Neol)
-               var n1 = parser.pop.as(Ndirective)
-               var n0 = parser.pop.as(Nlabel_decl)
-               var p1 = new Nline_directive(n0, n1, null, n2)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nline)
-       end
-end
-# State id value comma
-private class LRStateid_32dvalue_32dcomma
-       super LRState
-       redef fun to_s do return "id value comma"
-       redef fun error_msg do return "id"
-       redef fun action(parser) do
-               parser.peek_token.action_sid_32dvalue_32dcomma(parser)
-       end
-end
-# State instruction comment eol
-private class LRStateinstruction_32dcomment_32deol
-       super LRState
-       redef fun to_s do return "instruction comment eol"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line::line_instruction_1=instruction comment eol
-               var n2 = parser.pop.as(Neol)
-               var n1 = parser.pop.as(Ncomment)
-               var n0 = parser.pop.as(Ninstruction)
-               var p1 = new Nline_instruction(null, n0, n1, n2)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nline)
-       end
-end
-# State directive comment eol
-private class LRStatedirective_32dcomment_32deol
-       super LRState
-       redef fun to_s do return "directive comment eol"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line::line_directive_1=directive comment eol
-               var n2 = parser.pop.as(Neol)
-               var n1 = parser.pop.as(Ncomment)
-               var n0 = parser.pop.as(Ndirective)
-               var p1 = new Nline_directive(null, n0, n1, n2)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nline)
-       end
-end
-# State label_decl instruction comment eol
-private class LRStatelabel_decl_32dinstruction_32dcomment_32deol
-       super LRState
-       redef fun to_s do return "label_decl instruction comment eol"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line::line_instruction_0=label_decl instruction comment eol
-               var n3 = parser.pop.as(Neol)
-               var n2 = parser.pop.as(Ncomment)
-               var n1 = parser.pop.as(Ninstruction)
-               var n0 = parser.pop.as(Nlabel_decl)
-               var p1 = new Nline_instruction(n0, n1, n2, n3)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nline)
-       end
-end
-# State label_decl directive comment eol
-private class LRStatelabel_decl_32ddirective_32dcomment_32deol
-       super LRState
-       redef fun to_s do return "label_decl directive comment eol"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE line::line_directive_0=label_decl directive comment eol
-               var n3 = parser.pop.as(Neol)
-               var n2 = parser.pop.as(Ncomment)
-               var n1 = parser.pop.as(Ndirective)
-               var n0 = parser.pop.as(Nlabel_decl)
-               var p1 = new Nline_directive(n0, n1, n2, n3)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Nline)
-       end
-end
-# State id value comma id
-private class LRStateid_32dvalue_32dcomma_32did
-       super LRState
-       redef fun to_s do return "id value comma id"
-       redef fun error_msg do return ""
-       redef fun action(parser) do
-               # REDUCE operand::operand_any=value comma id
-               var n2 = parser.pop.as(Nid)
-               var n1 = parser.pop.as(Ncomma)
-               var n0 = parser.pop.as(Nvalue)
-               var p1 = new Noperand_any(n0, n1, n2)
-               var prod = p1
-               parser.node_stack.push prod
-               parser.goto(goto_Noperand)
-       end
-end
diff --git a/contrib/pep8analysis/src/parser/pep8_test_parser.nit b/contrib/pep8analysis/src/parser/pep8_test_parser.nit
deleted file mode 100644 (file)
index 9f015d0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# Generated by nitcc for the language pep8
-import nitcc_runtime
-import pep8_lexer
-import pep8_parser
-class MyTest
-       super TestParser
-       redef fun name do return "pep8"
-       redef fun new_lexer(text) do return new MyLexer(text)
-       redef fun new_parser do return new MyParser
-end
-var t = new MyTest
-t.main
index 30c0849..259fd09 100644 (file)
@@ -32,6 +32,7 @@ import model
 import cfg
 import flow_analysis
 intrude import standard::stream
+import cpp
 
 in "C++" `{
        #include <bind.h>
index 2f4f467..8700ab2 100644 (file)
@@ -24,4 +24,5 @@ import test_audio
 import test_shared_preferences
 import test_assets_and_resources
 import test_target_api
+import test_data_store
 import test_intent
index 6bfc9b1..9a3212d 100644 (file)
@@ -39,9 +39,9 @@ redef class App
                img = load_image( "fighter.png" )
        end
 
-       var r: Float = 0.0
-       var g: Float = 0.0
-       var b: Float = 0.0
+       var r = 0.0 is writable
+       var g = 0.0 is writable
+       var b = 0.0 is writable
        redef fun frame_core( display )
        do
                b = b + 0.01
index 1a3c5fd..c0d8d0f 100644 (file)
@@ -19,4 +19,6 @@ module simple_linux
 import simple
 import mnit_linux
 
+import test_data_store
+
 super
diff --git a/examples/mnit_simple/src/test_data_store.nit b/examples/mnit_simple/src/test_data_store.nit
new file mode 100644 (file)
index 0000000..4abd9a6
--- /dev/null
@@ -0,0 +1,52 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2014 Alexis Laferrière <alexis.laf@xymus.net>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Test for the shared_preferences module of App.nit framework
+module test_data_store
+
+import simple
+import app::data_store
+
+redef class App
+       redef fun window_created
+       do
+               super
+
+               # load colors from data store
+               var r = data_store["r"]
+               if r isa Float then
+                       self.r = r
+                       print "r {r}"
+               else assert r == null
+
+               var g = data_store["g"]
+               if g isa Float then
+                       self.g = g
+                       print "g {g}"
+               else assert g == null
+       end
+
+       redef fun input(ie)
+       do
+               if ie isa PointerEvent then
+                       # save color for next execution
+                       data_store["r"] = r
+                       data_store["g"] = g
+               end
+
+               return super
+       end
+end
index 3fc1a09..5523f30 100644 (file)
@@ -28,6 +28,7 @@ import platform
 import native_app_glue
 import dalvik
 private import log
+private import android_data_store
 
 # Uses Android logs to print everything
 redef fun print(text) do log_write(priority_info, app.log_prefix.to_cstring, text.to_s.to_cstring)
diff --git a/lib/android/android_data_store.nit b/lib/android/android_data_store.nit
new file mode 100644 (file)
index 0000000..57eb281
--- /dev/null
@@ -0,0 +1,38 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2014 Alexis Laferrière <alexis.laf@xymus.net>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Implements `app::data_store` using `shared_preferences`
+#
+# We use the shared preferences named "data_store" to store the data.
+module android_data_store
+
+import app::data_store
+private import shared_preferences
+
+redef class App
+       redef var data_store = new SharedPreferenceView
+end
+
+private class SharedPreferenceView
+       super DataStore
+
+       # The `SharedPreferences` used to implement the `DataStore`
+       var shared_preferences = new SharedPreferences.privately(app, "data_store") is lazy
+
+       redef fun [](key) do return shared_preferences[key]
+
+       redef fun []=(key, value) do shared_preferences[key] = value
+end
diff --git a/lib/app/app.nit b/lib/app/app.nit
new file mode 100644 (file)
index 0000000..79cbb38
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2011-2014 Alexis Laferrière <alexis.laf@xymus.net>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# app.nit is a framework to create cross-platform applications
+#
+# The features offered by this modules are common to all platforms, but
+# may not be available on all devices.
+module app
+
+import app_base
similarity index 90%
rename from lib/app.nit
rename to lib/app/app_base.nit
index 5d0a1fd..a528d57 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# app.nit is a framework to create cross-platform applications
-#
-# The features offered by this modules are common to all platforms, but
-# may not be available on all devices.
-module app is
+module app_base is
        new_annotation app_name
        new_annotation app_version
 end
diff --git a/lib/app/data_store.nit b/lib/app/data_store.nit
new file mode 100644 (file)
index 0000000..afb6a1d
--- /dev/null
@@ -0,0 +1,38 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2014 Alexis Laferrière <alexis.laf@xymus.net>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Simple data storage services
+#
+# The implementation varies per platform.
+module data_store
+
+import app_base
+import serialization
+
+redef class App
+       # Services to store and load data
+       fun data_store: DataStore is abstract
+end
+
+# Simple data storage facility
+interface DataStore
+
+       # Get the object stored at `key`, or null if nothing is available
+       fun [](key: String): nullable Object is abstract
+
+       # Store `value` at `key`
+       fun []=(key: String, value: Serializable) is abstract
+end
diff --git a/lib/linux/linux.nit b/lib/linux/linux.nit
new file mode 100644 (file)
index 0000000..b106d62
--- /dev/null
@@ -0,0 +1,21 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2014 Alexis Laferrière <alexis.laf@xymus.net>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Implementation of app.nit for the Linux platform
+module linux
+
+import app
+private import linux_data_store
diff --git a/lib/linux/linux_data_store.nit b/lib/linux/linux_data_store.nit
new file mode 100644 (file)
index 0000000..b7cedea
--- /dev/null
@@ -0,0 +1,108 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2014 Alexis Laferrière <alexis.laf@xymus.net>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+module linux_data_store
+
+import app::data_store
+private import xdg_basedir
+private import sqlite3
+private import json_serialization
+
+redef class App
+       redef var data_store = new LinuxStore
+end
+
+private class LinuxStore
+       super DataStore
+
+       # File path of the Sqlite3 DB file
+       fun db_file: String do return "data_store.db"
+
+       # Sqlite3 table used
+       fun db_table: String do return "data_store"
+
+       private var db_cache: nullable Sqlite3DB = null
+
+       # Database to use to implement the `DataStore`
+       fun db: nullable Sqlite3DB
+       do
+               var db = db_cache
+               if db != null then return db
+
+               # Find DB path
+               var config_home = xdg_basedir.config_home.to_s
+               var config_dir = config_home.join_path(sys.program_name.basename(""))
+               if not config_dir.file_exists then config_dir.mkdir
+               var db_path = config_dir.join_path(db_file)
+
+               # Open DB connection
+               db = new Sqlite3DB.open(db_path)
+               if not db.is_open then
+                       app.log_error "Data store unavaible, cannot load/save data. (at '{db_path}' with '{db.error or else "unknown"}')"
+                       return null
+               end
+
+               # Create DB table
+               db.create_table "IF NOT EXISTS {db_table} (key TEXT PRIMARY KEY, value TEXT)"
+
+               db_cache = db
+               return db
+       end
+
+       redef fun [](key)
+       do
+               # Get DB
+               var db = self.db
+               if db == null then return null
+
+               # Prepare SELECT statement
+               var stmt = db.select("* FROM {db_table} WHERE key == {key.to_sql_string}")
+
+               # Execute statment
+               for row in stmt do
+                       # Get from statement
+                       var serialized = row[1].to_s
+                       stmt.close
+
+                       # Deserialize
+                       var deserializer = new JsonDeserializer(serialized)
+                       var deserialized = deserializer.deserialize
+
+                       return deserialized
+               end
+
+               stmt.close
+               return null
+       end
+
+       redef fun []=(key, value)
+       do
+               # Get DB
+               var db = self.db
+               if db == null then return
+
+               # Serialize
+               var stream = new StringOStream
+               var serializer = new JsonSerializer(stream)
+               serializer.serialize value
+               var serialized = stream.to_s
+
+               # Save in DB
+               db.execute "BEGIN TRANSACTION"
+               db.insert "OR REPLACE INTO {db_table} VALUES({key.to_sql_string}, {serialized.to_sql_string})"
+               db.execute "COMMIT"
+       end
+end
index 4efde74..5b73d3b 100644 (file)
@@ -189,7 +189,7 @@ class MarkdownProcessor
                current_line = line
                current_block = root
                while current_line != null do
-                       current_line.kind(self).process(self)
+                       line_kind(current_line.as(not null)).process(self)
                end
                self.in_list = old_mode
                self.current_block = old_root
@@ -206,6 +206,61 @@ class MarkdownProcessor
        # Is the current recursion in list mode?
        # Used when visiting blocks with `recurse`
        private var in_list = false
+
+       # The type of line.
+       # see: `md_line_*`
+       fun line_kind(md: MDLine): Line do
+               var value = md.value
+               var leading = md.leading
+               var trailing = md.trailing
+               if md.is_empty then return new LineEmpty
+               if md.leading > 3 then return new LineCode
+               if value[leading] == '#' then return new LineHeadline
+               if value[leading] == '>' then return new LineBlockquote
+
+               if value.length - leading - trailing > 2 then
+                       if value[leading] == '`' and md.count_chars_start('`') >= 3 then
+                               return new LineFence
+                       end
+                       if value[leading] == '~' and md.count_chars_start('~') >= 3 then
+                               return new LineFence
+                       end
+               end
+
+               if value.length - leading - trailing > 2 and
+                  (value[leading] == '*' or value[leading] == '-' or value[leading] == '_') then
+                  if md.count_chars(value[leading]) >= 3 then
+                               return new LineHR
+                  end
+               end
+
+               if value.length - leading >= 2 and value[leading + 1] == ' ' then
+                       var c = value[leading]
+                       if c == '*' or c == '-' or c == '+' then return new LineUList
+               end
+
+               if value.length - leading >= 3 and value[leading].is_digit then
+                       var i = leading + 1
+                       while i < value.length and value[i].is_digit do i += 1
+                       if i + 1 < value.length and value[i] == '.' and value[i + 1] == ' ' then
+                               return new LineOList
+                       end
+               end
+
+               if value[leading] == '<' and md.check_html then return new LineXML
+
+               var next = md.next
+               if next != null and not next.is_empty then
+                       if next.count_chars('=') > 0 then
+                               return new LineHeadline1
+                       end
+                       if next.count_chars('-') > 0 then
+                               return new LineHeadline2
+                       end
+               end
+               return new LineOther
+       end
+
 end
 
 # Emit output corresponding to blocks content.
@@ -332,6 +387,7 @@ class LinkRef
        # Is the link an abreviation?
        var is_abbrev = false
 
+       # Create a link with a title.
        init with_title(link: String, title: nullable String) do
                self.link = link
                self.title = title
@@ -746,7 +802,7 @@ class MDBlock
                var line = first_line
                while line != null do
                        if not line.is_empty then
-                               var kind = line.kind(v)
+                               var kind = v.line_kind(line)
                                if kind isa LineList then
                                        line.value = kind.extract_value(line)
                                else
@@ -859,13 +915,18 @@ end
 class BlockCode
        super Block
 
+       # Number of char to skip at the beginning of the line.
+       #
+       # Block code lines start at 4 spaces.
+       protected var line_start = 4
+
        redef fun emit(v) do v.decorator.add_code(v, self)
 
        redef fun emit_lines(v) do
                var line = block.first_line
                while line != null do
                        if not line.is_empty then
-                               v.decorator.append_code(v, line.value, 4, line.value.length)
+                               v.decorator.append_code(v, line.value, line_start, line.value.length)
                        end
                        v.addn
                        line = line.next
@@ -879,6 +940,9 @@ end
 # this class is only used for typing purposes.
 class BlockFence
        super BlockCode
+
+       # Fence code lines start at 0 spaces.
+       redef var line_start = 0
 end
 
 # A markdown headline.
@@ -935,7 +999,7 @@ abstract class BlockList
                var line = block.first_line
                line = line.next
                while line != null do
-                       var t = line.kind(v)
+                       var t = v.line_kind(line)
                        if t isa LineList or
                           (not line.is_empty and (line.prev_empty and line.leading == 0 and
                           not (t isa LineList))) then
@@ -1047,6 +1111,7 @@ class MDLine
        # Is the next line empty?
        var next_empty: Bool = false is writable
 
+       # Initialize a new MDLine from its string value
        init(value: String) do
                self.value = value
                self.leading = process_leading
@@ -1066,57 +1131,6 @@ class MDLine
                if next != null then next.prev_empty = true
        end
 
-       # The type of line.
-       # see `md_line_*`
-       fun kind(v: MarkdownProcessor): Line do
-               var value = self.value
-               if is_empty then return new LineEmpty
-               if leading > 3 then return new LineCode
-               if value[leading] == '#' then return new LineHeadline
-               if value[leading] == '>' then return new LineBlockquote
-
-               if value.length - leading - trailing > 2 then
-                       if value[leading] == '`' and count_chars_start('`') >= 3 then
-                               return new LineFence
-                       end
-                       if value[leading] == '~' and count_chars_start('~') >= 3 then
-                               return new LineFence
-                       end
-               end
-
-               if value.length - leading - trailing > 2 and
-                  (value[leading] == '*' or value[leading] == '-' or value[leading] == '_') then
-                  if count_chars(value[leading]) >= 3 then
-                               return new LineHR
-                  end
-               end
-
-               if value.length - leading >= 2 and value[leading + 1] == ' ' then
-                       var c = value[leading]
-                       if c == '*' or c == '-' or c == '+' then return new LineUList
-               end
-
-               if value.length - leading >= 3 and value[leading].is_digit then
-                       var i = leading + 1
-                       while i < value.length and value[i].is_digit do i += 1
-                       if i + 1 < value.length and value[i] == '.' and value[i + 1] == ' ' then
-                               return new LineOList
-                       end
-               end
-
-               if value[leading] == '<' and check_html then return new LineXML
-
-               if next != null and not next.is_empty then
-                       if next.count_chars('=') > 0 then
-                               return new LineHeadline1
-                       end
-                       if next.count_chars('-') > 0 then
-                               return new LineHeadline2
-                       end
-               end
-               return new LineOther
-       end
-
        # Number or leading spaces on this line.
        var leading: Int = 0 is writable
 
@@ -1304,7 +1318,7 @@ class LineOther
                # go to block end
                var was_empty = line.prev_empty
                while line != null and not line.is_empty do
-                       var t = line.kind(v)
+                       var t = v.line_kind(line)
                        if v.in_list and t isa LineList then
                                break
                        end
@@ -1318,7 +1332,6 @@ class LineOther
                        line = line.next
                end
                # build block
-               var bk: Block
                if line != null and not line.is_empty then
                        var block = v.current_block.split(line.prev.as(not null))
                        if v.in_list and not was_empty then
@@ -1352,7 +1365,7 @@ class LineCode
        redef fun process(v) do
                var line = v.current_line
                # lookup block end
-               while line != null and (line.is_empty or line.kind(v) isa LineCode) do
+               while line != null and (line.is_empty or v.line_kind(line) isa LineCode) do
                        line = line.next
                end
                # split at block end line
@@ -1393,7 +1406,7 @@ class LineBlockquote
                while line != null do
                        if not line.is_empty and (line.prev_empty and
                           line.leading == 0 and
-                          not line.kind(v) isa LineBlockquote) then break
+                          not v.line_kind(line) isa LineBlockquote) then break
                        line = line.next
                end
                # build sub block
@@ -1435,7 +1448,7 @@ class LineFence
                # go to fence end
                var line = v.current_line.next
                while line != null do
-                       if line.kind(v) isa LineFence then break
+                       if v.line_kind(line) isa LineFence then break
                        line = line.next
                end
                if line != null then
@@ -1450,7 +1463,8 @@ class LineFence
                end
                block.kind = new BlockFence(block)
                block.first_line.clear
-               if block.last_line.kind(v) isa LineFence then
+               var last = block.last_line
+               if last != null and v.line_kind(last) isa LineFence then
                        block.last_line.clear
                end
                block.remove_surrounding_empty_lines
@@ -1522,7 +1536,7 @@ class LineList
                var line = v.current_line
                # go to list end
                while line != null do
-                       var t = line.kind(v)
+                       var t = v.line_kind(line)
                        if not line.is_empty and (line.prev_empty and line.leading == 0 and
                           not t isa LineList) then break
                        line = line.next
@@ -1555,6 +1569,7 @@ class LineList
        # Create a new block kind based on this line.
        protected fun block_kind(block: MDBlock): BlockList is abstract
 
+       # Extract string value from `MDLine`.
        protected fun extract_value(line: MDLine): String is abstract
 end
 
@@ -1957,7 +1972,6 @@ redef class Text
                var c0: Char
                var c1: Char
                var c2: Char
-               var c3: Char
 
                if pos > 0 then
                        c0 = self[pos - 1]
@@ -1976,11 +1990,6 @@ redef class Text
                else
                        c2 = ' '
                end
-               if pos + 3 < length then
-                       c3 = self[pos + 3]
-               else
-                       c3 = ' '
-               end
 
                if c == '*' then
                        if c1 == '*' then
index f3c1252..dd7fd58 100644 (file)
@@ -448,6 +448,63 @@ end tell
                assert res == exp
        end
 
+       fun test_process_code3 do
+               var test = """
+Here is an example of AppleScript:
+~~~
+tell application "Foo"
+    beep
+end tell
+
+<div class="footer">
+    &copy; 2004 Foo Corporation
+</div>
+~~~
+"""
+               var exp = """
+<p>Here is an example of AppleScript:</p>
+<pre><code>tell application "Foo"
+    beep
+end tell
+
+&lt;div class="footer"&gt;
+    &amp;copy; 2004 Foo Corporation
+&lt;/div&gt;
+</code></pre>
+"""
+               var res = test.md_to_html.write_to_string
+               assert res == exp
+       end
+
+       fun test_process_code4 do
+               var test = """
+Here is an example of AppleScript:
+```
+tell application "Foo"
+    beep
+end tell
+
+<div class="footer">
+    &copy; 2004 Foo Corporation
+</div>
+```
+"""
+               var exp = """
+<p>Here is an example of AppleScript:</p>
+<pre><code>tell application "Foo"
+    beep
+end tell
+
+&lt;div class="footer"&gt;
+    &amp;copy; 2004 Foo Corporation
+&lt;/div&gt;
+</code></pre>
+"""
+               var res = test.md_to_html.write_to_string
+               assert res == exp
+       end
+
+
        fun test_process_nesting1 do
                var test = """
 > ## This is a header.
@@ -2394,51 +2451,51 @@ class TestLine
        fun test_line_type do
                var v = new MarkdownProcessor
                subject = new MDLine("")
-               assert subject.kind(v) isa LineEmpty
+               assert v.line_kind(subject) isa LineEmpty
                subject = new MDLine("    ")
-               assert subject.kind(v) isa LineEmpty
+               assert v.line_kind(subject) isa LineEmpty
                subject = new MDLine("text   ")
-               assert subject.kind(v) isa LineOther
+               assert v.line_kind(subject) isa LineOther
                subject = new MDLine("  # Title")
-               assert subject.kind(v) isa LineHeadline
+               assert v.line_kind(subject) isa LineHeadline
                subject = new MDLine("  ### Title")
-               assert subject.kind(v) isa LineHeadline
+               assert v.line_kind(subject) isa LineHeadline
                subject = new MDLine("    code")
-               assert subject.kind(v) isa LineCode
+               assert v.line_kind(subject) isa LineCode
                subject = new MDLine("  ~~~")
-               assert subject.kind(v) isa LineFence
+               assert v.line_kind(subject) isa LineFence
                subject = new MDLine("  ```")
-               assert subject.kind(v) isa LineFence
+               assert v.line_kind(subject) isa LineFence
                subject = new MDLine("   Title  ")
                subject.next = new MDLine("== ")
-               assert subject.kind(v) isa LineHeadline1
+               assert v.line_kind(subject) isa LineHeadline1
                subject = new MDLine("   Title  ")
                subject.next = new MDLine("-- ")
-               assert subject.kind(v) isa LineHeadline2
+               assert v.line_kind(subject) isa LineHeadline2
                subject = new MDLine("  *    *   * ")
-               assert subject.kind(v) isa LineHR
+               assert v.line_kind(subject) isa LineHR
                subject = new MDLine("  *** ")
-               assert subject.kind(v) isa LineHR
+               assert v.line_kind(subject) isa LineHR
                subject = new MDLine("- -- ")
-               assert subject.kind(v) isa LineHR
+               assert v.line_kind(subject) isa LineHR
                subject = new MDLine("--------- ")
-               assert subject.kind(v) isa LineHR
+               assert v.line_kind(subject) isa LineHR
                subject = new MDLine(" >")
-               assert subject.kind(v) isa LineBlockquote
+               assert v.line_kind(subject) isa LineBlockquote
                subject = new MDLine("<p></p>")
-               assert subject.kind(v) isa LineXML
+               assert v.line_kind(subject) isa LineXML
                subject = new MDLine("<p>")
-               assert subject.kind(v) isa LineOther
+               assert v.line_kind(subject) isa LineOther
                subject = new MDLine("  * foo")
-               assert subject.kind(v) isa LineUList
+               assert v.line_kind(subject) isa LineUList
                subject = new MDLine("- foo")
-               assert subject.kind(v) isa LineUList
+               assert v.line_kind(subject) isa LineUList
                subject = new MDLine("+ foo")
-               assert subject.kind(v) isa LineUList
+               assert v.line_kind(subject) isa LineUList
                subject = new MDLine("1. foo")
-               assert subject.kind(v) isa LineOList
+               assert v.line_kind(subject) isa LineOList
                subject = new MDLine("   11111. foo")
-               assert subject.kind(v) isa LineOList
+               assert v.line_kind(subject) isa LineOList
        end
 
        fun test_count_chars do
index e1d2e73..440187a 100644 (file)
@@ -19,6 +19,7 @@ module linux_app
 import mnit
 import sdl
 import linux_opengles1
+import linux
 
 in "C" `{
        #include <EGL/egl.h>
diff --git a/misc/jenkins/listnit.sh b/misc/jenkins/listnit.sh
new file mode 100755 (executable)
index 0000000..2d38c2f
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/sh
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This program list git-registered nit files that correspond to real compilable modules.
+# Real modules exclude basic tests and broken files.
+# Note: `make full` is required in order to build potential generated dependencies.
+#
+# With the flag `-I`, the list of required -I options is also generated.
+# Thus, it allows to use the command as arguments of tools.
+#
+#     nitmetrics `./listnit.sh -I`
+
+# Filepaths of modules to exclude (regular expression)
+exclude="parser_abs.nit\|nitcc_lexer0"
+
+# Directories needed for explicit -I options.
+includedirs="src contrib/tnitter/src/ contrib/benitlux/src/ examples/ contrib/wiringPi/lib/"
+
+# Flag -I
+incl=""
+if test "$1" = "-I"; then
+       incl=true
+       shift
+fi
+
+# Get the relative directory to the root of the workdir
+p=`git rev-parse --show-cdup`
+
+# List files
+git ls-files "${p}src/**.nit" "${p}lib/**.nit" "${p}contrib/**.nit" "${p}examples/**.nit" | \
+       grep -v "$exclude" | tee listnit.out
+
+# List -I if needed
+if test -n "$incl"; then
+       for i in $includedirs; do
+               echo "-I $p$i"
+       done
+fi
index e0aceee..219b61a 100644 (file)
@@ -41,7 +41,7 @@ private class ASTPrinterVisitor
                has_eol = true
        end
 
-       var last_current: nullable ANode
+       var last_current: nullable ANode = null
 
        fun write(s: String)
        do
@@ -109,7 +109,7 @@ end
 redef class ANewExpr
        redef fun accept_printer(v)
        do
-               v.write("new {mtype.as(not null)}.{mproperty.as(not null)}")
+               v.write("new {mtype.as(not null)}.{callsite.mproperty}")
                if not n_args.n_exprs.is_empty then
                        v.write("(")
                        v.indent
@@ -128,12 +128,12 @@ redef class ASendExpr
        redef fun accept_printer(v)
        do
                v.enter_visit(n_expr)
-               v.write(".{mproperty.name}")
+               v.write(".{callsite.mproperty.name}")
                if not raw_arguments.is_empty then
                        v.write("(")
                        v.indent
                        var is_first = true
-                       for a in raw_arguments.as(not null) do
+                       for a in raw_arguments do
                                if is_first then is_first = false else v.write(",")
                                v.enter_visit(a)
                        end
index 62c2f60..3f96318 100644 (file)
@@ -77,7 +77,7 @@ THIS_MAKEFILE := $(abspath $(lastword $(MAKEFILE_LIST)))
 NACL_SDK_ROOT ?= $(abspath $(dir $(THIS_MAKEFILE))../../../..)
 
 # Project Build flags
-WARNINGS := -Wall -pedantic -Wno-long-long -Wno-unused-value -Wno-unused-label -Wno-duplicate-decl-specifier -Wno-switch -Wno-embedded-directive
+WARNINGS := -Wno-long-long -Wno-unused-value -Wno-unused-label -Wno-duplicate-decl-specifier -Wno-switch -Wno-embedded-directive
 CXXFLAGS := -pthread $(WARNINGS)
 
 CXXFLAGS += -g -O0 # Debug
index c0a1b2f..73ae262 100644 (file)
@@ -163,6 +163,7 @@ class Nitdoc
 
        private fun classes do
                for mclass in model.mclasses do
+                       if mclass.visibility <= ctx.min_visibility then continue
                        var page = new NitdocClass(ctx, model, mainmodule, mclass)
                        page.render.write_to_file("{ctx.output_dir.to_s}/{page.page_url}")
                end
@@ -170,6 +171,7 @@ class Nitdoc
 
        private fun properties do
                for mproperty in model.mproperties do
+                       if mproperty.visibility <= ctx.min_visibility then continue
                        var page = new NitdocProperty(ctx, model, mainmodule, mproperty)
                        page.render.write_to_file("{ctx.output_dir.to_s}/{page.page_url}")
                end
index 8851413..02de84b 100644 (file)
@@ -1489,14 +1489,16 @@ redef class ASuperExpr
 
        redef fun accept_typing(v)
        do
-               var recvtype = v.anchor
+               var anchor = v.anchor
+               assert anchor != null
+               var recvtype = v.get_variable(self, v.selfvariable)
                assert recvtype != null
                var mproperty = v.mpropdef.mproperty
                if not mproperty isa MMethod then
                        v.error(self, "Error: super only usable in a method")
                        return
                end
-               var superprops = mproperty.lookup_super_definitions(v.mmodule, recvtype)
+               var superprops = mproperty.lookup_super_definitions(v.mmodule, anchor)
                if superprops.length == 0 then
                        if mproperty.is_init and v.mpropdef.is_intro then
                                process_superinit(v)
@@ -1522,14 +1524,16 @@ redef class ASuperExpr
 
        private fun process_superinit(v: TypeVisitor)
        do
-               var recvtype = v.anchor
+               var anchor = v.anchor
+               assert anchor != null
+               var recvtype = v.get_variable(self, v.selfvariable)
                assert recvtype != null
                var mpropdef = v.mpropdef
                assert mpropdef isa MMethodDef
                var mproperty = mpropdef.mproperty
                var superprop: nullable MMethodDef = null
                for msupertype in mpropdef.mclassdef.supertypes do
-                       msupertype = msupertype.anchor_to(v.mmodule, recvtype)
+                       msupertype = msupertype.anchor_to(v.mmodule, anchor)
                        var errcount = v.modelbuilder.toolcontext.error_count
                        var candidate = v.try_get_mproperty_by_name2(self, msupertype, mproperty.name).as(nullable MMethod)
                        if candidate == null then
@@ -1543,7 +1547,7 @@ redef class ASuperExpr
                                v.error(self, "Error: conflicting super constructor to call for {mproperty}: {candidate.full_name}, {superprop.mproperty.full_name}")
                                return
                        end
-                       var candidatedefs = candidate.lookup_definitions(v.mmodule, recvtype)
+                       var candidatedefs = candidate.lookup_definitions(v.mmodule, anchor)
                        if superprop != null and superprop.mproperty == candidate then
                                if superprop == candidatedefs.first then continue
                                candidatedefs.add(superprop)
index e0b81ee..fc0aac1 100644 (file)
@@ -34,4 +34,14 @@ do
        print "I have {model.mmodules.length} modules"
        var mclasses = mainmodule.flatten_mclass_hierarchy
        print "I have also {mclasses.length} classes"
+
+       var meth_cpt = 0
+       for m in mainmodule.in_importation.greaters do
+               for cd in m.mclassdefs do
+                       for pd in cd.mpropdefs do
+                               if pd isa MMethodDef then meth_cpt += 1
+                       end
+               end
+       end
+       print "And {meth_cpt} definitions of methods"
 end
index c782ec0..5f17ed8 100644 (file)
@@ -1,2 +1,3 @@
 init_inherit
 init_linext
+android
index 92405d4..c1dad34 100644 (file)
@@ -1,2 +1,2 @@
-../lib/mnit_linux/linux_app.nit:28,16--31: Redef Error: a virtual type cannot be refined.
-../lib/mnit_linux/linux_app.nit:29,16--29: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:29,16--31: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:30,16--29: Redef Error: a virtual type cannot be refined.
index 92405d4..c1dad34 100644 (file)
@@ -1,2 +1,2 @@
-../lib/mnit_linux/linux_app.nit:28,16--31: Redef Error: a virtual type cannot be refined.
-../lib/mnit_linux/linux_app.nit:29,16--29: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:29,16--31: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:30,16--29: Redef Error: a virtual type cannot be refined.
index 92405d4..c1dad34 100644 (file)
@@ -1,2 +1,2 @@
-../lib/mnit_linux/linux_app.nit:28,16--31: Redef Error: a virtual type cannot be refined.
-../lib/mnit_linux/linux_app.nit:29,16--29: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:29,16--31: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:30,16--29: Redef Error: a virtual type cannot be refined.
index 92405d4..c1dad34 100644 (file)
@@ -1,2 +1,2 @@
-../lib/mnit_linux/linux_app.nit:28,16--31: Redef Error: a virtual type cannot be refined.
-../lib/mnit_linux/linux_app.nit:29,16--29: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:29,16--31: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:30,16--29: Redef Error: a virtual type cannot be refined.
index 92405d4..c1dad34 100644 (file)
@@ -1,2 +1,2 @@
-../lib/mnit_linux/linux_app.nit:28,16--31: Redef Error: a virtual type cannot be refined.
-../lib/mnit_linux/linux_app.nit:29,16--29: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:29,16--31: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:30,16--29: Redef Error: a virtual type cannot be refined.
index 92405d4..c1dad34 100644 (file)
@@ -1,2 +1,2 @@
-../lib/mnit_linux/linux_app.nit:28,16--31: Redef Error: a virtual type cannot be refined.
-../lib/mnit_linux/linux_app.nit:29,16--29: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:29,16--31: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:30,16--29: Redef Error: a virtual type cannot be refined.
diff --git a/tests/sav/nitg-g/fixme/test_platform_android.res b/tests/sav/nitg-g/fixme/test_platform_android.res
new file mode 100644 (file)
index 0000000..4ad3dc3
--- /dev/null
@@ -0,0 +1 @@
+UNDEFINED
diff --git a/tests/sav/nitg-s/fixme/sensors.res b/tests/sav/nitg-s/fixme/sensors.res
new file mode 100644 (file)
index 0000000..4ad3dc3
--- /dev/null
@@ -0,0 +1 @@
+UNDEFINED
diff --git a/tests/sav/nitg-sg/fixme/sensors.res b/tests/sav/nitg-sg/fixme/sensors.res
new file mode 100644 (file)
index 0000000..4ad3dc3
--- /dev/null
@@ -0,0 +1 @@
+UNDEFINED
index 92405d4..c1dad34 100644 (file)
@@ -1,2 +1,2 @@
-../lib/mnit_linux/linux_app.nit:28,16--31: Redef Error: a virtual type cannot be refined.
-../lib/mnit_linux/linux_app.nit:29,16--29: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:29,16--31: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:30,16--29: Redef Error: a virtual type cannot be refined.
index 92405d4..c1dad34 100644 (file)
@@ -1,2 +1,2 @@
-../lib/mnit_linux/linux_app.nit:28,16--31: Redef Error: a virtual type cannot be refined.
-../lib/mnit_linux/linux_app.nit:29,16--29: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:29,16--31: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:30,16--29: Redef Error: a virtual type cannot be refined.
index 92405d4..c1dad34 100644 (file)
@@ -1,2 +1,2 @@
-../lib/mnit_linux/linux_app.nit:28,16--31: Redef Error: a virtual type cannot be refined.
-../lib/mnit_linux/linux_app.nit:29,16--29: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:29,16--31: Redef Error: a virtual type cannot be refined.
+../lib/mnit_linux/linux_app.nit:30,16--29: Redef Error: a virtual type cannot be refined.
index 6624329..d2b473f 100644 (file)
@@ -1,3 +1,4 @@
 It works
 I have 1 modules
 I have also 7 classes
+And 17 definitions of methods