Class: Code
- Inherits:
-
Object
- Object
- Code
- Defined in:
- lib/code.rb,
lib/code/node.rb,
lib/code/error.rb,
lib/code/object.rb,
lib/code/parser.rb,
lib/code/node/if.rb,
lib/code/node/call.rb,
lib/code/node/code.rb,
lib/code/node/list.rb,
lib/code/node/name.rb,
lib/code/parser/if.rb,
lib/code/node/block.rb,
lib/code/node/equal.rb,
lib/code/node/group.rb,
lib/code/node/power.rb,
lib/code/node/range.rb,
lib/code/node/while.rb,
lib/code/node/number.rb,
lib/code/node/rescue.rb,
lib/code/node/string.rb,
lib/code/object/list.rb,
lib/code/parser/call.rb,
lib/code/parser/code.rb,
lib/code/parser/list.rb,
lib/code/parser/name.rb,
lib/code/node/boolean.rb,
lib/code/node/defined.rb,
lib/code/node/nothing.rb,
lib/code/node/ternary.rb,
lib/code/object/range.rb,
lib/code/parser/equal.rb,
lib/code/parser/group.rb,
lib/code/parser/power.rb,
lib/code/parser/range.rb,
lib/code/parser/shift.rb,
lib/code/parser/while.rb,
lib/code/node/function.rb,
lib/code/node/negation.rb,
lib/code/object/number.rb,
lib/code/object/string.rb,
lib/code/parser/number.rb,
lib/code/parser/rescue.rb,
lib/code/parser/string.rb,
lib/code/node/operation.rb,
lib/code/node/statement.rb,
lib/code/object/boolean.rb,
lib/code/object/decimal.rb,
lib/code/object/integer.rb,
lib/code/object/nothing.rb,
lib/code/parser/boolean.rb,
lib/code/parser/defined.rb,
lib/code/parser/nothing.rb,
lib/code/parser/ternary.rb,
lib/code/node/or_keyword.rb,
lib/code/object/argument.rb,
lib/code/object/function.rb,
lib/code/parser/addition.rb,
lib/code/parser/equality.rb,
lib/code/parser/function.rb,
lib/code/parser/negation.rb,
lib/code/node/dictionnary.rb,
lib/code/node/if_modifier.rb,
lib/code/node/not_keyword.rb,
lib/code/node/unary_minus.rb,
lib/code/parser/statement.rb,
lib/code/node/chained_call.rb,
lib/code/parser/bitwise_or.rb,
lib/code/parser/or_keyword.rb,
lib/code/node/base_2_number.rb,
lib/code/node/base_8_number.rb,
lib/code/node/call_argument.rb,
lib/code/object/dictionnary.rb,
lib/code/parser/bitwise_and.rb,
lib/code/parser/dictionnary.rb,
lib/code/parser/if_modifier.rb,
lib/code/parser/not_keyword.rb,
lib/code/parser/or_operator.rb,
lib/code/parser/unary_minus.rb,
lib/code/node/base_10_number.rb,
lib/code/node/base_16_number.rb,
lib/code/parser/and_operator.rb,
lib/code/parser/greater_than.rb,
lib/code/node/base_10_decimal.rb,
lib/code/node/base_10_integer.rb,
lib/code/parser/multiplication.rb,
lib/code/node/function_argument.rb,
lib/code/node/dictionnary_key_value.rb,
lib/code/node/keyword_call_argument.rb,
lib/code/node/regular_call_argument.rb,
lib/code/node/keyword_function_argument.rb,
lib/code/node/regular_function_argument.rb
Defined Under Namespace
Classes: Error, Node, Object, Parser
Class Method Summary collapse
Instance Method Summary collapse
- #evaluate(context = "") ⇒ Object
-
#initialize(input, io: $stdout, timeout: 10) ⇒ Code
constructor
A new instance of Code.
Constructor Details
Class Method Details
.evaluate(input, context = "", io: $stdout, timeout: 10) ⇒ Object
10 11 12 |
# File 'lib/code.rb', line 10 def self.evaluate(input, context = "", io: $stdout, timeout: 10) new(input, io: io, timeout: timeout).evaluate(context) end |
Instance Method Details
#evaluate(context = "") ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/code.rb', line 14 def evaluate(context = "") Timeout.timeout(@timeout) do if context.present? context = ::Code.evaluate(context, timeout: @timeout) else context = ::Code::Object::Dictionnary.new end ::Code::Node::Code.new(parsed).evaluate(context: context, io: @io) end end |