@@ -30,7 +30,9 @@ Expression = LiteralExpression
3030 | CallExpression
3131 | ReturnExpression
3232 | UnderscoreExpression
33- | IfExpression ;
33+ | IfExpression
34+ | ArrayExpressions
35+ | TupleExpressions ;
3436
3537LiteralExpression = STRING | INT | FLOAT | " true" | " false" ;
3638
@@ -50,7 +52,6 @@ LazyBooleanExpression = Expression, ( "||" | "&&" ), Expression;
5052
5153AssignmentExpression = Expression , (" =" ), Expression ;
5254
53-
5455GroupedExpression = " (" , Expression , " )" ;
5556
5657CallExpression = Expression , " (" , [ CallParams ], " )" ;
@@ -62,16 +63,23 @@ UnderscoreExpression = "_";
6263
6364IfExpression = " if" , Expression , BlockExpression , [ " else" , ( BlockExpression | IfExpression ) ];
6465
66+ ArrayExpression = " [" , [ ArrayElements ], " ]" ;
67+ ArrayElements = Expression , " ;" , Expression
68+ | Expression , { " ," , Expression }, [ " ," ];
69+
70+ TupleExpression = " (" , TupleElements , " )" ;
71+ TupleElements = Expression , " ," , { Expression , " ," }, [ Expression ];
72+
6573(* Types *)
6674Type = FunctionType | ArrayType | TupleType | GenericType | SimpleType ;
6775
68- SimpleType = Identifier ;
76+ SimpleType = Identifier
6977
7078GenericType = Identifier , " <" , TypeList , " >" ;
7179TypeList = Type , { " ," , Type }, [" ," ];
7280
7381ArrayType = " [" , Type , [ " ;" , INT ], " ]" ;
7482
75- TupleType = " (" , Type , { " ," , Type }, [ " ," ], " )" ;
83+ TupleType = " (" , Type , " ," { Type , " ," }, [ Type ], " )" ;
7684
7785FunctionType = " fn" , " (" , [ TypeList ], " )" , " ->" , Type ;
0 commit comments