1
0
mirror of https://github.com/ubf/ubf.git synced 2026-04-28 23:58:13 +00:00
Files
ubf/misc-codes/ubf_a.abnf
Joseph Wayne Norton 1cf6cae809 add UBF(a) documentation
2010-10-24 01:27:58 +09:00

64 lines
1.7 KiB
ABNF

ubf-a = *ubf-a-wsp ubf-a-object *ubf-a-wsp "$"
ubf-a-object = (ubf-a-term / ubf-a-pop / ubf-a-push) *ubf-a-wsp [ubf-a-tag] *ubf-a-wsp
ubf-a-wsp = ubf-a-comment / ubf-a-ignore
ubf-a-term = ubf-a-atom
/ ubf-a-string
/ ubf-a-binary
/ ubf-a-integer
/ ubf-a-list
/ ubf-a-tuple
ubf-a-pop = ">" ubf-a-register
ubf-a-push = ubf-a-register
ubf-a-atom = "'" *(%x20-26 / %x28-5B / %x5D-7E / "\\" / "\'") "'"
ubf-a-string = '"' *(%x20-21 / %x23-5B / %x5D-7E / '\\' / '\"') '"'
ubf-a-binary = ubf-a-integer *ubf-a-wsp "~" *OCTET "~"
ubf-a-integer = ["-"] 1*DIGIT
ubf-a-list = "#" *ubf-a-wsp [ubf-a-object *ubf-a-wsp "&"]
ubf-a-tuple = "{" *ubf-a-wsp [ubf-a-object *ubf-a-wsp] "}"
ubf-a-tag = "`" 1*(%x20-5B / %x5D-5F / %x61-7E / "\\" / "\`") "`"
ubf-a-comment = "%" *(%x20-24 / %x26-5B / %x5D-7E / "\\" / "\%") "%"
ubf-a-ignore = SP ;; %x20
/ LF ;; %x0A
/ CR ;; %x0D
/ HTAB ;; %x09
/ "," ;; %x2C
ubf-a-control = "%" ;; %x25
/ '"' ;; %x22
/ "~" ;; %x7E
/ "'" ;; %x27
/ "`" ;; %x60
/ "{" ;; %x7B
/ "}" ;; %x7D
/ "#" ;; %x23
/ "&" ;; %x26
/ "-" ;; %x2D
/ DIGIT ;; %x30-39
/ ubf-a-ignore
ubf-a-register = %x21 ;; any octet except ubf-a-control
/ %x00-08
/ %x0B-0C
/ %x0E-1F
/ %x23-24
/ %x28-2B
/ %x2F
/ %x3A-5F
/ %x61-7A
/ %x7C
/ %x7F