examples/example.ate in antelope-0.3.2 vs examples/example.ate in antelope-0.4.0
- old
+ new
@@ -1,70 +1,70 @@
-Antelope.define :example, version: "0.0.1", require: "~> 0.3",
- output: :ruby do
- define "output.verbose" => true,
- "output.panic-mode" => true,
- "ruby.error-class" => "SyntaxError",
- "ruby.indent" => 2,
- "salt.variant" => "normal"
-
- terminals do
- # We set the value to true, because the default value in a hash
- # is nil.
- terminal NUMBER: true,
- MULTIPLY: "*",
- EXPONENTIATE: "^",
- DIVIDE: "/",
- ADD: "+",
- SUBTRACT: "-",
- LPAREN: "(",
- RPAREN: ")"
- end
-
- precedences do
- precedence :right, [:EXPONENTIATE]
- precedence :left, [:MULTIPLY, :DIVIDE]
- precedence :left, [:ADD, :SUBTRACT]
- end
-
- productions do
- production :expression do
- match body: [:NUMBER],
- action: %{ match[0][1] }
- match body: [:expression, :EXPONENTIATE, :expression],
- action: %{ match[0] ** match[2] }
- match body: [:expression, :ADD, :expression],
- action: %{ match[0] + match[2] }
- match body: [:expression, :SUBTRACT, :expression],
- action: %{ match[0] - match[2] }
- match body: [:expression, :MULTIPLY, :expression],
- action: %{ match[0] * match[2] }
- match body: [:expression, :DIVIDE, :expression],
- action: %{ match[0] / match[2] }
- match body: [:LPAREN, :expression, :RPAREN],
- action: %{ match[1] }
- match body: [:LPAREN, :$error, :RPAREN],
- action: %{ match[1] }
- end
- end
-
- template <<-RUBY
- class ExampleParser
- %{write}
-
- def type(token)
- token[0]
- end
- end
-
- input = [
- [:LPAREN],
- [:NUMBER, 2],
- [:ADD],
- [:ADD, 2],
- [:RPAREN],
- [:MULTIPLY],
- [:NUMBER, 3]
- ]
-
- p ExampleParser.new.parse(input)
- RUBY
-end
+Antelope.define :example, version: "0.0.1", require: "~> 0.3",
+ output: :ruby do
+ define "output.verbose" => true,
+ "output.panic-mode" => true,
+ "ruby.error-class" => "SyntaxError",
+ "ruby.indent" => 2,
+ "salt.variant" => "normal"
+
+ terminals do
+ # We set the value to true, because the default value in a hash
+ # is nil.
+ terminal NUMBER: true,
+ MULTIPLY: "*",
+ EXPONENTIATE: "^",
+ DIVIDE: "/",
+ ADD: "+",
+ SUBTRACT: "-",
+ LPAREN: "(",
+ RPAREN: ")"
+ end
+
+ precedences do
+ precedence :right, [:EXPONENTIATE]
+ precedence :left, [:MULTIPLY, :DIVIDE]
+ precedence :left, [:ADD, :SUBTRACT]
+ end
+
+ productions do
+ production :expression do
+ match body: [:NUMBER],
+ action: %{ match[0][1] }
+ match body: [:expression, :EXPONENTIATE, :expression],
+ action: %{ match[0] ** match[2] }
+ match body: [:expression, :ADD, :expression],
+ action: %{ match[0] + match[2] }
+ match body: [:expression, :SUBTRACT, :expression],
+ action: %{ match[0] - match[2] }
+ match body: [:expression, :MULTIPLY, :expression],
+ action: %{ match[0] * match[2] }
+ match body: [:expression, :DIVIDE, :expression],
+ action: %{ match[0] / match[2] }
+ match body: [:LPAREN, :expression, :RPAREN],
+ action: %{ match[1] }
+ match body: [:LPAREN, :$error, :RPAREN],
+ action: %{ match[1] }
+ end
+ end
+
+ template <<-RUBY
+ class ExampleParser
+ %{write}
+
+ def type(token)
+ token[0]
+ end
+ end
+
+ input = [
+ [:LPAREN],
+ [:NUMBER, 2],
+ [:ADD],
+ [:ADD, 2],
+ [:RPAREN],
+ [:MULTIPLY],
+ [:NUMBER, 3]
+ ]
+
+ p ExampleParser.new.parse(input)
+ RUBY
+end