extensions.st
changeset 3 e1b11f74e142
parent 0 739fe9b7253e
child 4 90de244a7fa2
equal deleted inserted replaced
2:acb3822c73db 3:e1b11f74e142
     1 "{ Package: 'squeak:petitparser' }"
     1 "{ Package: 'squeak:petitparser' }"!
     2 
       
     3 !
       
     4 
     2 
     5 !Block methodsFor:'*petitparser-core-converting'!
     3 !Block methodsFor:'*petitparser-core-converting'!
     6 
     4 
     7 asParser
     5 asParser
     8 	^ PPPluggableParser on: self
     6 	^ PPPluggableParser on: self
     9 ! !
     7 ! !
       
     8 
    10 !BlockContext methodsFor:'*petitparser-core-converting'!
     9 !BlockContext methodsFor:'*petitparser-core-converting'!
    11 
    10 
    12 asParser
    11 asParser
    13 	^ PPPluggableParser on: self
    12 	^ PPPluggableParser on: self
    14 ! !
    13 ! !
       
    14 
    15 !Character methodsFor:'arithmetic'!
    15 !Character methodsFor:'arithmetic'!
    16 
    16 
    17 - aMagnitude
    17 - aMagnitude
    18     "Return the Character that is <aMagnitude> lower than the receiver.
    18     "Return the Character that is <aMagnitude> lower than the receiver.
    19      Wrap if the resulting value is not a legal Character value. (JS)
    19      Wrap if the resulting value is not a legal Character value. (JS)
    33     "
    33     "
    34 
    34 
    35     "Modified: / 27-06-1996 / 12:35:34 / cg"
    35     "Modified: / 27-06-1996 / 12:35:34 / cg"
    36     "Modified: / 19-12-2010 / 18:36:56 / Jan Kurs <kurs.jan@post.cz>"
    36     "Modified: / 19-12-2010 / 18:36:56 / Jan Kurs <kurs.jan@post.cz>"
    37 ! !
    37 ! !
       
    38 
    38 !Character methodsFor:'*petitparser-converting'!
    39 !Character methodsFor:'*petitparser-converting'!
    39 
    40 
    40 asParser
    41 asParser
    41 	^ PPLiteralObjectParser on: self
    42 	^ PPLiteralObjectParser on: self
    42 ! !
    43 ! !
       
    44 
    43 !Character methodsFor:'arithmetic'!
    45 !Character methodsFor:'arithmetic'!
    44 
    46 
    45 ppMinus: aCharacter
    47 ppMinus: aCharacter
    46     "Create a range of characters between the receiver and the argument."
    48     "Create a range of characters between the receiver and the argument."
    47     
    49     
    48     ^ PPPredicateObjectParser between: self and: aCharacter
    50     ^ PPPredicateObjectParser between: self and: aCharacter
    49 
    51 
    50     "Created: / 19-12-2010 / 18:13:19 / Jan Kurs <kurs.jan@post.cz>"
    52     "Created: / 19-12-2010 / 18:13:19 / Jan Kurs <kurs.jan@post.cz>"
    51 ! !
    53 ! !
       
    54 
    52 !Object methodsFor:'*petitparser-core-converting'!
    55 !Object methodsFor:'*petitparser-core-converting'!
    53 
    56 
    54 asParser
    57 asParser
    55 	^ PPPredicateObjectParser expect: self
    58 	^ PPPredicateObjectParser expect: self
    56 ! !
    59 ! !
       
    60 
    57 !Object methodsFor:'*petitparser-core-testing'!
    61 !Object methodsFor:'*petitparser-core-testing'!
    58 
    62 
    59 isPetitFailure
    63 isPetitFailure
    60 	^ false
    64 	^ false
    61 ! !
    65 ! !
       
    66 
    62 !Object methodsFor:'*petitparser-core-testing'!
    67 !Object methodsFor:'*petitparser-core-testing'!
    63 
    68 
    64 isPetitParser
    69 isPetitParser
    65 	^ false
    70 	^ false
    66 ! !
    71 ! !
       
    72 
    67 !PositionableStream methodsFor:'*petitparser-core-converting'!
    73 !PositionableStream methodsFor:'*petitparser-core-converting'!
    68 
    74 
    69 asPetitStream
    75 asPetitStream
    70         "Some of my subclasses do not use the instance-variables collection, position and readLimit but instead have a completely different internal representation. In these cases just use the super implementation that is inefficient but should work in all cases."
    76         "Some of my subclasses do not use the instance-variables collection, position and readLimit but instead have a completely different internal representation. In these cases just use the super implementation that is inefficient but should work in all cases."
    71 
    77 
    81 "/                ifFalse: [ PPStream on: collection from: position to: readLimit ]
    87 "/                ifFalse: [ PPStream on: collection from: position to: readLimit ]
    82 "/                ifTrue: [ super asPetitStream ]
    88 "/                ifTrue: [ super asPetitStream ]
    83 
    89 
    84     "Modified: / 18-12-2010 / 17:38:01 / Jan Kurs <kurs.jan@post.cz>"
    90     "Modified: / 18-12-2010 / 17:38:01 / Jan Kurs <kurs.jan@post.cz>"
    85 ! !
    91 ! !
       
    92 
    86 !SequenceableCollection methodsFor:'*petitparser-core-converting'!
    93 !SequenceableCollection methodsFor:'*petitparser-core-converting'!
    87 
    94 
    88 asParser
    95 asParser
    89 	^ PPSequenceParser withAll: (self collect: [ :each | each asParser ])
    96 	^ PPSequenceParser withAll: (self collect: [ :each | each asParser ])
    90 ! !
    97 ! !
       
    98 
    91 !SequenceableCollection methodsFor:'*petitparser-core-converting'!
    99 !SequenceableCollection methodsFor:'*petitparser-core-converting'!
    92 
   100 
    93 asPetitStream
   101 asPetitStream
    94 	^ PPStream on: self
   102 	^ PPStream on: self
    95 ! !
   103 ! !
       
   104 
    96 !Set methodsFor:'*petitparser-core-converting'!
   105 !Set methodsFor:'*petitparser-core-converting'!
    97 
   106 
    98 asParser
   107 asParser
    99 	^ PPChoiceParser withAll: (self collect: [ :each | each asParser ])
   108 	^ PPChoiceParser withAll: (self collect: [ :each | each asParser ])
   100 ! !
   109 ! !
       
   110 
   101 !Stream methodsFor:'*petitparser-core-converting'!
   111 !Stream methodsFor:'*petitparser-core-converting'!
   102 
   112 
   103 asPetitStream
   113 asPetitStream
   104 	^ self contents asPetitStream
   114 	^ self contents asPetitStream
   105 ! !
   115 ! !
       
   116 
   106 !String methodsFor:'*petitparser-core-converting'!
   117 !String methodsFor:'*petitparser-core-converting'!
   107 
   118 
   108 asParser
   119 asParser
   109 	^ PPLiteralSequenceParser on: self
   120 	^ PPLiteralSequenceParser on: self
   110 ! !
   121 ! !
       
   122 
   111 !Symbol methodsFor:'*petitparser-core-converting'!
   123 !Symbol methodsFor:'*petitparser-core-converting'!
   112 
   124 
   113 asParser
   125 asParser
   114 	^ PPPredicateObjectParser perform: self
   126 	^ PPPredicateObjectParser perform: self
   115 ! !
   127 ! !
       
   128 
   116 !Symbol methodsFor:'Compatibility-Squeak'!
   129 !Symbol methodsFor:'Compatibility-Squeak'!
   117 
   130 
   118 value:anObject
   131 value:anObject
   119     ^ anObject perform: self.
   132     ^ anObject perform: self.
   120 
   133 
   121     "Created: / 18-12-2010 / 16:47:22 / Jan Kurs <kurs.jan@post.cz>"
   134     "Created: / 18-12-2010 / 16:47:22 / Jan Kurs <kurs.jan@post.cz>"
   122 ! !
   135 ! !
       
   136 
   123 !Text methodsFor:'*petitparser-core'!
   137 !Text methodsFor:'*petitparser-core'!
   124 
   138 
   125 asPetitStream
   139 asPetitStream
   126 	^ string asPetitStream
   140 	^ string asPetitStream
   127 ! !
   141 ! !
       
   142 
   128 !UndefinedObject methodsFor:'*petitparser-converting'!
   143 !UndefinedObject methodsFor:'*petitparser-converting'!
   129 
   144 
   130 asParser
   145 asParser
   131 	^ PPEpsilonParser new
   146 	^ PPEpsilonParser new
   132 ! !
   147 ! !
       
   148 
       
   149 !squeak_petitparser class methodsFor:'documentation'!
       
   150 
       
   151 extensionsVersion_CVS
       
   152     ^ '$Header: /cvs/stx/stx/goodies/petitparser/extensions.st,v 1.2 2011-09-12 17:48:53 cg Exp $'
       
   153 ! !