| 1 |
; PL - The Format |
|---|
| 2 |
; http://alt.textdrive.com/pl/3/pl-the-format |
|---|
| 3 |
; |
|---|
| 4 |
; Augmented BNF for Syntax Specifications: ABNF |
|---|
| 5 |
; http://www.faqs.org/rfcs/rfc2234.html |
|---|
| 6 |
|
|---|
| 7 |
Map = LeftCurlyBracket *( String Equal Value SemiColon ) RightCurlyBracket |
|---|
| 8 |
Collection = LeftParenthesis Values RigthParenthesis |
|---|
| 9 |
String = DQUOTE Text DQUOTE |
|---|
| 10 |
Binary = LeftAngleBracket *(HEXDIG HEXDIG) RightAngleBracket |
|---|
| 11 |
|
|---|
| 12 |
Values = Value / Values Comma Value |
|---|
| 13 |
Value = Map / Collection / String / Binary |
|---|
| 14 |
|
|---|
| 15 |
Comment = "/*" *( %x00-10FFFF ) "*/" |
|---|
| 16 |
|
|---|
| 17 |
LeftAngleBracket = [LWSP] %x3C ; < |
|---|
| 18 |
RightAngleBracket = %x3E [LWSP] ; > |
|---|
| 19 |
LeftParenthesis = [LWSP] %x28 [LWSP] ; ( |
|---|
| 20 |
RigthParenthesis = [LWSP] %x29 [LWSP] ; ) |
|---|
| 21 |
Comma = [LWSP] %x2C [LWSP] ; , |
|---|
| 22 |
LeftCurlyBracket = [LWSP] %x7B [LWSP] ; { |
|---|
| 23 |
RightCurlyBracket = [LWSP] %x7D [LWSP] ; } |
|---|
| 24 |
Equal = [LWSP] %x3D [LWSP] ; = |
|---|
| 25 |
SemiColon = [LWSP] %x3B [LWSP] ; ; |
|---|
| 26 |
|
|---|
| 27 |
EBackslash = Backslash Backslash ; \\ |
|---|
| 28 |
EDQUOTE = Backslash DQUOTE ; \" |
|---|
| 29 |
ELF = Backslash LF ; \n |
|---|
| 30 |
ECR = Backslash CR ; \r |
|---|
| 31 |
EHTAB = Backslash HTAB ; \t |
|---|
| 32 |
Escaped = EBackslash / EDQUOTE / ELF / ECR / EHTAB |
|---|
| 33 |
|
|---|
| 34 |
Character = Escaped / %x00-08 / %x0B-0C / %x0F-1F / %x21 / %x23-5B / %x5D-10FFFF |
|---|
| 35 |
Text = *Character |
|---|
| 36 |
|
|---|
| 37 |
Backslash = %x5C ; \ |
|---|
| 38 |
CR = %x0D ; carriage return |
|---|
| 39 |
DQUOTE = %x22 ; double quote |
|---|
| 40 |
HTAB = %x09 ; horizontal tab |
|---|
| 41 |
LF = %x0A ; linefeed |
|---|
| 42 |
LWSP = *( WSP / CR / LF ) ; linear white space |
|---|
| 43 |
SP = %x20 ; space |
|---|
| 44 |
WSP = SP / HTAB ; white space |
|---|
| 45 |
DIGIT = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" |
|---|
| 46 |
HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" |
|---|