Module: Liquidscript

Defined in:
lib/liquidscript.rb,
lib/liquidscript/cli.rb,
lib/liquidscript/icr.rb,
lib/liquidscript/buffer.rb,
lib/liquidscript/errors.rb,
lib/liquidscript/icr/set.rb,
lib/liquidscript/scanner.rb,
lib/liquidscript/version.rb,
lib/liquidscript/compiler.rb,
lib/liquidscript/icr/code.rb,
lib/liquidscript/icr/sexp.rb,
lib/liquidscript/template.rb,
lib/liquidscript/generator.rb,
lib/liquidscript/icr/context.rb,
lib/liquidscript/compiler/icr.rb,
lib/liquidscript/icr/variable.rb,
lib/liquidscript/scanner/base.rb,
lib/liquidscript/compiler/base.rb,
lib/liquidscript/scanner/token.rb,
lib/liquidscript/generator/base.rb,
lib/liquidscript/scanner/base/dsl.rb,
lib/liquidscript/generator/context.rb,
lib/liquidscript/icr/representable.rb,
lib/liquidscript/generator/base/dsl.rb,
lib/liquidscript/scanner/base/lexer.rb,
lib/liquidscript/compiler/base/blank.rb,
lib/liquidscript/compiler/icr/groups.rb,
lib/liquidscript/compiler/base/action.rb,
lib/liquidscript/compiler/icr/classes.rb,
lib/liquidscript/compiler/icr/helpers.rb,
lib/liquidscript/compiler/icr/heredoc.rb,
lib/liquidscript/generator/javascript.rb,
lib/liquidscript/scanner/base/builder.rb,
lib/liquidscript/scanner/base/context.rb,
lib/liquidscript/scanner/liquidscript.rb,
lib/liquidscript/compiler/base/helpers.rb,
lib/liquidscript/compiler/icr/literals.rb,
lib/liquidscript/compiler/base/callable.rb,
lib/liquidscript/compiler/icr/functions.rb,
lib/liquidscript/compiler/icr/directives.rb,
lib/liquidscript/compiler/icr/expressions.rb,
lib/liquidscript/scanner/liquidscript/main.rb,
lib/liquidscript/generator/javascript/metas.rb,
lib/liquidscript/generator/base/replacements.rb,
lib/liquidscript/scanner/liquidscript/regexs.rb,
lib/liquidscript/generator/javascript/objects.rb,
lib/liquidscript/generator/javascript/literals.rb,
lib/liquidscript/scanner/liquidscript/heredocs.rb,
lib/liquidscript/generator/javascript/exceptions.rb,
lib/liquidscript/scanner/liquidscript/interpolations.rb

Defined Under Namespace

Modules: Compiler, Generator, ICR, Scanner Classes: Buffer, CLI, CompileError, DirectiveError, Error, GeneratorError, InvalidCodeError, InvalidReferenceError, NoContextError, SyntaxError, Template, UnexpectedEndError, UnexpectedError, UnknownDirectiveError

Constant Summary collapse

VERSION =

The current version of liquidscript.

"0.11.0".freeze

Class Method Summary collapse

Class Method Details

.compile(data, options = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/liquidscript.rb', line 14

def self.compile(data, options = {})
  scanner = Scanner::Liquidscript.new(data, options[:file])
  if options[:tokens]
    return scanner.each.to_a.to_sexp
  end

  compiler = Compiler::ICR.new(scanner)
  compiler.compile
  if options[:ast]
    return compiler.top.to_sexp
  end

  Generator::Javascript.new(compiler.top).generate
end