remove the keywords citrus file (less clutter)

This commit is contained in:
Torsten Ruger
2015-09-14 17:00:36 +03:00
parent acf4046225
commit 114817602e
5 changed files with 51 additions and 57 deletions

View File

@ -45,6 +45,43 @@ grammar BasicTypes
module_name_expression | string_expression
end
rule keyword_begin 'begin' space* end
rule keyword_class 'class' space* end
rule keyword_def 'def' space* end
rule keyword_do 'do' space* end
rule keyword_else 'else' space* end
rule keyword_end 'end' space* end
rule keyword_if 'if' end
rule keyword_rescue 'rescue' space* end
rule keyword_return 'return' space* end
rule keyword_module 'module' 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
# this rule is just to make sure identifiers can't be keywords. Kind of duplication here, but we need the
# space in above rules, so just make sure to add any here too.
rule keyword ('begin' | 'def' | 'do' | 'else' | 'end' |
'false' | 'if' | 'rescue' | 'true' | 'nil' |
'unless' | 'until' | 'while') space*
end
rule keyword_expression
keyword_true | keyword_false | keyword_nil | basic_expression
end
# Tokens are single or double character combinations with "meaning"
# braces, comman, point, questionmark , quotes, that kind of thing

View File

@ -1,5 +1,5 @@
grammar Expression
include Keywords
include BasicTypes
rule more_args
(comma basic_expression )* {

View File

@ -1,42 +0,0 @@
grammar Keywords
include BasicTypes
rule keyword_begin 'begin' space* end
rule keyword_class 'class' space* end
rule keyword_def 'def' space* end
rule keyword_do 'do' space* end
rule keyword_else 'else' space* end
rule keyword_end 'end' space* end
rule keyword_if 'if' end
rule keyword_rescue 'rescue' space* end
rule keyword_return 'return' space* end
rule keyword_module 'module' 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
# this rule is just to make sure identifiers can't be keywords. Kind of duplication here, but we need the
# space in above rules, so just make sure to add any here too.
rule keyword ('begin' | 'def' | 'do' | 'else' | 'end' |
'false' | 'if' | 'rescue' | 'true' | 'nil' |
'unless' | 'until' | 'while') space*
end
rule keyword_expression
keyword_true | keyword_false | keyword_nil | basic_expression
end
root keyword_expression
end

View File

@ -6,7 +6,6 @@ module Parser
# obviously a work in progress !!
Citrus.require "parser/basic"
Citrus.require "parser/keywords"
Citrus.require "parser/expression"
Citrus.require "parser/statement"