diff --git a/docs/grammar/README.md b/docs/grammar/README.md
index 4522f663a9..9eaa014ba9 100644
--- a/docs/grammar/README.md
+++ b/docs/grammar/README.md
@@ -148,6 +148,7 @@ keyword = %s"address"
/ %s"char"
/ %s"console"
/ %s"const"
+ / %s"constant"
/ %s"else"
/ %s"field"
/ %s"for"
@@ -399,6 +400,7 @@ symbol = "!" / "&&" / "||"
/ "+" / "-" / "*" / "/" / "**"
/ "="
/ "(" / ")"
+ / "[" / "]"
/ "{" / "}"
/ "," / "." / ".." / ";" / ":" / "?"
/ "->" / "_"
@@ -805,7 +807,7 @@ Go to: _[function-parameter](#user-content-function-parameter)_;
```abnf
-function-parameter = [ %s"public" / %s"const" ] identifier ":" type
+function-parameter = [ %s"public" / %s"constant" / %s"const" ] identifier ":" type
```
Go to: _[identifier](#user-content-identifier), [type](#user-content-type)_;
@@ -866,4 +868,56 @@ Go to: _[format-string-close-brace](#user-content-format-string-close-brace), [f
```abnf
format-string = *format-string-element
+```
+
+
+--------
+
+
+Input Grammar
+-------------
+
+
+```abnf
+input-type = type
+```
+
+Go to: _[type](#user-content-type)_;
+
+
+
+```abnf
+input-expression = literal
+```
+
+Go to: _[literal](#user-content-literal)_;
+
+
+
+```abnf
+input-item = identifier ":" input-type "=" input-expression ";"
+```
+
+Go to: _[identifier](#user-content-identifier), [input-expression](#user-content-input-expression), [input-type](#user-content-input-type)_;
+
+
+
+```abnf
+input-title = "[" identifier "]"
+```
+
+Go to: _[identifier](#user-content-identifier)_;
+
+
+
+```abnf
+input-section = input-title *input-item
+```
+
+Go to: _[input-title](#user-content-input-title)_;
+
+
+
+```abnf
+input-file = *input-section
diff --git a/docs/grammar/abnf-grammar.txt b/docs/grammar/abnf-grammar.txt
index 5b91993063..c8db7517c9 100644
--- a/docs/grammar/abnf-grammar.txt
+++ b/docs/grammar/abnf-grammar.txt
@@ -177,6 +177,7 @@ symbol = "!" / "&&" / "||"
/ "+" / "-" / "*" / "/" / "**"
/ "="
/ "(" / ")"
+ / "[" / "]"
/ "{" / "}"
/ "," / "." / ".." / ";" / ":" / "?"
/ "->" / "_"
@@ -346,3 +347,20 @@ format-string-element = not-brace
/ format-string-close-brace
format-string = *format-string-element
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; Input Grammar
+; -------------
+
+input-type = type
+
+input-expression = literal
+
+input-item = identifier ":" input-type "=" input-expression ";"
+
+input-title = "[" identifier "]"
+
+input-section = input-title *input-item
+
+input-file = *input-section