Files
sml-projects/fcore/parser/parser.md

22 lines
574 B
Markdown
Raw Normal View History

2025-07-12 02:02:21 +01:00
# Parsing
The parsing functionality is for saving and loading from a custom file format.
The BNF for the custom file format is below.
Terminals are surrounded by `**` to the left and right. (rule)+ means "1 or more".
2025-07-12 02:02:21 +01:00
```
int ::= (0-9)+
item ::= **{** int int int int int int int int **}**
grid ::= **[** item **]**
grid_list ::= int int **{** (grid)+ **}**
2025-07-12 02:02:21 +01:00
```
The first two `int`s in the grid `int int **{** (item)+ **}**` always follow the order: `canvasWidth canvasHeight`.
2025-07-12 02:02:21 +01:00
The large number of `int`s in the `item` always follows the order: `x y ex ey r g b a`.