소스 검색

Add math assignment operators

pull/1/head
Max Brunsfeld 11 년 전
부모
커밋
cdb08d5aff
3개의 변경된 파일2098개의 추가작업 그리고 1546개의 파일을 삭제
  1. +6
    -4
      grammar.coffee
  2. +9
    -1
      grammar_test/expressions.txt
  3. +2083
    -1541
      src/parser.c

+ 6
- 4
grammar.coffee 파일 보기

@ -182,9 +182,6 @@ module.exports =
var_assignment: -> seq(@type_expression, "=", @expression)
type_modifier: -> choice(
keyword("const"))
expression: -> choice(
@bool_op,
@math_op,
@ -248,7 +245,12 @@ module.exports =
@field_access,
@deref_field_access,
@subscript_access),
"=",
choice(
"=",
"+=",
"-=",
"*=",
"/="),
@expression))
compound_literal: -> seq(

+ 9
- 1
grammar_test/expressions.txt 파일 보기

@ -105,6 +105,10 @@ int main() {
d.e = 3;
f->g = 4;
h[i] = j;
k += l;
m -= o;
n *= p;
q /= r;
}
---
@ -115,7 +119,11 @@ int main() {
(expression_statement (assignment (identifier) (assignment (deref (identifier)) (number))))
(expression_statement (assignment (field_access (identifier) (identifier)) (number)))
(expression_statement (assignment (deref_field_access (identifier) (identifier)) (number)))
(expression_statement (assignment (subscript_access (identifier) (identifier)) (identifier)))))
(expression_statement (assignment (subscript_access (identifier) (identifier)) (identifier)))
(expression_statement (assignment (identifier) (identifier)))
(expression_statement (assignment (identifier) (identifier)))
(expression_statement (assignment (identifier) (identifier)))
(expression_statement (assignment (identifier) (identifier)))))
============================================
Pointer operations

+ 2083
- 1541
src/parser.c
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


불러오는 중...
취소
저장