grammar: specify expressions

This commit is contained in:
tocariimaa 2025-01-21 18:16:47 -03:00
parent ac6cc2154d
commit 4b52f663c6

View file

@ -16,11 +16,21 @@ funcargs = expr-list
array-literal = "[" expr-list "]" array-literal = "[" expr-list "]"
expr-list = expr *("," expr) [","] ; Allows a trailling comma ; See `OperatorTable` at compiler/parse.c for the precedences
expr = number binary-operator = "+" / "-" / "*" / "/" / "<" / "<=" / ">" / ">=" / "==" / "!="
unary-operator = "-"
ident-or-call = ident / function-call
atom = number
/ array-literal / array-literal
/ function-call
/ string-literal / string-literal
/ ident-or-call
/ "(" expr ")"
unary = [unary-operator] atom
expr = unary [binary-operator expr]
expr-list = expr *("," expr) [","] ; Allows a trailling comma
pragma-directive = ident *("," ident) [","] pragma-directive = ident *("," ident) [","]
pragma = "#" "[" pragma-directive "]" pragma = "#" "[" pragma-directive "]"