token | → | chr − (control | t‑special)+ |
comment | → | lparen (ctext quoted‑pair | comment)* rparen |
parameter | → | attribute eq attr‑val |
attribute | → | token |
attr‑val | → | token | quoted‑string |
hex | → | digit | hx |
chr | → | digit | hx | alpha | ht | dq | cr | lf | ctl | sp | colon | semicolon | comma | dot | lparen | rparen | langle | rangle | lbracket | rbracket | lbrace | rbrace | slash | backslash | eq | ch |
text | → | octet − control |
ctext | → | text − (lparen | rparen) |
quoted‑string | → | dq (qd‑text | quoted‑pair)* dq |
qd‑text | → | text − dq |
quoted‑pair | → | backslash chr |
control | → | ht | cr | lf | ctl |
t‑special | → | lparen | rparen | langle | rangle | at | comma | semicolon | colon | backslash | dq | slash | lbracket | rbracket | quest | eq | lbrace | rbrace | sp | ht |
octet | → | chr | oct |
lws | → | ((cr | lf)? (sp | ht))+ |