]> gitweb.factorcode.org Git - factor.git/commitdiff
peg: use escaped character classes.
authorJohn Benediktsson <mrjbq7@gmail.com>
Thu, 16 Jul 2015 15:44:59 +0000 (08:44 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Thu, 16 Jul 2015 15:44:59 +0000 (08:44 -0700)
extra/brainfuck/brainfuck.factor
extra/gml/parser/parser.factor
extra/infix/tokenizer/tokenizer.factor
extra/peg/javascript/parser/parser.factor
extra/peg/javascript/tokenizer/tokenizer.factor
extra/svg/svg.factor

index ab1c83cbcde1f9d57b24b4c913f963d4e70fdb15..e082e511b36a284368874ce72b91530937465a03 100644 (file)
@@ -58,7 +58,7 @@ dec-mem  = ("-")+  => [[ length '[ _ (-) ] ]]
 output   = "."  => [[ [ (.) ] ]]
 input    = ","  => [[ [ (,) ] ]]
 debug    = "#"  => [[ [ (#) ] ]]
-space    = (" "|"\t"|"\r\n"|"\n")+ => [[ [ ] ]]
+space    = [ \t\n\r]+ => [[ [ ] ]]
 unknown  = (.)  => [[ "Invalid input" throw ]]
 
 ops   = inc-ptr|dec-ptr|inc-mem|dec-mem|output|input|debug|space
index 9b198719b99a038d3945bc4f7522972d9eb4f9a2..c142541b69c93e226d6b75a8b394e4e5f8166395 100644 (file)
@@ -62,11 +62,11 @@ Sign = ('+' => [[ first ]]|'-' => [[ first ]])?
 
 StopChar = ('('|')'|'['|']'|'{'|'}'|'/'|'/'|';'|':'|'!'|'.')
 
-Space = ' ' | '\t' | '\r' | '\n'
+Space = [ \t\n\r]
 
 Spaces = Space* => [[ ignore ]]
 
-Newline = ('\n' | '\r')
+Newline = [\n\r]
 
 Number = Sign Digit+ ('.' => [[ first ]] Digit+)? ('e' => [[ first ]] Sign Digit+)?
     => [[ flatten sift >string string>number ]]
index 90604aa13638425c6d4354f6e23943516e96c16a..71e4675cc8aff8f17e52460c35475cbb4e577445 100644 (file)
@@ -10,7 +10,7 @@ Digit             = [0-9]
 Digits            = Digit+
 Number            =   Digits '.' Digits => [[ "" concat-as string>number ast-number boa ]]
                     | Digits => [[ >string string>number ast-number boa ]]
-Space             = " " | "\n" | "\r" | "\t"
+Space             = [ \t\n\r]
 Spaces            = Space* => [[ ignore ]]
 NameFirst         = Letter | "_" => [[ CHAR: _ ]]
 NameRest          = NameFirst | Digit
index 95c328651130a46b21a0e20cc759b649f81ac896..8e2c35a0067dbd4a6c59ac84f830cc0b8b5a8ac7 100644 (file)
@@ -19,17 +19,17 @@ IN: peg.javascript.parser
 #! allows us to detect newlines when we need to for the semicolon
 #! insertion rule, but ignore it in all other places.
 EBNF: javascript
-tokenizer         = default 
-nl                = "\r" "\n" | "\n"
+tokenizer         = default
+nl                = "\r\n" | "\n"
 
 tokenizer         = <foreign tokenize-javascript Tok>
 End               = !(.)
-Space             = " " | "\t" | "\n" 
+Space             = [ \t\n]
 Spaces            = Space* => [[ ignore ]]
-Name               = . ?[ ast-name?   ]?   => [[ value>> ]] 
+Name               = . ?[ ast-name?   ]?   => [[ value>> ]]
 Number             = . ?[ ast-number? ]?
 String             = . ?[ ast-string? ]?
-RegExp             = . ?[ ast-regexp? ]?   
+RegExp             = . ?[ ast-regexp? ]?
 SpacesNoNl         = (!(nl) Space)* => [[ ignore ]]
 
 Expr               =   OrExpr:e "?" Expr:t ":" Expr:f   => [[ e t f ast-cond-expr boa ]]
@@ -175,7 +175,7 @@ Switch1            =   "case" Expr:c ":" SrcElems:cs => [[ c cs ast-case boa ]]
 SwitchBody         = Switch1*
 Finally            =   "finally" Block:b => [[ b ]]
                      | Spaces => [[ "undefined" ast-get boa ]]
-Stmt               =   Block                     
+Stmt               =   Block
                      | "var" Bindings:bs Sc                   => [[ bs ast-begin boa ]]
                      | "if" "(" Expr:c ")" Stmt:t "else" Stmt:f => [[ c t f ast-if boa ]]
                      | "if" "(" Expr:c ")" Stmt:t               => [[ c t "undefined" ast-get boa ast-if boa ]]
@@ -196,5 +196,5 @@ Stmt               =   Block
 SrcElem            =   "function" Name:n FuncRest:f                  => [[ n f ast-var boa ]]
                      | Stmt
 SrcElems           = SrcElem*                                      => [[ ast-begin boa ]]
-TopLevel           = SrcElems Spaces                               
+TopLevel           = SrcElems Spaces
 ;EBNF
index 5aade74fb3ba593d4f887d24ab1680d79c303635..cdf2c2faa007ca551ce42c095671f2e9b8fe3959 100644 (file)
@@ -14,7 +14,7 @@ Digit             = [0-9]
 Digits            = Digit+
 SingleLineComment = "//" (!("\n") .)* "\n" => [[ ignore ]]
 MultiLineComment  = "/*" (!("*/") .)* "*/" => [[ ignore ]]
-Space             = " " | "\t" | "\r" | "\n" | SingleLineComment | MultiLineComment
+Space             = [ \t\r\n] | SingleLineComment | MultiLineComment
 Spaces            = Space* => [[ ignore ]]
 NameFirst         = Letter | "$" => [[ CHAR: $ ]] | "_" => [[ CHAR: _ ]]
 NameRest          = NameFirst | Digit
@@ -48,7 +48,7 @@ Name              = !(Keyword) iName  => [[ ast-name boa ]]
 Number            =   Digits:ws '.' Digits:fs => [[ ws "." fs 3array "" concat-as string>number ast-number boa ]]
                     | Digits => [[ >string string>number ast-number boa ]]  
 
-EscapeChar        =   "\\n" => [[ 10 ]] 
+EscapeChar        =   "\\n" => [[ 10 ]]
                     | "\\r" => [[ 13 ]]
                     | "\\t" => [[ 9 ]]
 StringChars1       = (EscapeChar | !('"""') .)* => [[ >string ]]
@@ -58,11 +58,11 @@ Str                =   '"""' StringChars1:cs '"""' => [[ cs ast-string boa ]]
                      | '"' StringChars2:cs '"' => [[ cs ast-string boa ]]
                      | "'" StringChars3:cs "'" => [[ cs ast-string boa ]]
 RegExpFlags        = NameRest* => [[ >string ]]
-NonTerminator      = !("\n" | "\r") .
+NonTerminator      = !([\n\r]) .
 BackslashSequence  = "\\" NonTerminator => [[ second ]]
-RegExpFirstChar    =   !("*" | "\\" | "/") NonTerminator
+RegExpFirstChar    =   !([*\\/]) NonTerminator
                      | BackslashSequence
-RegExpChar         =   !("\\" | "/") NonTerminator
+RegExpChar         =   !([\\/]) NonTerminator
                      | BackslashSequence
 RegExpChars        = RegExpChar*
 RegExpBody         = RegExpFirstChar RegExpChars => [[ first2 swap prefix >string ]]
@@ -75,5 +75,5 @@ Special            =   "("    | ")"   | "{"   | "}"   | "["   | "]"   | ","   |
                      | "||"   | "."   | "!"   | "&="  | "&"   | "|="  | "|"   | "^="
                      | "^"
 Tok                = Spaces (Name | Keyword | Number | Str | RegExp | Special )
-Toks               = Tok* Spaces 
+Toks               = Tok* Spaces
 ;EBNF
index bebed0a0f8aeadee36bd47a34593a3ebc816389a..318c0de8563ea54a9ee8aae5ba461caef471551f 100644 (file)
@@ -71,7 +71,7 @@ exponent =
 sign =
     "+" => [[ f ]] | "-"
 digit-sequence = [0-9]+ => [[ >string ]]
-wsp = (" " | "\t" | "\r" | "\n")
+wsp = [ \t\r\n]
 
 transform-list = wsp* transforms?:t wsp*
     => [[ t [ identity-transform ] unless* ]]
@@ -214,7 +214,7 @@ fractional-constant = digit-sequence? "." digit-sequence | digit-sequence "."
 exponent = ( "e" | "E" ) sign? digit-sequence
 sign = "+" => [[ drop f ]] | "-"
 digit-sequence = [0-9]+ => [[ >string ]]
-wsp = (" " | "\t" | "\r" | "\n")
+wsp = [ \t\r\n]
 
 svg-path = wsp* moveto-drawto-command-groups?:x wsp* => [[ x ]]