Class: Rbsiev::Components
- Inherits:
-
Struct
- Object
- Struct
- Rbsiev::Components
- Defined in:
- lib/rbsiev.rb
Instance Attribute Summary collapse
-
#env ⇒ Object
Returns the value of attribute env.
-
#evaluator ⇒ Object
Returns the value of attribute evaluator.
-
#parser ⇒ Object
Returns the value of attribute parser.
-
#printer ⇒ Object
Returns the value of attribute printer.
Instance Method Summary collapse
- #eval(ast_node) ⇒ Object
- #exec(source) ⇒ Object
- #load(file) ⇒ Object
- #parse(source) ⇒ Object
- #print(value) ⇒ Object
- #version ⇒ Object
Instance Attribute Details
#env ⇒ Object
Returns the value of attribute env
26 27 28 |
# File 'lib/rbsiev.rb', line 26 def env @env end |
#evaluator ⇒ Object
Returns the value of attribute evaluator
26 27 28 |
# File 'lib/rbsiev.rb', line 26 def evaluator @evaluator end |
#parser ⇒ Object
Returns the value of attribute parser
26 27 28 |
# File 'lib/rbsiev.rb', line 26 def parser @parser end |
#printer ⇒ Object
Returns the value of attribute printer
26 27 28 |
# File 'lib/rbsiev.rb', line 26 def printer @printer end |
Instance Method Details
#eval(ast_node) ⇒ Object
31 32 33 |
# File 'lib/rbsiev.rb', line 31 def eval(ast_node) evaluator.eval(ast_node, env) end |
#exec(source) ⇒ Object
39 40 41 |
# File 'lib/rbsiev.rb', line 39 def exec(source) self.print(self.eval(parse(source))) end |
#load(file) ⇒ Object
43 44 45 46 47 |
# File 'lib/rbsiev.rb', line 43 def load(file) raise Error, "Cannot find \"%s\"" % f unless FileTest.exist?(file) source = File.readlines(file, chomp: true).join(" ") self.exec(source) end |
#parse(source) ⇒ Object
27 28 29 |
# File 'lib/rbsiev.rb', line 27 def parse(source) parser.parse(Rbscmlex.lexer(source)) end |
#print(value) ⇒ Object
35 36 37 |
# File 'lib/rbsiev.rb', line 35 def print(value) printer.print(value) end |