Module: Rjq

Defined in:
lib/rjq.rb,
lib/rjq/vm.rb,
lib/rjq/ast.rb,
lib/rjq/cli.rb,
lib/rjq/path.rb,
lib/rjq/color.rb,
lib/rjq/lexer.rb,
lib/rjq/value.rb,
lib/rjq/errors.rb,
lib/rjq/number.rb,
lib/rjq/parser.rb,
lib/rjq/modules.rb,
lib/rjq/opcodes.rb,
lib/rjq/runtime.rb,
lib/rjq/version.rb,
lib/rjq/builtins.rb,
lib/rjq/compiler.rb,
lib/rjq/json/dumper.rb,
lib/rjq/json/parser.rb,
lib/rjq/module_loader.rb,
lib/rjq/math_functions.rb,
lib/rjq/json/input_buffer.rb,
lib/rjq/semantic_analyzer.rb,
lib/rjq/json/stream_parser.rb

Defined Under Namespace

Modules: AST, AssignmentSentinel, Builtins, Color, JSON, MathFunctions, Opcodes, Path, Value Classes: BreakSignal, BytecodeBlock, BytecodeCompiler, BytecodeFilter, BytecodeFunctionDefinition, CLI, CompileError, CompiledProgram, Compiler, ConstantEvaluator, Error, ErrorValue, HaltError, Instruction, InvalidPathError, JSONParseError, Lexer, ModuleLoader, ModuleResolver, Number, ParseError, Parser, Program, ResourceLimitError, Runtime, RuntimeError, SemanticAnalyzer, SourceFragment, TailCall, Token, TypeError, VM

Constant Summary collapse

Modules =
ModuleResolver
VERSION =
'0.1.0'

Class Method Summary collapse

Class Method Details

.compile(filter_string, opts = {}) ⇒ Object



28
29
30
# File 'lib/rjq.rb', line 28

def compile(filter_string, opts = {})
  Compiler.new(opts).compile(filter_string)
end

.run(filter_string, input_value, opts = {}) ⇒ Object



32
33
34
35
# File 'lib/rjq.rb', line 32

def run(filter_string, input_value, opts = {})
  Runtime.validate_options!(opts)
  compile(filter_string, Compiler.options_from(opts)).run(input_value, opts)
end

.run_stream(filter_string, io:, opts: {}, &block) ⇒ Object



37
38
39
# File 'lib/rjq.rb', line 37

def run_stream(filter_string, io:, opts: {}, &block)
  Runtime.new(filter_string, opts).run_stream(io, &block)
end