Sha256: f31609ef159eb1cca3d5267a71edb039e4faccf7feef9c8b72a40a5801cf3ed7
Contents?: true
Size: 824 Bytes
Versions: 10
Compression:
Stored size: 824 Bytes
Contents
# # A simple calculator, version 3. # class Calculator3 prechigh nonassoc UMINUS left '*' '/' left '+' '-' preclow options no_result_var rule target : exp | /* none */ { 0 } exp : exp '+' exp { val[0] + val[2] } | exp '-' exp { val[0] - val[2] } | exp '*' exp { val[0] * val[2] } | exp '/' exp { val[0] / val[2] } | '(' exp ')' { val[1] } | '-' NUMBER =UMINUS { -(val[1]) } | NUMBER end ---- header ---- # # generated by racc # require 'calc3.rex' ---- inner ---- ---- footer ---- puts 'sample calc' puts '"q" to quit.' calc = Calculator3.new while true print '>>> '; $stdout.flush str = $stdin.gets.strip break if /q/i === str begin p calc.scan_str(str) rescue ParseError puts 'parse error' end end
Version data entries
10 entries across 10 versions & 4 rubygems