Updated and clarified grammar

This commit is contained in:
nocturn9x 2021-08-19 15:32:42 +02:00
parent 099109daa6
commit 85f216695a
1 changed files with 2 additions and 3 deletions

View File

@ -106,16 +106,15 @@ function → IDENTIFIER "(" parameters? ")" blockStmt;
parameters → IDENTIFIER ( "," IDENTIFIER )*; parameters → IDENTIFIER ( "," IDENTIFIER )*;
arguments → expression ( "," expression )*; arguments → expression ( "," expression )*;
// Lexical grammar that defines terminals in a non-recursive (aka regular) fashion // Lexical grammar that defines terminals in a non-recursive (regular) fashion
QUOTE → "'"; QUOTE → "'";
DOUBLEQUOTE → "\""; DOUBLEQUOTE → "\"";
SINGLESTRING → QUOTE UNICODE* QUOTE; SINGLESTRING → QUOTE UNICODE* QUOTE;
DOUBLESTRING → DOUBLEQUOTE UNICODE* DOUBLEQUOTE; DOUBLESTRING → DOUBLEQUOTE UNICODE* DOUBLEQUOTE;
SINGLEMULTI → QUOTE{3} UNICODE* QUOTE{3}; // Single quoted multi-line strings SINGLEMULTI → QUOTE{3} UNICODE* QUOTE{3}; // Single quoted multi-line strings
DOUBLEMULTI → DOUBLEQUOTE{3} UNICODE* DOUBLEQUOTE{3}; // Single quoted multi-line string DOUBLEMULTI → DOUBLEQUOTE{3} UNICODE* DOUBLEQUOTE{3}; // Single quoted multi-line string
NUMBER → DIGIT+ ( "." | "e" | "E" DIGIT+ )?; // Numbers encompass integers and floats (even stuff like 1e5) NUMBER → DIGIT+ ( "." | "e" | "E" )? DIGIT+; // Numbers encompass integers and floats (even stuff like 1e5)
STRING → ("r"|"b") SINGLESTRING|DOUBLESTRING|SINGLEMULTI|DOUBLEMULTI; // Encompasses all strings STRING → ("r"|"b") SINGLESTRING|DOUBLESTRING|SINGLEMULTI|DOUBLEMULTI; // Encompasses all strings
MULTISTRING →
IDENTIFIER → ALPHA ( ALPHA | DIGIT )*; // Valid identifiers are only alphanumeric! IDENTIFIER → ALPHA ( ALPHA | DIGIT )*; // Valid identifiers are only alphanumeric!
ALPHA → "a" ... "z" | "A" ... "Z" | "_"; // Alphanumeric characters ALPHA → "a" ... "z" | "A" ... "Z" | "_"; // Alphanumeric characters
UNICODE → 0x00 ... 0x10FFFD; // This covers the whole unicode range UNICODE → 0x00 ... 0x10FFFD; // This covers the whole unicode range