diff --git a/Documentation/Grammar/GrammarGeneric.bnf b/Documentation/Grammar/GrammarGeneric.bnf
new file mode 100644
index 0000000..2af5ab8
--- /dev/null
+++ b/Documentation/Grammar/GrammarGeneric.bnf
@@ -0,0 +1,97 @@
+ ::= | | ε
+
+ ::=
+ ::= |
+ no references
line:
+
+
+ referenced by:
+
+
+
lineBody:
+
+
+ referenced by:
+
+
+
instruction:
+
+
+ referenced by:
+
+
+
directiveMac:
+
+
+ referenced by:
+
+
+
mnemonicChar:
+
+
+ referenced by:
+
+
+
operand:
+
+
+ referenced by:
+
+
+
operandSeparator:
+
+
+ referenced by:
+
+
+
stringLiteral:
+
+
+ referenced by:
+
+
+
stringChar:
+
+
+ referenced by:
+
+
+
stringBackslash:
+
+
+ referenced by:
+
+
+
stringEscapeChar:
+
+
+ ::= '\\'
+ | '"'
+ | "'"
+ | '0'
+ | 'a'
+ | 'b'
+ | 'f'
+ | 'n'
+ | 'r'
+ | 't'
+ | 'v'
+
+
+
+ referenced by:
+
+
+
stringUnicodeEscapeFour:
+
+
+ referenced by:
+
+
+
stringUnicodeEscapeEight:
+
+
+ referenced by:
+
+
+
numericLiteral:
+
+
+ referenced by:
+
+
+
staticNumericLiteral:
+
+
+ referenced by:
+
+
+
labelLiteral:
+
+
+ referenced by:
+
+
+
label:
+
+
+ referenced by:
+
+
+
pointer:
+
+
+ referenced by:
+
+
+
register:
+
+
+ referenced by:
+
+
+
hexadecimalNumber:
+
+
+ referenced by:
+
+
+
hexadecimalDigit:
+
+
+
+ | 'a'
+ | 'b'
+ | 'c'
+ | 'd'
+ | 'e'
+ | 'f'
+ | 'A'
+ | 'B'
+ | 'C'
+ | 'D'
+ | 'E'
+ | 'F'
+
+ referenced by:
+
+
+
hexadecimalChar:
+
+
+
+ | 'a'
+ | 'b'
+ | 'c'
+ | 'd'
+ | 'e'
+ | 'f'
+ | 'A'
+ | 'B'
+ | 'C'
+ | 'D'
+ | 'E'
+ | 'F'
+
+ referenced by:
+
+
+
anyDecimalNumber:
+
+
+ referenced by:
+
+
+
negativeFloatingPointDecimalNumber:
+
+
+ referenced by:
+
+
+
floatingPointDecimalNumber:
+
+
+ referenced by:
+
+
+
negativeDecimalNumber:
+
+
+ referenced by:
+
+
+
decimalNumber:
+
+
+ referenced by:
+
+
+
decimalDigit:
+
+
+ referenced by:
+
+
+
binaryNumber:
+
+
+ referenced by:
+
+
+
binaryDigit:
+
+
+ ::= '0'
+ | '1'
+ | '_'
+
+ referenced by:
+
+
+
labelName:
+
+
+ referenced by:
+
+
+
labelChar:
+
+
+ referenced by:
+
+
+
labelStartChar:
+
+
+ referenced by:
+
+
+
comment:
+
+
+ referenced by:
+
+
+
whitespace:
+
+
+ referenced by:
+
+
+
whitespaceChar:
+
+
+ referenced by:
+
+
+
freeText:
+
+
+ referenced by:
+
+
+
anyChar:
+
+
+ referenced by:
+
+
+
caseInsensitiveA:
+
+
+ referenced by:
+
+
+
caseInsensitiveB:
+
+
+ referenced by:
+
+
+
caseInsensitiveC:
+
+
+ referenced by:
+
+
+
caseInsensitiveD:
+
+
+ no references
caseInsensitiveE:
+
+
+ no references
caseInsensitiveF:
+
+
+ referenced by:
+
+
+
caseInsensitiveG:
+
+
+ referenced by:
+
+
+
caseInsensitiveH:
+
+
+ no references
caseInsensitiveI:
+
+
+ no references
caseInsensitiveJ:
+
+
+ no references
caseInsensitiveK:
+
+
+ no references
caseInsensitiveL:
+
+
+ no references
caseInsensitiveM:
+
+
+ referenced by:
+
+
+
caseInsensitiveN:
+
+
+ no references
caseInsensitiveO:
+
+
+ referenced by:
+
+
+
caseInsensitiveP:
+
+
+ referenced by:
+
+
+
caseInsensitiveQ:
+
+
+ no references
caseInsensitiveR:
+
+
+ referenced by:
+
+
+
caseInsensitiveS:
+
+
+ referenced by:
+
+
+
caseInsensitiveT:
+
+
+ no references
caseInsensitiveU:
+
+
+ no references
caseInsensitiveV:
+
+
+ referenced by:
+
+
+
caseInsensitiveW:
+
+
+ no references
caseInsensitiveX:
+
+
+ no references
caseInsensitiveY:
+
+
+ no references
caseInsensitiveZ:
+
+
+ no references
letter:
+
+
+ | 'B'
+ | 'C'
+ | 'D'
+ | 'E'
+ | 'F'
+ | 'G'
+ | 'H'
+ | 'I'
+ | 'J'
+ | 'K'
+ | 'L'
+ | 'M'
+ | 'N'
+ | 'O'
+ | 'P'
+ | 'Q'
+ | 'R'
+ | 'S'
+ | 'T'
+ | 'U'
+ | 'V'
+ | 'W'
+ | 'X'
+ | 'Y'
+ | 'Z'
+ | 'a'
+ | 'b'
+ | 'c'
+ | 'd'
+ | 'e'
+ | 'f'
+ | 'g'
+ | 'h'
+ | 'i'
+ | 'j'
+ | 'k'
+ | 'l'
+ | 'm'
+ | 'n'
+ | 'o'
+ | 'p'
+ | 'q'
+ | 'r'
+ | 's'
+ | 't'
+ | 'u'
+ | 'v'
+ | 'w'
+ | 'x'
+ | 'y'
+ | 'z'
+
+ referenced by:
+
+
+
digit:
+
+
+ | '1'
+ | '2'
+ | '3'
+ | '4'
+ | '5'
+ | '6'
+ | '7'
+ | '8'
+ | '9'
+
+ referenced by:
+
+
+
stringSymbol:
+
+
+ ::= '|'
+ | ' '
+ | '!'
+ | '#'
+ | '$'
+ | '%'
+ | '&'
+ | '('
+ | ')'
+ | '*'
+ | '+'
+ | ','
+ | '-'
+ | '.'
+ | '/'
+ | ':'
+ | ';'
+ | '<'
+ | '='
+ | '>'
+ | '?'
+ | '@'
+ | '['
+ | ']'
+ | '^'
+ | '_'
+ | '`'
+ | '{'
+ | '}'
+ | '~'
+ | '\t'
+ | "'"
+
+ referenced by:
+
+
+
symbol:
+
+
+ referenced by:
+
+
+
EOL:
+
+
+ referenced by:
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/Grammar/GrammarStrict.bnf b/Documentation/Grammar/GrammarStrict.bnf
new file mode 100644
index 0000000..9de5efb
--- /dev/null
+++ b/Documentation/Grammar/GrammarStrict.bnf
@@ -0,0 +1,413 @@
+ ::= | | ε
+
+ ::=
+ ::= | | ε
+ ::= | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |