From 9696661ef544c6d813fd7f99e8afefe6f238fcf4 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 12 Mar 2009 21:21:32 -0500 Subject: [PATCH] Use 1|| instead of 0|| where appropriate in peg.ebnf to remove some stack shuffling --- basis/peg/ebnf/ebnf.factor | 50 +++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/basis/peg/ebnf/ebnf.factor b/basis/peg/ebnf/ebnf.factor index ca97886235..399b5b0fc9 100644 --- a/basis/peg/ebnf/ebnf.factor +++ b/basis/peg/ebnf/ebnf.factor @@ -128,28 +128,28 @@ PEG: escaper ( string -- ast ) #! in the EBNF syntax itself. [ { - [ dup blank? ] - [ dup CHAR: " = ] - [ dup CHAR: ' = ] - [ dup CHAR: | = ] - [ dup CHAR: { = ] - [ dup CHAR: } = ] - [ dup CHAR: = = ] - [ dup CHAR: ) = ] - [ dup CHAR: ( = ] - [ dup CHAR: ] = ] - [ dup CHAR: [ = ] - [ dup CHAR: . = ] - [ dup CHAR: ! = ] - [ dup CHAR: & = ] - [ dup CHAR: * = ] - [ dup CHAR: + = ] - [ dup CHAR: ? = ] - [ dup CHAR: : = ] - [ dup CHAR: ~ = ] - [ dup CHAR: < = ] - [ dup CHAR: > = ] - } 0|| not nip + [ blank? ] + [ CHAR: " = ] + [ CHAR: ' = ] + [ CHAR: | = ] + [ CHAR: { = ] + [ CHAR: } = ] + [ CHAR: = = ] + [ CHAR: ) = ] + [ CHAR: ( = ] + [ CHAR: ] = ] + [ CHAR: [ = ] + [ CHAR: . = ] + [ CHAR: ! = ] + [ CHAR: & = ] + [ CHAR: * = ] + [ CHAR: + = ] + [ CHAR: ? = ] + [ CHAR: : = ] + [ CHAR: ~ = ] + [ CHAR: < = ] + [ CHAR: > = ] + } 1|| not ] satisfy repeat1 [ >string ] action ; : 'terminal' ( -- parser ) @@ -161,9 +161,9 @@ PEG: escaper ( string -- ast ) #! Parse a valid foreign parser name [ { - [ dup blank? ] - [ dup CHAR: > = ] - } 0|| not nip + [ blank? ] + [ CHAR: > = ] + } 1|| not ] satisfy repeat1 [ >string ] action ; : 'foreign' ( -- parser )