diff --git a/parser.y b/parser.y index cc25069..64f4268 100644 --- a/parser.y +++ b/parser.y @@ -26,6 +26,7 @@ %token INPUT %token PAGE +%token PAGES %token BOOKMARK %token OUTPUT @@ -81,17 +82,22 @@ input_clause_list: '{' input_clauses '}' ; input_statement: - INPUT input_clause ; + INPUT input_clauses ; page_clause: - PAGE ranges ';' - | PAGE ranges ',' STRING ';' ; + PAGE INTEGER ';' + | PAGE INTEGER ',' STRING ';' ; + +pages_clause: + PAGES ranges ';' + | PAGES ranges ',' STRING ';' ; bookmark_clause: - BOOKMARK STRING ';' ; + BOOKMARK INTEGER ',' STRING ';' + | BOOKMARK STRING ';' ; output_clause: - page_clause | bookmark_clause + page_clause | pages_clause | bookmark_clause | output_clause_list ; output_clauses: @@ -102,5 +108,4 @@ output_clause_list: '{' output_clauses '}' ; output_statement: - OUTPUT output_clause ; - + OUTPUT output_clauses ; diff --git a/scanner.l b/scanner.l index cb8b57f..36e1171 100644 --- a/scanner.l +++ b/scanner.l @@ -25,6 +25,7 @@ input { return (INPUT); } odd { return (ODD); } output { return (OUTPUT); } page { return (PAGE); } +pages { return (PAGES); } rotate { return (ROTATE); } size { return (SIZE); }