diff --git a/language/cpu/8080/emulator/emulator.factor b/language/cpu/8080/emulator/emulator.factor index b755c307e8..08a9556022 100644 --- a/language/cpu/8080/emulator/emulator.factor +++ b/language/cpu/8080/emulator/emulator.factor @@ -761,15 +761,15 @@ SYMBOLS: $1 $2 $3 $4 ; ! is the getter word for that register with stack effect ! ( cpu -- value ). The second item is the setter word with ! stack effect ( value cpu -- ). - EBNF< + EBNF-MAIN{{ main=("A" | "B" | "C" | "D" | "E" | "H" | "L") => [[ register-lookup ]] - EBNF> ; + }} ; : all-flags ( -- parser ) ! A parser for 16-bit flags. - EBNF< + EBNF-MAIN{{ main=("NZ" | "NC" | "PO" | "PE" | "Z" | "C" | "P" | "M") => [[ flag-lookup ]] - EBNF> ; + }} ; : 16-bit-registers ( -- parser ) ! A parser for 16-bit registers. On a successfull parse the @@ -777,9 +777,9 @@ SYMBOLS: $1 $2 $3 $4 ; ! is the getter word for that register with stack effect ! ( cpu -- value ). The second item is the setter word with ! stack effect ( value cpu -- ). - EBNF< + EBNF-MAIN{{ main=("AF" | "BC" | "DE" | "HL" | "SP") => [[ register-lookup ]] - EBNF> ; + }} ; : all-registers ( -- parser ) ! Return a parser that can parse the format diff --git a/language/peg/ebnf/ebnf-tests.factor b/language/peg/ebnf/ebnf-tests.factor index 44b225354b..7c0656a289 100644 --- a/language/peg/ebnf/ebnf-tests.factor +++ b/language/peg/ebnf/ebnf-tests.factor @@ -507,7 +507,7 @@ foo= 'd' ] unit-test [ - "USING: peg.ebnf ; EBNF< foo='a' foo='b' EBNF>" eval( -- ) drop + "USING: peg.ebnf ; EBNF-MAIN{{ foo='a' foo='b' }}" eval( -- ) drop ] must-fail { t } [ diff --git a/language/peg/ebnf/ebnf.factor b/language/peg/ebnf/ebnf.factor index 60745cdac1..a6e3003a88 100644 --- a/language/peg/ebnf/ebnf.factor +++ b/language/peg/ebnf/ebnf.factor @@ -537,8 +537,13 @@ ERROR: could-not-parse-ebnf ; PRIVATE> -SYNTAX: \ EBNF< - "EBNF>" +SYNTAX: \ EBNF-MAIN{{ + "}}" + reset-tokenizer parse-multiline-string parse-ebnf main of + suffix! reset-tokenizer ; + +SYNTAX: \ EBNF-MAIN(( + "))" reset-tokenizer parse-multiline-string parse-ebnf main of suffix! reset-tokenizer ; @@ -547,6 +552,11 @@ SYNTAX: \ EBNF{{ reset-tokenizer parse-multiline-string ebnf>quot nip suffix! \ call suffix! reset-tokenizer ; +SYNTAX: \ EBNF(( + "))" + reset-tokenizer parse-multiline-string ebnf>quot nip + suffix! \ call suffix! reset-tokenizer ; + SYNTAX: \ EBNF: reset-tokenizer scan-new-word dup "EBNF;" parse-multiline-string ebnf>quot swapd