Module: Gobstones::Parser
- Includes:
- Lang
- Defined in:
- lib/gobstones/parser/ast/ast.rb,
lib/gobstones/parser/parse_error.rb,
lib/gobstones/parser/treetop_parser.rb
Overview
TODO divide into smaller modules
Defined Under Namespace
Classes: ParseError, TreetopParser
Constant Summary collapse
- RESERVED_IDS =
%w[ if else not True False case of while Skip repeatWith in procedure function return Mover Sacar Poner BOOM IrAlOrigen VaciarTablero div mod hayBolitas nroBolitas puedeMover Norte Sur Este Oeste minBool maxBool minDir maxDir minColor maxColor siguiente previo opuesto Verde Rojo Azul Negro Main ].freeze
Constants included from Lang
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.ast_node(name, &value_block) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/gobstones/parser/ast/ast.rb', line 15 def self.ast_node(name, &value_block) # TODO check if it is better to have classes ast_module = Module.new do define_method(:value) do instance_eval(&value_block) end end const_set name, ast_module end |
Instance Method Details
#create_commands(commands) ⇒ Object
188 189 190 |
# File 'lib/gobstones/parser/ast/ast.rb', line 188 def create_commands(commands) commands.elements.map { |node| node.command.value } end |