[PARSER] Grammar done and some note.

This commit is contained in:
Tiago Sousa 2023-05-06 16:34:05 +01:00
parent 734906e46c
commit c22ab63479
2 changed files with 69 additions and 0 deletions

55
src/grammar Normal file
View file

@ -0,0 +1,55 @@
__________ __ _____ ____ ___ ____ _____ __________
/_ __/ __ \/ |/ / / / __ \/ | / __ \/ ___// ____/ __ \
/ / / / / / /|_/ / / / /_/ / /| | / /_/ /\__ \/ __/ / /_/ /
/ / / /_/ / / / / /___/ ____/ ___ |/ _, _/___/ / /___/ _, _/
/_/ \____/_/ /_/_____/_/ /_/ |_/_/ |_|/____/_____/_/ |_|
toml : content
content : content tomlEntries
| tomlEntries
tomlEntries : table
| object
table : '[' ID ']'
| '[' '[' ID ']' ']'
object : key '=' value
| key '=' array --
| key '=' dict -- talvez coloque isto numa regra separada chamada inlinetable
array : '[' aCont ']'
| '[' ']'
aCont : aCont ',' aElem
| aElem
aElem : value
| dict
| array
dict : '{' dictCont '}'
| '{' '}'
dictCont : dictCont ',' dictElem
| dictElem
dictElem : object
key : ID
| STR
| FLOAT
| INT
value : STR
| DATE
| DATETIME
| INT
| FLOAT
| HEX
| BIN
| OCT
| INF
| NAN

14
src/notes.md Normal file
View file

@ -0,0 +1,14 @@
# LEXER
TODO:
- multiline strings
- exponent floats and ints
- tirar as aspas das strings, com o match object (4.18 Internal lexer state https://www.dabeaz.com/ply/ply.html#ply_nn20)
- mudar ids para poderem existir keys com o formato yessir."olympus".2
- inlinetables nao podem ter espacos no meio a menos que um dos values o permita (exemplo : multiline strings)
# PARSER
## GRAMMAR
- por agora esta tudo porreiro