Module: Schemurai::VM

Defined in:
lib/schemurai/vm/compiler.rb,
lib/schemurai/vm/evaluator.rb

Defined Under Namespace

Classes: ArrayRules, Compiler, ConditionalRules, Evaluator, NumberRules, ObjectRules, Program, ReferenceRules, StringRules, TypeRules

Constant Summary collapse

MAXIMUM =
1 << 0
MINIMUM =
1 << 1
EXCLUSIVE_MAXIMUM =
1 << 2
EXCLUSIVE_MINIMUM =
1 << 3
MULTIPLE_OF =
1 << 4
TYPE_NULL =
1 << 0
TYPE_BOOLEAN =
1 << 1
TYPE_OBJECT =
1 << 2
TYPE_ARRAY =
1 << 3
TYPE_NUMBER =
1 << 4
TYPE_INTEGER =
1 << 5
TYPE_STRING =
1 << 6
TRACKS_EVALUATION =
1 << 0
TRACKS_DYNAMIC_SCOPE =
1 << 1
KEYWORD_TYPE =
DIALECT::TYPE
KEYWORD_ENUM =
DIALECT::ENUM
KEYWORD_COMBINER =
DIALECT::COMBINER
KEYWORD_NUMBER =
DIALECT::NUMBER
KEYWORD_STRING =
DIALECT::STRING
KEYWORD_ARRAY =
DIALECT::ARRAY
KEYWORD_OBJECT =
DIALECT::OBJECT
TYPE_BITS =
{
  "null" => TYPE_NULL,
  "boolean" => TYPE_BOOLEAN,
  "object" => TYPE_OBJECT,
  "array" => TYPE_ARRAY,
  "number" => TYPE_NUMBER,
  "integer" => TYPE_INTEGER,
  "string" => TYPE_STRING
}.freeze
TYPE_OPCODES =
{
  "null" => :type_null,
  "boolean" => :type_boolean,
  "object" => :type_object,
  "array" => :type_array,
  "number" => :type_number,
  "integer" => :type_integer,
  "string" => :type_string
}.freeze