Grammar PdfAttributes Tokens IDENTIFIER = /^\/[\w:+\#\-\.]*(, ?[\w:+\#\-\.]*)*/n NUMERIC = /-?[0-9]+([.,][0-9]+)?/n REFERENCE = /[0-9]+\s+[0-9]+\s+R/n WORD = /[a-z\.]{2,}/in SPACE = /\s+/mn [:Skip] COMMENT = /%[^%]*%/mn [:Skip] FILEIDENTIFIER = /<[a-zA-Z0-9\n]+>/n Productions Expr -> IDENTIFIER [^: val] | Hash [^: val] | Array [^: val] | REFERENCE [^: val] | NUMERIC [^: val] | Text [^: val] | Date [^: val] | WORD [^: val] | FILEIDENTIFIER [^: val] Array -> '[' ArrayElements ']' [: _, values, _] | '[' ']' [: _, _] ArrayElements -> ArrayElement+ [^: values] ArrayElement -> (Array|Hash|NUMERIC|IDENTIFIER|REFERENCE|WORD|FILEIDENTIFIER|Text) [^: _] Hash -> '<<' (IDENTIFIER Expr)* '>>' [: _, pairs, _] Date -> '(D:' /[\d+']+/n ')' Text -> /\(([^\)\\]|\\[\(\)\\]?)*?\)/n [: text]