Bläddra i källkod

Add math assignment operators

pull/1/head
Max Brunsfeld 11 år sedan
förälder
incheckning
cdb08d5aff
3 ändrade filer med 2098 tillägg och 1546 borttagningar
  1. +6
    -4
      grammar.coffee
  2. +9
    -1
      grammar_test/expressions.txt
  3. +2083
    -1541
      src/parser.c

+ 6
- 4
grammar.coffee Visa fil

@ -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 Visa fil

@ -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
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


Laddar…
Avbryt
Spara