Module: Lucio

Defined in:
lib/lucio/list.rb,
lib/lucio/lucio.rb,
lib/lucio/runner.rb,
lib/lucio/grammar.rb,
lib/lucio/lexicon.rb,
lib/lucio/operators/sum.rb,
lib/lucio/operators/macro.rb,
lib/lucio/operators/division.rb,
lib/lucio/operators/equality.rb,
lib/lucio/operators/operator.rb,
lib/lucio/operators/attribution.rb,
lib/lucio/operators/conditional.rb,
lib/lucio/operators/subtraction.rb,
lib/lucio/operators/multiplication.rb,
bin/repl.rb

Defined Under Namespace

Modules: Operator Classes: Grammar, Lexicon, List, Repl, Runner

Class Method Summary collapse

Class Method Details

.behead(list) ⇒ Object



26
27
28
# File 'lib/lucio/lucio.rb', line 26

def self.behead(list)
  [list[0], list.drop(1)]
end

.eval(str) ⇒ Object



18
19
20
# File 'lib/lucio/lucio.rb', line 18

def self.eval(str)
  parse(str).eval
end

.literal(str) ⇒ Object



22
23
24
# File 'lib/lucio/lucio.rb', line 22

def self.literal(str)
  Lucio.eval(str).to_s
end

.parse(str, debug = false) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/lucio/lucio.rb', line 9

def self.parse(str, debug = false)
  parser = LucioParser.new
  result = parser.parse str

  puts "\n#{parser.failure_reason}" unless result || !debug

  result
end