Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- grammar SimpleTest
- rule num
- (float / integer)
- end
- rule float
- (
- (( '+' / '-')? plain_digits '.' plain_digits) /
- (( '+' / '-')? plain_digits ('E' / 'e') plain_digits ) /
- (( '+' / '-')? plain_digits '.') /
- (( '+' / '-')? '.' plain_digits)
- ) {
- def eval
- text_value.to_f
- end
- }
- end
- rule integer
- (( '+' / '-' )? plain_digits) {
- def eval
- text_value.to_i
- end
- }
- end
- rule plain_digits
- [0-9] [0-9]*
- end
- end
- assert_equal @parser.parse('3.14').eval,3.14
- assert_equal @parser.parse('3').eval,3
- SyntaxNode+Float4+Float0 offset=0, "3.14" (eval,plain_digits):
- SyntaxNode offset=0, ""
- SyntaxNode+PlainDigits0 offset=0, "3":
- SyntaxNode offset=0, "3"
- SyntaxNode offset=1, ""
- SyntaxNode offset=1, "."
- SyntaxNode+PlainDigits0 offset=2, "14":
- SyntaxNode offset=2, "1"
- SyntaxNode offset=3, "4":
- SyntaxNode offset=3, "4"
- SyntaxNode+Integer0 offset=0, "3" (plain_digits):
- SyntaxNode offset=0, ""
- SyntaxNode+PlainDigits0 offset=0, "3":
- SyntaxNode offset=0, "3"
- SyntaxNode offset=1, ""
- rule integer
- ( '+' / '-' )? plain_digits
- {
- def eval
- text_value.to_i
- end
- }
- end
- rule num
- (float / integer)
- end
- rule num
- (float / integer)
- {
- def eval
- text_value.to_f
- end
- }
- end
Add Comment
Please, Sign In to add comment