myco 0.1.9 → 0.1.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/lib/myco/bootstrap.my.rb +50 -14
  3. data/lib/myco/bootstrap/add_method.rb +5 -5
  4. data/lib/myco/bootstrap/meme.rb +2 -1
  5. data/lib/myco/code_tools/AST.my.rb +211 -43
  6. data/lib/myco/code_tools/AST/ArgumentAssembly.my.rb +92 -48
  7. data/lib/myco/code_tools/AST/ArrayAssembly.my.rb +39 -27
  8. data/lib/myco/code_tools/AST/Block.my.rb +176 -112
  9. data/lib/myco/code_tools/AST/BlockArgument.my.rb +29 -17
  10. data/lib/myco/code_tools/AST/BlockLiteral.my.rb +37 -17
  11. data/lib/myco/code_tools/AST/BlockParameter.my.rb +25 -9
  12. data/lib/myco/code_tools/AST/BranchOperator.my.rb +95 -75
  13. data/lib/myco/code_tools/AST/ConstantAccess.my.rb +52 -32
  14. data/lib/myco/code_tools/AST/ConstantAssignment.my.rb +52 -36
  15. data/lib/myco/code_tools/AST/ConstantDefine.my.rb +50 -26
  16. data/lib/myco/code_tools/AST/DeclareCategory.my.rb +38 -18
  17. data/lib/myco/code_tools/AST/DeclareExtension.my.rb +29 -13
  18. data/lib/myco/code_tools/AST/DeclareFile.my.rb +51 -31
  19. data/lib/myco/code_tools/AST/DeclareMeme.my.rb +96 -68
  20. data/lib/myco/code_tools/AST/DeclareObject.my.rb +66 -42
  21. data/lib/myco/code_tools/AST/DeclareString.my.rb +39 -19
  22. data/lib/myco/code_tools/AST/DeclaredScope.my.rb +92 -64
  23. data/lib/myco/code_tools/AST/Invoke.my +8 -4
  24. data/lib/myco/code_tools/AST/Invoke.my.rb +74 -31
  25. data/lib/myco/code_tools/AST/InvokeMethod.my.rb +34 -14
  26. data/lib/myco/code_tools/AST/KeywordAssembly.my.rb +36 -24
  27. data/lib/myco/code_tools/AST/KeywordOptionalParameter.my.rb +28 -8
  28. data/lib/myco/code_tools/AST/KeywordRequiredParameter.my.rb +23 -7
  29. data/lib/myco/code_tools/AST/KeywordRestParameter.my.rb +23 -7
  30. data/lib/myco/code_tools/AST/LocalVariableAccessAmbiguous.my.rb +24 -12
  31. data/lib/myco/code_tools/AST/LocalVariableAssignment.my.rb +30 -10
  32. data/lib/myco/code_tools/AST/Node.my.rb +234 -102
  33. data/lib/myco/code_tools/AST/NumericLiteral.my.rb +18 -6
  34. data/lib/myco/code_tools/AST/OptionalParameter.my.rb +33 -13
  35. data/lib/myco/code_tools/AST/ParameterAssembly.my.rb +275 -211
  36. data/lib/myco/code_tools/AST/PipeOperator.my.rb +42 -18
  37. data/lib/myco/code_tools/AST/Quest.my.rb +65 -37
  38. data/lib/myco/code_tools/AST/RequiredParameter.my.rb +20 -4
  39. data/lib/myco/code_tools/AST/RestParameter.my.rb +20 -4
  40. data/lib/myco/code_tools/AST/Script.my.rb +51 -23
  41. data/lib/myco/code_tools/AST/Sequence.my.rb +22 -10
  42. data/lib/myco/code_tools/AST/SplatValue.my.rb +28 -16
  43. data/lib/myco/code_tools/AST/StringCompose.my.rb +23 -11
  44. data/lib/myco/code_tools/AST/StringLiteral.my.rb +19 -7
  45. data/lib/myco/code_tools/AST/SymbolCompose.my.rb +27 -15
  46. data/lib/myco/code_tools/AST/SymbolLiteral.my.rb +18 -6
  47. data/lib/myco/code_tools/AST/ToRuby.my.rb +581 -341
  48. data/lib/myco/code_tools/AST/misc.my.rb +87 -35
  49. data/lib/myco/code_tools/Parser.my.rb +39 -12
  50. data/lib/myco/code_tools/parser/MycoBuilder.my.rb +106 -90
  51. data/lib/myco/code_tools/parser/MycoCharacterClasses.my.rb +98 -50
  52. data/lib/myco/code_tools/parser/MycoGrammar.my +1 -6
  53. data/lib/myco/code_tools/parser/MycoGrammar.my.rb +2124 -1710
  54. data/lib/myco/code_tools/parser/MycoTokens.my +0 -5
  55. data/lib/myco/code_tools/parser/MycoTokens.my.rb +387 -156
  56. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces.my.rb +55 -11
  57. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeHelpers.my.rb +321 -205
  58. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Capture.my.rb +223 -127
  59. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Common.my.rb +188 -72
  60. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Common/Parser.my +48 -0
  61. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Common/Parser.my.rb +365 -189
  62. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Composite.my.rb +313 -233
  63. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Grammar.my.rb +99 -55
  64. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Processor.my.rb +493 -325
  65. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Stream.my.rb +138 -114
  66. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Stream/Parser.my.rb +56 -44
  67. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/String.my.rb +173 -93
  68. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/String/Parser.my.rb +90 -70
  69. data/lib/myco/command.my.rb +85 -25
  70. data/lib/myco/command/inoculate.my.rb +219 -127
  71. data/lib/myco/core.my.rb +20 -4
  72. data/lib/myco/core/BasicDecorators.my.rb +211 -119
  73. data/lib/myco/core/BasicObject.my.rb +108 -44
  74. data/lib/myco/core/Category.my.rb +37 -13
  75. data/lib/myco/core/Decorator.my.rb +35 -27
  76. data/lib/myco/core/FileToplevel.my.rb +55 -27
  77. data/lib/myco/core/Loop.my.rb +16 -8
  78. data/lib/myco/core/Object.my.rb +34 -14
  79. data/lib/myco/core/Ruby.my.rb +13 -5
  80. data/lib/myco/core/Switch.my.rb +79 -47
  81. data/lib/myco/tools/BasicCommand.my.rb +79 -47
  82. data/lib/myco/tools/mycompile.my.rb +153 -69
  83. data/lib/myco/version.rb +1 -1
  84. metadata +34 -52
  85. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Parser.my +0 -144
  86. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Parser.my.rb +0 -221
  87. data/lib/myco/code_tools/parser/pegleromyces/spec/BasicSpec.my +0 -35
  88. data/lib/myco/code_tools/parser/pegleromyces/spec/BasicSpec.my.rb +0 -35
  89. data/lib/myco/code_tools/parser/pegleromyces/spec/Grammar.test.my +0 -10
  90. data/lib/myco/code_tools/parser/pegleromyces/spec/Grammar.test.my.rb +0 -9
  91. data/lib/myco/code_tools/parser/pegleromyces/spec/Patterns.test.my +0 -162
  92. data/lib/myco/code_tools/parser/pegleromyces/spec/Patterns.test.my.rb +0 -353
  93. data/lib/myco/code_tools/parser/pegleromyces/spec/Processor.test.my +0 -10
  94. data/lib/myco/code_tools/parser/pegleromyces/spec/Processor.test.my.rb +0 -9
  95. data/lib/myco/code_tools/parser/pegleromyces/spec/Stream/Parser.test.my +0 -49
  96. data/lib/myco/code_tools/parser/pegleromyces/spec/Stream/Parser.test.my.rb +0 -119
  97. data/lib/myco/code_tools/parser/pegleromyces/spec/Stream/Patterns.test.my +0 -131
  98. data/lib/myco/code_tools/parser/pegleromyces/spec/Stream/Patterns.test.my.rb +0 -595
  99. data/lib/myco/code_tools/parser/pegleromyces/spec/String/Parser.test.my +0 -120
  100. data/lib/myco/code_tools/parser/pegleromyces/spec/String/Parser.test.my.rb +0 -350
  101. data/lib/myco/code_tools/parser/pegleromyces/spec/run.my +0 -14
  102. data/lib/myco/code_tools/parser/pegleromyces/spec/run.my.rb +0 -12
@@ -26,11 +26,6 @@ MycoTokens: Pegleromyces::Grammar {
26
26
  token constant: C.upper + C.alnum.*
27
27
  token identifier: C.lower + C.alnum.* + C.suffix.-
28
28
  token symbol: str(':') + (C.lower / C.upper) + C.alnum.* + C.suffix.-
29
- token null: str('null')
30
- token void: str('void')
31
- token true: str('true')
32
- token false: str('false')
33
- token self: str('self')
34
29
  token float: str('-').- + C.num.+ + str('.') + C.num.+
35
30
  token integer: str('-').- + C.num.+
36
31
 
@@ -4,171 +4,402 @@
4
4
  .tap { |__c__| __c__.__last__ = __c__.component_eval {(
5
5
  ::Myco.cscope.for_method_definition::C = (::Myco.find_constant(:MycoCharacterClasses))
6
6
  __category__(:main).component_eval {(
7
- declare_meme(:const_sep, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str(","))}
8
- declare_meme(:expr_sep, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str(";").__send__(
9
- :/,
10
- ::Myco.find_constant(:C).nl
11
- ))}
12
- declare_meme(:arg_sep, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str(",").__send__(
13
- :/,
14
- ::Myco.find_constant(:C).nl
15
- ))}
16
- declare_meme(:declare_begin, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("{"))}
17
- declare_meme(:declare_end, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("}").__send__(
18
- :/,
19
- ::Myco.find_constant(:C).eof
20
- ))}
21
- declare_meme(:meme_mark, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str(":"))}
22
- declare_meme(:meme_begin, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("{"))}
23
- declare_meme(:meme_end, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("}"))}
24
- declare_meme(:paren_begin, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("("))}
25
- declare_meme(:paren_end, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str(")"))}
26
- declare_meme(:define, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("<"))}
27
- declare_meme(:reopen, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("<<"))}
28
- declare_meme(:params_begin, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("|"))}
29
- declare_meme(:params_end, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("|"))}
30
- declare_meme(:args_begin, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("("))}
31
- declare_meme(:args_end, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str(")"))}
32
- declare_meme(:array_begin, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("["))}
33
- declare_meme(:array_end, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("]"))}
34
- declare_meme(:constant, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (::Myco.find_constant(:C).upper.__send__(
35
- :+,
36
- ::Myco.find_constant(:C).alnum.__send__(:*)
37
- ))}
38
- declare_meme(:identifier, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (::Myco.find_constant(:C).lower.__send__(
39
- :+,
40
- ::Myco.find_constant(:C).alnum.__send__(:*)
41
- ).__send__(
42
- :+,
43
- ::Myco.find_constant(:C).suffix.__send__(:-)
44
- ))}
45
- declare_meme(:symbol, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str(":").__send__(
46
- :+,
47
- ::Myco.find_constant(:C).lower.__send__(
7
+ declare_meme(
8
+ :const_sep,
9
+ [:token],
10
+ ::Object::Proc.new { |*| (self.str(","))}
11
+ )
12
+ declare_meme(
13
+ :expr_sep,
14
+ [:token],
15
+ ::Object::Proc.new { |*| (self.str(";").__send__(
48
16
  :/,
49
- ::Myco.find_constant(:C).upper
50
- )
51
- ).__send__(
52
- :+,
53
- ::Myco.find_constant(:C).alnum.__send__(:*)
54
- ).__send__(
55
- :+,
56
- ::Myco.find_constant(:C).suffix.__send__(:-)
57
- ))}
58
- declare_meme(:null, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("null"))}
59
- declare_meme(:void, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("void"))}
60
- declare_meme(:true, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("true"))}
61
- declare_meme(:false, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("false"))}
62
- declare_meme(:self, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("self"))}
63
- declare_meme(:float, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("-").__send__(:-).__send__(
64
- :+,
65
- ::Myco.find_constant(:C).num.__send__(:+)
66
- ).__send__(
67
- :+,
68
- self.str(".")
69
- ).__send__(
70
- :+,
71
- ::Myco.find_constant(:C).num.__send__(:+)
72
- ))}
73
- declare_meme(:integer, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("-").__send__(:-).__send__(
74
- :+,
75
- ::Myco.find_constant(:C).num.__send__(:+)
76
- ))}
77
- declare_meme(:dot, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("."))}
78
- declare_meme(:quest, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str(".").__send__(
79
- :+,
80
- self.str("?")
81
- ))}
82
- declare_meme(:scope, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("::"))}
83
- declare_meme(:assign, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("="))}
84
- declare_meme(:op_toproc, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("&"))}
85
- declare_meme(:op_not, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("!"))}
86
- declare_meme(:op_plus, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("+"))}
87
- declare_meme(:op_minus, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("-"))}
88
- declare_meme(:op_mult, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("*"))}
89
- declare_meme(:op_div, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("/"))}
90
- declare_meme(:op_mod, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("%"))}
91
- declare_meme(:op_exp, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("**"))}
92
- declare_meme(:op_and, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("&&"))}
93
- declare_meme(:op_or, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("||"))}
94
- declare_meme(:op_and_q, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("&?"))}
95
- declare_meme(:op_or_q, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("|?"))}
96
- declare_meme(:op_void_q, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("??"))}
97
- declare_meme(:op_compare, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("<=>").__send__(
98
- :/,
99
- self.str("=~")
100
- ).__send__(
101
- :/,
102
- self.str("==")
103
- ).__send__(
104
- :/,
105
- self.str("<=")
106
- ).__send__(
107
- :/,
108
- self.str(">=")
109
- ).__send__(
110
- :/,
111
- self.str("<")
112
- ).__send__(
113
- :/,
114
- self.str(">")
115
- ))}
116
- declare_meme(:op_r_pipe, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("|>"))}
117
- declare_meme(:string_norm, [], nil, ::Myco.cscope.dup) { |*| (self.set("\\\"").__send__(:!).__send__(
118
- :+,
119
- self.any
120
- ))}
121
- declare_meme(:string_body, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.string_norm.__send__(:*).__send__(
122
- :+,
123
- self.str("\\").__send__(
17
+ ::Myco.find_constant(:C).nl
18
+ ))}
19
+ )
20
+ declare_meme(
21
+ :arg_sep,
22
+ [:token],
23
+ ::Object::Proc.new { |*| (self.str(",").__send__(
24
+ :/,
25
+ ::Myco.find_constant(:C).nl
26
+ ))}
27
+ )
28
+ declare_meme(
29
+ :declare_begin,
30
+ [:token],
31
+ ::Object::Proc.new { |*| (self.str("{"))}
32
+ )
33
+ declare_meme(
34
+ :declare_end,
35
+ [:token],
36
+ ::Object::Proc.new { |*| (self.str("}").__send__(
37
+ :/,
38
+ ::Myco.find_constant(:C).eof
39
+ ))}
40
+ )
41
+ declare_meme(
42
+ :meme_mark,
43
+ [:token],
44
+ ::Object::Proc.new { |*| (self.str(":"))}
45
+ )
46
+ declare_meme(
47
+ :meme_begin,
48
+ [:token],
49
+ ::Object::Proc.new { |*| (self.str("{"))}
50
+ )
51
+ declare_meme(
52
+ :meme_end,
53
+ [:token],
54
+ ::Object::Proc.new { |*| (self.str("}"))}
55
+ )
56
+ declare_meme(
57
+ :paren_begin,
58
+ [:token],
59
+ ::Object::Proc.new { |*| (self.str("("))}
60
+ )
61
+ declare_meme(
62
+ :paren_end,
63
+ [:token],
64
+ ::Object::Proc.new { |*| (self.str(")"))}
65
+ )
66
+ declare_meme(
67
+ :define,
68
+ [:token],
69
+ ::Object::Proc.new { |*| (self.str("<"))}
70
+ )
71
+ declare_meme(
72
+ :reopen,
73
+ [:token],
74
+ ::Object::Proc.new { |*| (self.str("<<"))}
75
+ )
76
+ declare_meme(
77
+ :params_begin,
78
+ [:token],
79
+ ::Object::Proc.new { |*| (self.str("|"))}
80
+ )
81
+ declare_meme(
82
+ :params_end,
83
+ [:token],
84
+ ::Object::Proc.new { |*| (self.str("|"))}
85
+ )
86
+ declare_meme(
87
+ :args_begin,
88
+ [:token],
89
+ ::Object::Proc.new { |*| (self.str("("))}
90
+ )
91
+ declare_meme(
92
+ :args_end,
93
+ [:token],
94
+ ::Object::Proc.new { |*| (self.str(")"))}
95
+ )
96
+ declare_meme(
97
+ :array_begin,
98
+ [:token],
99
+ ::Object::Proc.new { |*| (self.str("["))}
100
+ )
101
+ declare_meme(
102
+ :array_end,
103
+ [:token],
104
+ ::Object::Proc.new { |*| (self.str("]"))}
105
+ )
106
+ declare_meme(
107
+ :constant,
108
+ [:token],
109
+ ::Object::Proc.new { |*| (::Myco.find_constant(:C).upper.__send__(
124
110
  :+,
125
- self.any
111
+ ::Myco.find_constant(:C).alnum.__send__(:*)
112
+ ))}
113
+ )
114
+ declare_meme(
115
+ :identifier,
116
+ [:token],
117
+ ::Object::Proc.new { |*| (::Myco.find_constant(:C).lower.__send__(
118
+ :+,
119
+ ::Myco.find_constant(:C).alnum.__send__(:*)
126
120
  ).__send__(
127
121
  :+,
128
- self.string_norm.__send__(:*)
129
- ).__send__(:*)
130
- ))}
131
- declare_meme(:string_begin, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("\""))}
132
- declare_meme(:string_end, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("\""))}
133
- declare_meme(:symstr_begin, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str(":\""))}
134
- declare_meme(:sstring_norm, [], nil, ::Myco.cscope.dup) { |*| (self.set("\\'").__send__(:!).__send__(
135
- :+,
136
- self.any
137
- ))}
138
- declare_meme(:sstring_body, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.sstring_norm.__send__(:*).__send__(
139
- :+,
140
- self.str("\\").__send__(
122
+ ::Myco.find_constant(:C).suffix.__send__(:-)
123
+ ))}
124
+ )
125
+ declare_meme(
126
+ :symbol,
127
+ [:token],
128
+ ::Object::Proc.new { |*| (self.str(":").__send__(
141
129
  :+,
142
- self.any
130
+ ::Myco.find_constant(:C).lower.__send__(
131
+ :/,
132
+ ::Myco.find_constant(:C).upper
133
+ )
143
134
  ).__send__(
144
135
  :+,
145
- self.sstring_norm.__send__(:*)
146
- ).__send__(:*)
147
- ))}
148
- declare_meme(:sstring_begin, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("'"))}
149
- declare_meme(:sstring_end, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("'"))}
150
- declare_meme(:catgry_norm, [], nil, ::Myco.cscope.dup) { |*| (self.set("\\[]").__send__(:!).__send__(
151
- :+,
152
- self.any
153
- ))}
154
- declare_meme(:catgry_body, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.catgry_norm.__send__(:*).__send__(
155
- :+,
156
- self.str("\\").__send__(
136
+ ::Myco.find_constant(:C).alnum.__send__(:*)
137
+ ).__send__(
157
138
  :+,
158
- self.any
139
+ ::Myco.find_constant(:C).suffix.__send__(:-)
140
+ ))}
141
+ )
142
+ declare_meme(
143
+ :float,
144
+ [:token],
145
+ ::Object::Proc.new { |*| (self.str("-").__send__(:-).__send__(
146
+ :+,
147
+ ::Myco.find_constant(:C).num.__send__(:+)
148
+ ).__send__(
149
+ :+,
150
+ self.str(".")
151
+ ).__send__(
152
+ :+,
153
+ ::Myco.find_constant(:C).num.__send__(:+)
154
+ ))}
155
+ )
156
+ declare_meme(
157
+ :integer,
158
+ [:token],
159
+ ::Object::Proc.new { |*| (self.str("-").__send__(:-).__send__(
160
+ :+,
161
+ ::Myco.find_constant(:C).num.__send__(:+)
162
+ ))}
163
+ )
164
+ declare_meme(
165
+ :dot,
166
+ [:token],
167
+ ::Object::Proc.new { |*| (self.str("."))}
168
+ )
169
+ declare_meme(
170
+ :quest,
171
+ [:token],
172
+ ::Object::Proc.new { |*| (self.str(".").__send__(
173
+ :+,
174
+ self.str("?")
175
+ ))}
176
+ )
177
+ declare_meme(
178
+ :scope,
179
+ [:token],
180
+ ::Object::Proc.new { |*| (self.str("::"))}
181
+ )
182
+ declare_meme(
183
+ :assign,
184
+ [:token],
185
+ ::Object::Proc.new { |*| (self.str("="))}
186
+ )
187
+ declare_meme(
188
+ :op_toproc,
189
+ [:token],
190
+ ::Object::Proc.new { |*| (self.str("&"))}
191
+ )
192
+ declare_meme(
193
+ :op_not,
194
+ [:token],
195
+ ::Object::Proc.new { |*| (self.str("!"))}
196
+ )
197
+ declare_meme(
198
+ :op_plus,
199
+ [:token],
200
+ ::Object::Proc.new { |*| (self.str("+"))}
201
+ )
202
+ declare_meme(
203
+ :op_minus,
204
+ [:token],
205
+ ::Object::Proc.new { |*| (self.str("-"))}
206
+ )
207
+ declare_meme(
208
+ :op_mult,
209
+ [:token],
210
+ ::Object::Proc.new { |*| (self.str("*"))}
211
+ )
212
+ declare_meme(
213
+ :op_div,
214
+ [:token],
215
+ ::Object::Proc.new { |*| (self.str("/"))}
216
+ )
217
+ declare_meme(
218
+ :op_mod,
219
+ [:token],
220
+ ::Object::Proc.new { |*| (self.str("%"))}
221
+ )
222
+ declare_meme(
223
+ :op_exp,
224
+ [:token],
225
+ ::Object::Proc.new { |*| (self.str("**"))}
226
+ )
227
+ declare_meme(
228
+ :op_and,
229
+ [:token],
230
+ ::Object::Proc.new { |*| (self.str("&&"))}
231
+ )
232
+ declare_meme(
233
+ :op_or,
234
+ [:token],
235
+ ::Object::Proc.new { |*| (self.str("||"))}
236
+ )
237
+ declare_meme(
238
+ :op_and_q,
239
+ [:token],
240
+ ::Object::Proc.new { |*| (self.str("&?"))}
241
+ )
242
+ declare_meme(
243
+ :op_or_q,
244
+ [:token],
245
+ ::Object::Proc.new { |*| (self.str("|?"))}
246
+ )
247
+ declare_meme(
248
+ :op_void_q,
249
+ [:token],
250
+ ::Object::Proc.new { |*| (self.str("??"))}
251
+ )
252
+ declare_meme(
253
+ :op_compare,
254
+ [:token],
255
+ ::Object::Proc.new { |*| (self.str("<=>").__send__(
256
+ :/,
257
+ self.str("=~")
258
+ ).__send__(
259
+ :/,
260
+ self.str("==")
159
261
  ).__send__(
262
+ :/,
263
+ self.str("<=")
264
+ ).__send__(
265
+ :/,
266
+ self.str(">=")
267
+ ).__send__(
268
+ :/,
269
+ self.str("<")
270
+ ).__send__(
271
+ :/,
272
+ self.str(">")
273
+ ))}
274
+ )
275
+ declare_meme(
276
+ :op_r_pipe,
277
+ [:token],
278
+ ::Object::Proc.new { |*| (self.str("|>"))}
279
+ )
280
+ declare_meme(
281
+ :string_norm,
282
+ [],
283
+ ::Object::Proc.new { |*| (self.set("\\\"").__send__(:!).__send__(
284
+ :+,
285
+ self.any
286
+ ))}
287
+ )
288
+ declare_meme(
289
+ :string_body,
290
+ [:token],
291
+ ::Object::Proc.new { |*| (self.string_norm.__send__(:*).__send__(
160
292
  :+,
161
- self.catgry_norm.__send__(:*)
162
- ).__send__(:*)
163
- ))}
164
- declare_meme(:catgry_begin, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("["))}
165
- declare_meme(:catgry_end, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("]"))}
166
- declare_meme(:declstr_norm, [], nil, ::Myco.cscope.dup) { |*| (self.str("@@@").__send__(:!).__send__(
167
- :+,
168
- self.any
169
- ))}
170
- declare_meme(:declstr_body, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.declstr_norm.__send__(:*))}
171
- declare_meme(:declstr_begin, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("@@@"))}
172
- declare_meme(:declstr_end, [[:token, []]], nil, ::Myco.cscope.dup) { |*| (self.str("@@@"))}
293
+ self.str("\\").__send__(
294
+ :+,
295
+ self.any
296
+ ).__send__(
297
+ :+,
298
+ self.string_norm.__send__(:*)
299
+ ).__send__(:*)
300
+ ))}
301
+ )
302
+ declare_meme(
303
+ :string_begin,
304
+ [:token],
305
+ ::Object::Proc.new { |*| (self.str("\""))}
306
+ )
307
+ declare_meme(
308
+ :string_end,
309
+ [:token],
310
+ ::Object::Proc.new { |*| (self.str("\""))}
311
+ )
312
+ declare_meme(
313
+ :symstr_begin,
314
+ [:token],
315
+ ::Object::Proc.new { |*| (self.str(":\""))}
316
+ )
317
+ declare_meme(
318
+ :sstring_norm,
319
+ [],
320
+ ::Object::Proc.new { |*| (self.set("\\'").__send__(:!).__send__(
321
+ :+,
322
+ self.any
323
+ ))}
324
+ )
325
+ declare_meme(
326
+ :sstring_body,
327
+ [:token],
328
+ ::Object::Proc.new { |*| (self.sstring_norm.__send__(:*).__send__(
329
+ :+,
330
+ self.str("\\").__send__(
331
+ :+,
332
+ self.any
333
+ ).__send__(
334
+ :+,
335
+ self.sstring_norm.__send__(:*)
336
+ ).__send__(:*)
337
+ ))}
338
+ )
339
+ declare_meme(
340
+ :sstring_begin,
341
+ [:token],
342
+ ::Object::Proc.new { |*| (self.str("'"))}
343
+ )
344
+ declare_meme(
345
+ :sstring_end,
346
+ [:token],
347
+ ::Object::Proc.new { |*| (self.str("'"))}
348
+ )
349
+ declare_meme(
350
+ :catgry_norm,
351
+ [],
352
+ ::Object::Proc.new { |*| (self.set("\\[]").__send__(:!).__send__(
353
+ :+,
354
+ self.any
355
+ ))}
356
+ )
357
+ declare_meme(
358
+ :catgry_body,
359
+ [:token],
360
+ ::Object::Proc.new { |*| (self.catgry_norm.__send__(:*).__send__(
361
+ :+,
362
+ self.str("\\").__send__(
363
+ :+,
364
+ self.any
365
+ ).__send__(
366
+ :+,
367
+ self.catgry_norm.__send__(:*)
368
+ ).__send__(:*)
369
+ ))}
370
+ )
371
+ declare_meme(
372
+ :catgry_begin,
373
+ [:token],
374
+ ::Object::Proc.new { |*| (self.str("["))}
375
+ )
376
+ declare_meme(
377
+ :catgry_end,
378
+ [:token],
379
+ ::Object::Proc.new { |*| (self.str("]"))}
380
+ )
381
+ declare_meme(
382
+ :declstr_norm,
383
+ [],
384
+ ::Object::Proc.new { |*| (self.str("@@@").__send__(:!).__send__(
385
+ :+,
386
+ self.any
387
+ ))}
388
+ )
389
+ declare_meme(
390
+ :declstr_body,
391
+ [:token],
392
+ ::Object::Proc.new { |*| (self.declstr_norm.__send__(:*))}
393
+ )
394
+ declare_meme(
395
+ :declstr_begin,
396
+ [:token],
397
+ ::Object::Proc.new { |*| (self.str("@@@"))}
398
+ )
399
+ declare_meme(
400
+ :declstr_end,
401
+ [:token],
402
+ ::Object::Proc.new { |*| (self.str("@@@"))}
403
+ )
173
404
  )}
174
405
  )}}.instance))}}.instance