瀏覽代碼

Add char literals

pull/1/head
Max Brunsfeld 11 年之前
父節點
當前提交
5c22801870
共有 2 個文件被更改,包括 28 次插入0 次删除
  1. +8
    -0
      grammar.coffee
  2. +20
    -0
      grammar_test/expressions.txt

+ 8
- 0
grammar.coffee 查看文件

@ -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 查看文件

@ -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…
取消
儲存