keyword expressions
and smaller new harness
This commit is contained in:
parent
d5a0736f48
commit
fa27ebebdf
@ -7,16 +7,22 @@ grammar Keywords
|
||||
rule keyword_do 'do' space? end
|
||||
rule keyword_else 'else' space? end
|
||||
rule keyword_end 'end' space? end
|
||||
rule keyword_false 'false' space? end
|
||||
rule keyword_if 'if' space? end
|
||||
rule keyword_rescue 'rescue' space? end
|
||||
rule keyword_return 'return' space? end
|
||||
rule keyword_module 'module' space? end
|
||||
rule keyword_nil 'nil' space? end
|
||||
rule keyword_unless 'unless' space? end
|
||||
rule keyword_until 'until' space? end
|
||||
rule keyword_while 'while' space? end
|
||||
|
||||
rule keyword_nil
|
||||
('nil' space? ){ Ast::NilExpression.new }
|
||||
end
|
||||
|
||||
rule keyword_false
|
||||
('false' space?) { Ast::FalseExpression.new }
|
||||
end
|
||||
|
||||
rule keyword_true
|
||||
('true' space?) { Ast::TrueExpression.new }
|
||||
end
|
||||
@ -28,4 +34,9 @@ grammar Keywords
|
||||
'unless' | 'until' | 'while') space?
|
||||
end
|
||||
|
||||
rule keyword_expression
|
||||
keyword_true | keyword_false | keyword_nil
|
||||
end
|
||||
|
||||
root keyword_expression
|
||||
end
|
||||
|
@ -1,23 +1,35 @@
|
||||
require_relative "../parser_helper"
|
||||
require_relative "../setup"
|
||||
|
||||
class TestBasic < MiniTest::Test
|
||||
# include the magic (setup and parse -> test method translation), see there
|
||||
include ParserHelper
|
||||
#include ParserHelper
|
||||
|
||||
def setup
|
||||
@parser = Keywords
|
||||
end
|
||||
|
||||
def check
|
||||
parse = @parser.parse(@input)
|
||||
assert_equal @input , parse
|
||||
assert_equal @output , parse.value
|
||||
end
|
||||
|
||||
def test_true
|
||||
@input = 'true '
|
||||
@output = Ast::TrueExpression.new()
|
||||
@root = :keyword_true
|
||||
check
|
||||
end
|
||||
def ttest_false
|
||||
|
||||
def test_false
|
||||
@input = 'false '
|
||||
@output = Ast::FalseExpression.new()
|
||||
@root = :basic_type
|
||||
check
|
||||
end
|
||||
def ttest_nil
|
||||
|
||||
def test_nil
|
||||
@input = 'nil '
|
||||
@output = Ast::NilExpression.new()
|
||||
@root = :basic_type
|
||||
check
|
||||
end
|
||||
|
||||
def ttest_number
|
||||
|
Loading…
x
Reference in New Issue
Block a user