Browse Source

Add char literals

pull/1/head
Max Brunsfeld 11 years ago
parent
commit
5c22801870
2 changed files with 28 additions and 0 deletions
  1. +8
    -0
      grammar.coffee
  2. +20
    -0
      grammar_test/expressions.txt

+ 8
- 0
grammar.coffee View File

@ -183,6 +183,7 @@ module.exports = grammar
@field_access,
@deref_field_access,
@number,
@char,
@string)
field_access: -> seq(
@ -226,6 +227,13 @@ module.exports = grammar
number: -> /\d+(\.\d+)?/
char: -> token(seq(
"'",
choice(
seq(optional("\\"), /[^']/),
seq("\\", "'")),
"'"))
string: -> token(seq(
'"', repeat(choice(/[^"]/, '\\"')), '"'))

+ 20
- 0
grammar_test/expressions.txt View File

@ -12,6 +12,26 @@ int main() {
(statement_block
(expression_statement (function_call (identifier) (string) (identifier)))))
============================================
Character literals
============================================
int main() {
'a';
'\0';
'\t';
'\'';
}
---
(function_declaration (identifier) (identifier) (formal_parameters)
(statement_block
(expression_statement (char))
(expression_statement (char))
(expression_statement (char))
(expression_statement (char))))
============================================
Field access
============================================

Loading…
Cancel
Save