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