# HG changeset patch # User Claus Gittinger # Date 1326453770 -3600 # Node ID 90de244a7fa28e1328abff6745d726256908125f # Parent e1b11f74e14293bde2ba1593938e5eb1f1169c14 move to package diff -r e1b11f74e142 -r 90de244a7fa2 Make.spec --- a/Make.spec Mon Sep 12 19:48:53 2011 +0200 +++ b/Make.spec Fri Jan 13 12:22:50 2012 +0100 @@ -1,6 +1,6 @@ -# $Header: /cvs/stx/stx/goodies/petitparser/Make.spec,v 1.1 2011-08-18 18:56:17 cg Exp $ +# $Header: /cvs/stx/stx/goodies/petitparser/Make.spec,v 1.2 2012-01-13 11:22:50 cg Exp $ # -# DO NOT EDIT +# DO NOT EDIT # automagically generated from the projectDefinition: squeak_petitparser. # # Warning: once you modify this file, do not rerun @@ -12,8 +12,8 @@ # Do NOT CHANGE THESE DEFINITIONS # (otherwise, ST/X will have a hard time to find out the packages location from its packageID, # to find the source code of a class and to find the library for a package) -MODULE=squeak -MODULE_DIR=petitparser +MODULE=stx +MODULE_DIR=goodies/petitparser PACKAGE=$(MODULE):$(MODULE_DIR) @@ -56,7 +56,7 @@ PPParser \ PPStream \ PPToken \ - squeak_petitparser \ + stx_goodies_petitparser \ PPDelegateParser \ PPEpsilonParser \ PPFailingParser \ @@ -97,7 +97,7 @@ $(OUTDIR)PPParser.$(O) \ $(OUTDIR)PPStream.$(O) \ $(OUTDIR)PPToken.$(O) \ - $(OUTDIR)squeak_petitparser.$(O) \ + $(OUTDIR)stx_goodies_petitparser.$(O) \ $(OUTDIR)PPDelegateParser.$(O) \ $(OUTDIR)PPEpsilonParser.$(O) \ $(OUTDIR)PPFailingParser.$(O) \ @@ -128,6 +128,3 @@ $(OUTDIR)PPTokenParser.$(O) \ $(OUTDIR)PPWrappingParser.$(O) \ $(OUTDIR)extensions.$(O) \ - - - diff -r e1b11f74e142 -r 90de244a7fa2 PPAbstractParseTest.st --- a/PPAbstractParseTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPAbstractParseTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" TestCase subclass:#PPAbstractParseTest instanceVariableNames:'' @@ -28,12 +28,12 @@ assert: aParser fail: aCollection end: anInteger | stream result | - self + self assert: aParser isPetitParser description: 'Parser invalid'. stream := aCollection asPetitStream. result := aParser parse: stream. - self + self assert: result isPetitFailure description: 'Parser did not fail'. self @@ -42,7 +42,7 @@ ! assert: aParser parse: aCollection - self assert: aParser parse: aCollection to: nil end: aCollection size + self assert: aParser parse: aCollection to: nil end: aCollection size ! assert: aParser parse: aCollection end: anInteger @@ -50,22 +50,22 @@ ! assert: aParser parse: aCollection to: anObject - self assert: aParser parse: aCollection to: anObject end: aCollection size + self assert: aParser parse: aCollection to: anObject end: aCollection size ! assert: aParser parse: aParseObject to: aTargetObject end: anInteger - | stream result | - self - assert: aParser isPetitParser - description: 'Parser invalid'. - stream := aParseObject asPetitStream. - result := aParser parse: stream. - aTargetObject isNil - ifTrue: [ self deny: result isPetitFailure ] - ifFalse: [ self assert: result = aTargetObject ]. - self - assert: stream position = anInteger - description: 'Parser accepted at wrong position' + | stream result | + self + assert: aParser isPetitParser + description: 'Parser invalid'. + stream := aParseObject asPetitStream. + result := aParser parse: stream. + aTargetObject isNil + ifTrue: [ self deny: result isPetitFailure ] + ifFalse: [ self assert: result = aTargetObject ]. + self + assert: stream position = anInteger + description: 'Parser accepted at wrong position' "Modified: / 18-12-2010 / 18:01:30 / Jan Kurs " ! @@ -85,5 +85,5 @@ !PPAbstractParseTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPAbstractParseTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPAbstractParseTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPActionParser.st --- a/PPActionParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPActionParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPDelegateParser subclass:#PPActionParser instanceVariableNames:'block' @@ -9,7 +9,7 @@ PPActionParser comment:'A parser that performs an action block with the successful parse result of the delegate. Instance Variables: - block The action block to be executed. + block The action block to be executed. ' ! @@ -46,5 +46,5 @@ !PPActionParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPActionParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPActionParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPAndParser.st --- a/PPAndParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPAndParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPDelegateParser subclass:#PPAndParser instanceVariableNames:'' @@ -30,5 +30,5 @@ !PPAndParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPAndParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPAndParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPArithmeticParser.st --- a/PPArithmeticParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPArithmeticParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPCompositeParser subclass:#PPArithmeticParser instanceVariableNames:'terms addition factors multiplication power primary parentheses @@ -18,7 +18,7 @@ !PPArithmeticParser methodsFor:'grammar'! addition - ^ (factors separatedBy: ($+ asParser / $- asParser) token trim) + ^ (factors separatedBy: ($+ asParser / $- asParser) token trim) foldLeft: [ :a :op :b | a perform: op value asSymbol with: b ] ! @@ -54,5 +54,5 @@ !PPArithmeticParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPArithmeticParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPArithmeticParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPArithmeticParserTest.st --- a/PPArithmeticParserTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPArithmeticParserTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPCompositeParserTest subclass:#PPArithmeticParserTest instanceVariableNames:'' @@ -32,7 +32,7 @@ testBrackets self assert: '(1)' is: 1. self assert: '(1 + 2)' is: 3. - + self assert: '((1))' is: 1. self assert: '((1 + 2))' is: 3. @@ -78,7 +78,7 @@ self assert: '100 / 2 / 2' is: 25. self assert: '100 / 2 / 2 / 5' is: 5. self assert: '100 / 2 / 2 / 5 / 5' is: 1 - + ! testMul @@ -124,5 +124,5 @@ !PPArithmeticParserTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPArithmeticParserTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPArithmeticParserTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPCharSetPredicate.st --- a/PPCharSetPredicate.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPCharSetPredicate.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" Object subclass:#PPCharSetPredicate instanceVariableNames:'block classification' @@ -39,5 +39,5 @@ !PPCharSetPredicate class methodsFor:'documentation'! version_SVN - ^ '$Id: PPCharSetPredicate.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPCharSetPredicate.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPChoiceParser.st --- a/PPChoiceParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPChoiceParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPListParser subclass:#PPChoiceParser instanceVariableNames:'' @@ -13,7 +13,7 @@ !PPChoiceParser methodsFor:'operations'! -/ aRule +/ aRule ^ self copyWith: aRule ! ! @@ -34,5 +34,5 @@ !PPChoiceParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPChoiceParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPChoiceParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPComposedTest.st --- a/PPComposedTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPComposedTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPAbstractParseTest subclass:#PPComposedTest instanceVariableNames:'' @@ -25,22 +25,22 @@ !PPComposedTest methodsFor:'testing'! testDoubledString - | parser | - parser := ($' asParser , (($' asParser , $' asParser) / $' asParser negate) star flatten , $' asParser) - ==> [ :nodes | nodes second copyReplaceAll: '''''' with: '''' ]. + | parser | + parser := ($' asParser , (($' asParser , $' asParser) / $' asParser negate) star flatten , $' asParser) + ==> [ :nodes | nodes second copyReplaceAll: '''''' with: '''' ]. - self assert: parser parse: '''''' to: ''. - self assert: parser parse: '''a''' to: 'a'. - self assert: parser parse: '''ab''' to: 'ab'. - self assert: parser parse: '''a''''b''' to: 'a''b'. - self assert: parser parse: '''a''''''''b''' to: 'a''''b' + self assert: parser parse: '''''' to: ''. + self assert: parser parse: '''a''' to: 'a'. + self assert: parser parse: '''ab''' to: 'ab'. + self assert: parser parse: '''a''''b''' to: 'a''b'. + self assert: parser parse: '''a''''''''b''' to: 'a''''b' "Modified: / 18-12-2010 / 18:00:16 / Jan Kurs " ! testEvenNumber "Create a grammar that parses an even number of a's and b's." - + | a as b bs s | a := $a asParser ==> [ :char | as := as + 1 ]. b := $b asParser ==> [ :char | bs := bs + 1 ]. @@ -58,7 +58,7 @@ self assert: s fail: 'bbb' end: 3. self assert: s fail: 'aab' end: 3. self assert: s fail: 'abb' end: 3. - + self assert: s parse: ''. self assert: s parse: 'aa'. self assert: s parse: 'bb'. @@ -96,7 +96,7 @@ testLeftRecursion "S ::= S 'x' S / '1'" - + | parser | parser := PPUnresolvedParser new. parser def: ((parser , $x asParser , parser) / $1 asParser) memoized flatten. @@ -111,7 +111,7 @@ testListOfIntegers "S ::= S , number | number" - + | number list parser | number := #digit asParser plus token trim ==> [ :node | node value asInteger ]. @@ -136,7 +136,7 @@ self assert: parser parse: '1 ,2 ,3' to: (1 to: 3) asArray. self assert: parser parse: '1 ,2 ,3 ,4' to: (1 to: 4) asArray. self assert: parser parse: '1 ,2 ,3 ,4 ,5' to: (1 to: 5) asArray. - + self assert: parser fail: ''. self assert: parser fail: ','. self assert: parser fail: '1,'. @@ -149,16 +149,16 @@ "B ::= /*" "E ::= */" "T ::= ." - + | begin end any inside parser | begin := '/*' asParser. end := '*/' asParser. any := #any asParser. - + parser := PPUnresolvedParser new. inside := end not , (parser / any). parser def: begin , inside star , end. - + self assert: parser parse: '/*ab*/cd' end: 6. self assert: parser parse: '/*a/*b*/c*/'. self assert: parser fail: '/*a/*b*/c' @@ -167,20 +167,20 @@ testPalindrome "S0 ::= a S1 a | b S1 b | ... S1 ::= S0 | epsilon" - + | s0 s1 parser | s0 := PPUnresolvedParser new. s1 := PPUnresolvedParser new. s0 def: ($a asParser , s1 , $a asParser) / ($b asParser , s1 , $b asParser) - / ($c asParser , s1 , $c asParser). + / ($c asParser , s1 , $c asParser). s1 def: s0 / nil asParser. parser := s0 flatten end. self assert: parser parse: 'aa' to: 'aa'. self assert: parser parse: 'bb' to: 'bb'. self assert: parser parse: 'cc' to: 'cc'. - + self assert: parser parse: 'abba' to: 'abba'. self assert: parser parse: 'baab' to: 'baab'. @@ -197,7 +197,7 @@ testParseAaaBbb "S0 ::= a S1 b S1 ::= S0 | epsilon" - + | s0 s1 parser | s0 := PPUnresolvedParser new. s1 := PPUnresolvedParser new. @@ -223,7 +223,7 @@ testParseAaaaaa "S ::= a a S | epsilon" - + | s0 s1 parser | s0 := PPUnresolvedParser new. s1 := $a asParser , $a asParser , s0. @@ -243,7 +243,7 @@ testParseAbAbAb "S ::= (A B)+" - + | parser | parser := ($a asParser , $b asParser) plus flatten. @@ -256,7 +256,7 @@ self assert: parser parse: 'ababa' to: 'abab' end: 4. self assert: parser parse: 'abababb' to: 'ababab' end: 6. self assert: parser parse: 'ababababa' to: 'abababab' end: 8. - + self assert: parser fail: ''. self assert: parser fail: 'a'. self assert: parser fail: 'bab' @@ -285,35 +285,35 @@ self assert: parser parse: 'bc' to: 'b' end: 1. self assert: parser parse: 'abc' to: 'ab' end: 2. self assert: parser parse: 'bac' to: 'ba' end: 2. - + self assert: parser fail: ''. self assert: parser fail: 'c' ! testParseAnBnCn - "PEGs for a non context- free language: - + "PEGs for a non context- free language: + a^n , b^n , c^n - - S <- &P1 P2 - P1 <- AB 'c' + + S <- &P1 P2 + P1 <- AB 'c' AB <- 'a' AB 'b' / epsilon P2 <- 'a'* BC end BC <- 'b' BC 'c' / epsilon" - + | s p1 ab p2 bc | s := PPUnresolvedParser new. p1 := PPUnresolvedParser new. ab := PPUnresolvedParser new. p2 := PPUnresolvedParser new. bc := PPUnresolvedParser new. - + s def: (p1 and , p2 end) flatten. p1 def: ab , $c asParser. ab def: ($a asParser , ab , $b asParser) optional. p2 def: $a asParser star , bc. bc def: ($b asParser , bc , $c asParser) optional. - + self assert: s parse: 'abc' to: 'abc'. self assert: s parse: 'aabbcc' to: 'aabbcc'. self assert: s parse: 'aaabbbccc' to: 'aaabbbccc'. @@ -374,12 +374,12 @@ self assert: self number parse: '12-' to: '12' end: 2. self assert: self number parse: '12.3.' to: '12.3' end: 4. self assert: self number parse: '12.34.' to: '12.34' end: 5. - + self assert: self number parse: '-1' to: '-1'. self assert: self number parse: '-12' to: '-12'. self assert: self number parse: '-12.3' to: '-12.3'. self assert: self number parse: '-12.34' to: '-12.34'. - + self assert: self number fail: ''. self assert: self number fail: '-'. self assert: self number fail: '.'. @@ -397,7 +397,7 @@ self assert: return parse: '^12' to: #(return '12'). self assert: return parse: '^ 123' to: #(return '123'). self assert: return parse: '^ 1234' to: #(return '1234'). - + self assert: return fail: '1'. self assert: return fail: '^' ! ! @@ -405,5 +405,5 @@ !PPComposedTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPComposedTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPComposedTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPCompositeParser.st --- a/PPCompositeParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPCompositeParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPDelegateParser subclass:#PPCompositeParser instanceVariableNames:'' @@ -7,7 +7,7 @@ category:'PetitParser-Tools' ! -PPCompositeParser comment:'A PPCompositeParser is composed parser built from various primitive parsers. +PPCompositeParser comment:'A PPCompositeParser is composed parser built from various primitive parsers. Every production in the receiver is specified as a method that returns its parser. Note that every production requires an instance variable of the same name, otherwise the production is not cached and cannot be used in recursive grammars. Productions should refer to each other by reading the respective inst-var. Note: these inst-vars are typically not written, as the assignment happens in the initialize method using reflection. The start production is defined in the method start. It is aliased to the inst-var parser defined in the superclass of PPCompositeParser.' ! @@ -63,7 +63,7 @@ start "Answer the production to start this parser with." - + self subclassResponsibility ! ! @@ -71,7 +71,7 @@ initializeStartingAt: aSymbol | allVariableNames ignoredVariableNames productionIndexesAndNames | - self initialize. + self initialize. "find all the productions that need to be initialized" allVariableNames := self class allInstVarNames @@ -81,13 +81,13 @@ productionIndexesAndNames := ((1 to: self class instSize) collect: [ :index | index -> (allVariableNames at: index) ]) reject: [ :assoc | ignoredVariableNames includes: assoc value ]. - + "initialize productions with an undefined parser to be replaced later" parser := PPUnresolvedParser named: aSymbol. productionIndexesAndNames do: [ :assoc | self instVarAt: assoc key put: (PPUnresolvedParser named: assoc value) ]. parser def: (self perform: aSymbol). - + "resolve unresolved parsers with their actual implementation" productionIndexesAndNames do: [ :assoc | (self respondsTo: assoc value) @@ -99,13 +99,13 @@ productionAt: aSymbol "Answer the production named aSymbol." - + ^ self productionAt: aSymbol ifAbsent: [ nil ] ! productionAt: aSymbol ifAbsent: aBlock "Answer the production named aSymbol, if there is no such production answer the result of evaluating aBlock." - + (self class ignoredNames includes: aSymbol asString) ifTrue: [ ^ aBlock value ]. (self class startSymbol = aSymbol) @@ -118,5 +118,5 @@ !PPCompositeParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPCompositeParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPCompositeParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPCompositeParserTest.st --- a/PPCompositeParserTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPCompositeParserTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPAbstractParseTest subclass:#PPCompositeParserTest instanceVariableNames:'parser result' @@ -32,11 +32,11 @@ !PPCompositeParserTest methodsFor:'parsing'! -fail: aString rule: aSymbol +fail: aString rule: aSymbol | production | production := self parserInstance productionAt: aSymbol. - result := production end + result := production end parse: aString. self assert: result isPetitFailure @@ -44,7 +44,7 @@ ^ result ! -parse: aString +parse: aString ^ self parse: aString rule: #start ! @@ -86,5 +86,5 @@ !PPCompositeParserTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPCompositeParserTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPCompositeParserTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPDelegateParser.st --- a/PPDelegateParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPDelegateParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPParser subclass:#PPDelegateParser instanceVariableNames:'parser' @@ -9,7 +9,7 @@ PPDelegateParser comment:'A parser that delegates to another parser. Instance Variables: - parser The parser to delegate to.' + parser The parser to delegate to.' ! @@ -40,5 +40,5 @@ !PPDelegateParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPDelegateParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPDelegateParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPEndOfInputParser.st --- a/PPEndOfInputParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPEndOfInputParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPDelegateParser subclass:#PPEndOfInputParser instanceVariableNames:'' @@ -35,5 +35,5 @@ !PPEndOfInputParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPEndOfInputParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPEndOfInputParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPEpsilonParser.st --- a/PPEpsilonParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPEpsilonParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPParser subclass:#PPEpsilonParser instanceVariableNames:'' @@ -20,5 +20,5 @@ !PPEpsilonParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPEpsilonParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPEpsilonParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPExpressionParser.st --- a/PPExpressionParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPExpressionParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPDelegateParser subclass:#PPExpressionParser instanceVariableNames:'operators' @@ -10,16 +10,16 @@ PPExpressionParser comment:'A PPExpressionParser is a parser to conveniently define an expression grammar with prefix, postfix, and left- and right-associative infix operators. The following code initializes a parser for arithmetic expressions. First we instantiate an expression parser, a simple parser for expressions in parenthesis and a simple parser for integer numbers. expression := PPExpressionParser new. - parens := $( asParser token trim , expression , $) asParser token trim + parens := $( asParser token trim , expression , $) asParser token trim ==> [ :nodes | nodes second ]. integer := #digit asParser plus token trim ==> [ :token | token value asInteger ]. - + Then we define on what term the expression grammar is built on: expression term: parens / integer. - -Finally we define the operator-groups in descending precedence. Note, that the action blocks receive both, the terms and the parsed operator in the order they appear in the parsed input. - + +Finally we define the operator-groups in descending precedence. Note, that the action blocks receive both, the terms and the parsed operator in the order they appear in the parsed input. + expression group: [ :g | g prefix: $- asParser token trim do: [ :op :a | a negated ] ]; @@ -34,7 +34,7 @@ group: [ :g | g left: $+ asParser token trim do: [ :a :op :b | a + b ]. g left: $- asParser token trim do: [ :a :op :b | a - b ] ]. - + After evaluating the above code the ''expression'' is an efficient parser that evaluates examples like: expression parse: ''-8++''. expression parse: ''1+2*3''. @@ -44,9 +44,9 @@ expression parse: ''8/(4/2)''. expression parse: ''2^2^3''. expression parse: ''(2^2)^3''. - + Instance Variables: - operators The operators defined in the current group.' + operators The operators defined in the current group.' ! @@ -76,10 +76,10 @@ ifTrue: [ term ] ifFalse: [ self - perform: selector with: term + perform: selector with: term with: (list size = 1 ifTrue: [ list first first ==> [ :operator | Array with: list first second with: operator ] ] - ifFalse: [ + ifFalse: [ list inject: PPChoiceParser new into: [ :choice :each | choice / (each first ==> [ :operator | Array with: each second with: operator ]) ] ]) ] ] @@ -102,17 +102,17 @@ group: aOneArgumentBlock "Defines a priority group by evaluating aOneArgumentBlock." - + operators := Dictionary new. - parser := [ + parser := [ aOneArgumentBlock value: self. - self buildOn: parser ] + self buildOn: parser ] ensure: [ operators := nil ] ! left: aParser do: aThreeArgumentBlock "Define an operator aParser that is left-associative. Evaluate aThreeArgumentBlock with the first term, the operator, and the second term." - + self operator: #build:left: parser: aParser do: aThreeArgumentBlock ! @@ -130,13 +130,13 @@ right: aParser do: aThreeArgumentBlock "Define an operator aParser that is right-associative. Evaluate aThreeArgumentBlock with the first term, the operator, and the second term." - + self operator: #build:right: parser: aParser do: aThreeArgumentBlock ! term: aParser "Defines the initial term aParser of the receiver." - + parser isNil ifTrue: [ parser := aParser ] ifFalse: [ self error: 'Unable to redefine the term.' ] @@ -145,5 +145,5 @@ !PPExpressionParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPExpressionParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPExpressionParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPExpressionParserTest.st --- a/PPExpressionParserTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPExpressionParserTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPArithmeticParserTest subclass:#PPExpressionParserTest instanceVariableNames:'' @@ -73,5 +73,5 @@ !PPExpressionParserTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPExpressionParserTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPExpressionParserTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPExtensionTest.st --- a/PPExtensionTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPExtensionTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPAbstractParseTest subclass:#PPExtensionTest instanceVariableNames:'' @@ -28,12 +28,12 @@ self assert: parser parse: 'aas' to: 'aa'. self assert: parser parse: 'sa' to: '' end: 1. self assert: parser parse: 'saa' to: '' end: 1. - + parser := [ :stream | stream upTo: $s. PPFailure message: 'stream' at: stream position ] asParser. self assert: parser fail: ''. self assert: parser fail: 's'. self assert: parser fail: 'as' - + ! testEpsilon @@ -60,12 +60,12 @@ ! testRange - | parser | - parser := $a ppMinus: $c. - self assert: parser parse: 'a' to: $a. - self assert: parser parse: 'b' to: $b. - self assert: parser parse: 'c' to: $c. - self assert: parser fail: 'd' + | parser | + parser := $a ppMinus: $c. + self assert: parser parse: 'a' to: $a. + self assert: parser parse: 'b' to: $b. + self assert: parser parse: 'c' to: $c. + self assert: parser fail: 'd' "Modified: / 19-12-2010 / 18:15:45 / Jan Kurs " ! @@ -121,5 +121,5 @@ !PPExtensionTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPExtensionTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPExtensionTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPFailingParser.st --- a/PPFailingParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPFailingParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPParser subclass:#PPFailingParser instanceVariableNames:'message' @@ -9,7 +9,7 @@ PPFailingParser comment:'A parser that consumes nothing and always fails. Instance Variables: - message The failure message.' + message The failure message.' ! @@ -49,5 +49,5 @@ !PPFailingParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPFailingParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPFailingParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPFailure.st --- a/PPFailure.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPFailure.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" Object subclass:#PPFailure instanceVariableNames:'message position' @@ -9,8 +9,8 @@ PPFailure comment:'The failure object in PetitParser. It is the only class that responds to #isPetitFailure with true. It contains an error message and a position of the occurrence of the failure. Instance Variables: - message The error message of this failure. - position The position of this failure in the input stream. + message The error message of this failure. + position The position of this failure in the input stream. ' ! @@ -25,7 +25,7 @@ message "Answer a human readable error message of this parse failure." - + ^ message ! @@ -59,5 +59,5 @@ !PPFailure class methodsFor:'documentation'! version_SVN - ^ '$Id: PPFailure.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPFailure.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPFlattenParser.st --- a/PPFlattenParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPFlattenParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPDelegateParser subclass:#PPFlattenParser instanceVariableNames:'' @@ -33,5 +33,5 @@ !PPFlattenParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPFlattenParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPFlattenParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPLambdaParser.st --- a/PPLambdaParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPLambdaParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPCompositeParser subclass:#PPLambdaParser instanceVariableNames:'expression abstraction application variable' @@ -61,5 +61,5 @@ !PPLambdaParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPLambdaParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPLambdaParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPLambdaParserTest.st --- a/PPLambdaParserTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPLambdaParserTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPCompositeParserTest subclass:#PPLambdaParserTest instanceVariableNames:'' @@ -63,41 +63,41 @@ !PPLambdaParserTest methodsFor:'testing-utilities'! testParseOnError - | beenHere | - result := self parserClass - parse: '\x.y' - onError: [ self fail ]. - self assert: result = #('x' 'y'). - - beenHere := false. - result := self parserClass - parse: '\x.' - onError: [ beenHere := true ]. - self assert: beenHere. - - beenHere := false. - result := self parserClass - parse: '\x.' - onError: [ :fail | beenHere := true. fail ]. - self assert: beenHere. - "We don't use $ before character sign in ST/X" - self assert: (result message includesSubString: '('). + | beenHere | + result := self parserClass + parse: '\x.y' + onError: [ self fail ]. + self assert: result = #('x' 'y'). + + beenHere := false. + result := self parserClass + parse: '\x.' + onError: [ beenHere := true ]. + self assert: beenHere. + + beenHere := false. + result := self parserClass + parse: '\x.' + onError: [ :fail | beenHere := true. fail ]. + self assert: beenHere. + "We don't use $ before character sign in ST/X" + self assert: (result message includesSubString: '('). "/ self assert: (result message includesSubString: '$('). - self assert: (result message includesSubString: 'expected'). - self assert: (result position = 0). + self assert: (result message includesSubString: 'expected'). + self assert: (result position = 0). - beenHere := false. - result := self parserClass - parse: '\x.' - onError: [ :msg :pos | - "We don't use $ before character sign in ST/X" - self assert: (msg includesSubString: '('). + beenHere := false. + result := self parserClass + parse: '\x.' + onError: [ :msg :pos | + "We don't use $ before character sign in ST/X" + self assert: (msg includesSubString: '('). "/ self assert: (msg includesSubString: '$('). - self assert: (msg includesSubString: 'expected'). - self assert: (pos = 0). - beenHere := true ]. - self assert: result. - self assert: beenHere + self assert: (msg includesSubString: 'expected'). + self assert: (pos = 0). + beenHere := true ]. + self assert: result. + self assert: beenHere "Modified: / 19-12-2010 / 16:52:33 / Jan Kurs " ! @@ -109,14 +109,14 @@ startingAt: #variable onError: [ self fail ]. self assert: result = 'x'. - + beenHere := false. result := self parserClass parse: '\' startingAt: #variable onError: [ beenHere := true ]. self assert: beenHere. - + beenHere := false. result := self parserClass parse: '\' @@ -130,7 +130,7 @@ result := self parserClass parse: '\' startingAt: #variable - onError: [ :msg :pos | + onError: [ :msg :pos | self assert: msg = 'letter expected'. self assert: pos = 0. beenHere := true ]. @@ -140,10 +140,10 @@ testProductionAt self assert: (parser productionAt: #foo) isNil. self assert: (parser productionAt: #foo ifAbsent: [ true ]). - + self assert: (parser productionAt: #start) notNil. self assert: (parser productionAt: #start ifAbsent: [ true ]) notNil. - + self assert: (parser productionAt: #variable) notNil. self assert: (parser productionAt: #variable ifAbsent: [ true ]) notNil ! ! @@ -151,5 +151,5 @@ !PPLambdaParserTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPLambdaParserTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPLambdaParserTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPListParser.st --- a/PPListParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPListParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPParser subclass:#PPListParser instanceVariableNames:'parsers' @@ -9,7 +9,7 @@ PPListParser comment:'Abstract parser that parses a list of things in some way (to be specified by the subclasses). Instance Variables: - parsers A sequence of other parsers to delegate to.' + parsers A sequence of other parsers to delegate to.' ! @@ -58,5 +58,5 @@ !PPListParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPListParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPListParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPLiteralObjectParser.st --- a/PPLiteralObjectParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPLiteralObjectParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPLiteralParser subclass:#PPLiteralObjectParser instanceVariableNames:'' @@ -15,7 +15,7 @@ caseInsensitive "Answer a parser that can parse the receiver case-insensitive." - + literal asUppercase = literal asLowercase ifTrue: [ ^ self ]. ^ PPPredicateObjectParser on: [ :value | literal sameAs: value ] message: message ! ! @@ -31,5 +31,5 @@ !PPLiteralObjectParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPLiteralObjectParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPLiteralObjectParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPLiteralParser.st --- a/PPLiteralParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPLiteralParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPParser subclass:#PPLiteralParser instanceVariableNames:'literal message' @@ -9,8 +9,8 @@ PPLiteralParser comment:'Abstract literal parser that parses some kind of literal type (to be specified by subclasses). Instance Variables: - literal The literal object to be parsed. - message The error message to be generated. + literal The literal object to be parsed. + message The error message to be generated. ' ! @@ -35,7 +35,7 @@ message "Answer the failure message." - + ^ message ! ! @@ -50,7 +50,7 @@ caseInsensitive "Answer a parser that can parse the receiver case-insensitive." - + self subclassResponsibility ! ! @@ -64,5 +64,5 @@ !PPLiteralParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPLiteralParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPLiteralParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPLiteralSequenceParser.st --- a/PPLiteralSequenceParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPLiteralSequenceParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPLiteralParser subclass:#PPLiteralSequenceParser instanceVariableNames:'size' @@ -30,7 +30,7 @@ caseInsensitive "Answer a parser that can parse the receiver case-insensitive." - + literal asUppercase = literal asLowercase ifTrue: [ ^ self ]. ^ PPPredicateSequenceParser on: [ :value | literal sameAs: value ] message: message size: size ! ! @@ -49,5 +49,5 @@ !PPLiteralSequenceParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPLiteralSequenceParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPLiteralSequenceParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPMappingTest.st --- a/PPMappingTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPMappingTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPAbstractParseTest subclass:#PPMappingTest instanceVariableNames:'' @@ -12,7 +12,7 @@ testFoldLeft2 | parser | - parser := #any asParser star + parser := #any asParser star foldLeft: [ :a :b | Array with: a with: b ]. self assert: parser parse: #(a) to: #a. @@ -24,7 +24,7 @@ testFoldLeft3 | parser | - parser := #any asParser star + parser := #any asParser star foldLeft: [ :a :b :c | Array with: a with: b with: c ]. self assert: parser parse: #(a) to: #a. @@ -34,7 +34,7 @@ testFoldRight2 | parser | - parser := #any asParser star + parser := #any asParser star foldRight: [ :a :b | Array with: a with: b ]. self assert: parser parse: #(a) to: #a. @@ -46,7 +46,7 @@ testFoldRight3 | parser | - parser := #any asParser star + parser := #any asParser star foldRight: [ :a :b :c | Array with: a with: b with: c ]. self assert: parser parse: #(a) to: #a. @@ -56,7 +56,7 @@ testMap1 | parser | - parser := #any asParser + parser := #any asParser map: [ :a | Array with: a ]. self assert: parser parse: #(a) to: #(a) @@ -64,7 +64,7 @@ testMap2 | parser | - parser := (#any asParser , #any asParser) + parser := (#any asParser , #any asParser) map: [ :a :b | Array with: b with: a ]. self assert: parser parse: #(a b) to: #(b a) @@ -81,5 +81,5 @@ !PPMappingTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPMappingTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPMappingTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPMemento.st --- a/PPMemento.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPMemento.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" Object subclass:#PPMemento instanceVariableNames:'result count position' @@ -9,9 +9,9 @@ PPMemento comment:'PPMemento is an internal class used by PPMemoizedParser to cache results and detect left-recursive calls. Instance Variables: - result The cached result. - count The number of recursive cycles followed. - position The position of the cached result in the input stream.' + result The cached result. + count The number of recursive cycles followed. + position The position of the cached result in the input stream.' ! @@ -55,11 +55,11 @@ initialize count := 0 - + ! ! !PPMemento class methodsFor:'documentation'! version_SVN - ^ '$Id: PPMemento.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPMemento.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPMemoizedParser.st --- a/PPMemoizedParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPMemoizedParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPDelegateParser subclass:#PPMemoizedParser instanceVariableNames:'stream buffer' @@ -9,8 +9,8 @@ PPMemoizedParser comment:'A memoized parser, for refraining redundant computations. Instance Variables: - stream The stream of the associated memento objects. - buffer The buffer of memento objects. + stream The stream of the associated memento objects. + buffer The buffer of memento objects. ' ! @@ -51,5 +51,5 @@ !PPMemoizedParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPMemoizedParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPMemoizedParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPNotParser.st --- a/PPNotParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPNotParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPDelegateParser subclass:#PPNotParser instanceVariableNames:'' @@ -25,5 +25,5 @@ !PPNotParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPNotParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPNotParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPObjectTest.st --- a/PPObjectTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPObjectTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPAbstractParseTest subclass:#PPObjectTest instanceVariableNames:'' @@ -38,7 +38,7 @@ testFibonacci "This parser accepts fibonacci sequences with arbitrary start pairs." - + | parser | parser := ((self integer , self integer) end ==> [ :pair | pair first + pair last ]) / (self integer , (self integer , self integer) and >=> [ :stream :continuation | @@ -56,7 +56,7 @@ self assert: parser fail: #(). self assert: parser fail: #(1). self assert: parser fail: #(1 2 3 4) end: 2 - + ! ! !PPObjectTest methodsFor:'testing-operators'! @@ -75,11 +75,11 @@ self assert: parser fail: #(123 456). self assert: parser fail: #('abc' 'def'). self assert: parser fail: #('abc' 123) - + ! ! !PPObjectTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPObjectTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPObjectTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPOptionalParser.st --- a/PPOptionalParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPOptionalParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPDelegateParser subclass:#PPOptionalParser instanceVariableNames:'' @@ -19,5 +19,5 @@ !PPOptionalParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPOptionalParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPOptionalParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPParser.st --- a/PPParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" Object subclass:#PPParser instanceVariableNames:'properties' @@ -9,7 +9,7 @@ PPParser comment:'An abstract parser for all parsers in PetitParser. Subclasses implement #parseOn: to perform the actual recursive-descent parsing. All parsers support a variety of methods to perform an actual parse, see the methods in the #parsing protocol. Parsers are combined with a series of operators that can be found in the #operations protocol. Instance Variables: - properties Stores additional state in the parser object.' + properties Stores additional state in the parser object.' ! @@ -33,7 +33,7 @@ name "Answer the production name of the receiver." - + ^ self propertyAt: #name ifAbsent: [ nil ] ! @@ -45,19 +45,19 @@ hasProperty: aKey "Test if the property aKey is present." - + ^ properties notNil and: [ properties includesKey: aKey ] ! propertyAt: aKey "Answer the property value associated with aKey." - + ^ self propertyAt: aKey ifAbsent: [ self error: 'Property not found' ] ! propertyAt: aKey ifAbsent: aBlock "Answer the property value associated with aKey or, if aKey isn't found, answer the result of evaluating aBlock." - + ^ properties isNil ifTrue: [ aBlock value ] ifFalse: [ properties at: aKey ifAbsent: aBlock ] @@ -65,7 +65,7 @@ propertyAt: aKey ifAbsentPut: aBlock "Answer the property associated with aKey or, if aKey isn't found store the result of evaluating aBlock as new value." - + ^ self propertyAt: aKey ifAbsent: [ self propertyAt: aKey put: aBlock value ] ! @@ -78,13 +78,13 @@ removeProperty: aKey "Remove the property with aKey. Answer the property or raise an error if aKey isn't found." - + ^ self removeProperty: aKey ifAbsent: [ self error: 'Property not found' ] ! removeProperty: aKey ifAbsent: aBlock "Remove the property with aKey. Answer the value or, if aKey isn't found, answer the result of evaluating aBlock." - + | answer | properties isNil ifTrue: [ ^ aBlock value ]. answer := properties removeKey: aKey ifAbsent: aBlock. @@ -112,15 +112,15 @@ !PPParser methodsFor:'operations'! -, aParser +, aParser "Answer a new parser that parses the receiver followed by aParser." ^ PPSequenceParser with: self with: aParser ! -/ aParser +/ aParser "Answer a new parser that parses the receiver, if the receiver fails try with aParser (ordered-choice)." - + ^ PPChoiceParser with: self with: aParser ! @@ -144,31 +144,31 @@ max: anInteger "Answer a new parser that parses the receiver at most anInteger times." - + ^ PPRepeatingParser on: self max: anInteger ! memoized "Answer a new memoized parser, for refraining redundant computations. This ensures polynomial time O(n^4) for left-recursive grammars and O(n^3) for non left-recursive grammars in the worst case. Not necessary for most grammars that are carefully written and in O(n) anyway." - + ^ PPMemoizedParser on: self ! min: anInteger "Answer a new parser that parses the receiver at least anInteger times." - + ^ PPRepeatingParser on: self min: anInteger ! min: aMinInteger max: aMaxInteger "Answer a new parser that parses the receiver at least aMinInteger and at most aMaxInteger times." - + ^ PPRepeatingParser on: self min: aMinInteger max: aMaxInteger ! negate "Answer a new parser consumes any input token but the receiver." - + ^ self not , #any asParser ==> #second ! @@ -192,13 +192,13 @@ plusGreedy: aParser "Answer a new parser that parses the receiver one or more times until it reaches aParser. This is a greedy non-blind implementation of the star operator. aParser is not consumed." - + ^ self , (self starGreedy: aParser) map: [ :first :rest | rest copyWithFirst: first ] ! plusLazy: aParser "Answer a new parser that parses the receiver one or more times until it reaches aParser. This is a lazy non-blind implementation of the star operator. aParser is not consumed." - + ^ self , (self starLazy: aParser) map: [ :first :rest | rest copyWithFirst: first ] ! @@ -210,7 +210,7 @@ starGreedy: aParser "Answer a new parser that parses the receiver zero or more times until it reaches aParser. This is a greedy non-blind implementation of the star operator. aParser is not consumed." - + | parser | parser := PPChoiceParser new. parser setParsers: (Array @@ -221,7 +221,7 @@ starLazy: aParser "Answer a new parser that parses the receiver zero or more times until it reaches aParser. This is a lazy non-blind implementation of the star operator. aParser is not consumed." - + | parser | parser := PPChoiceParser new. parser setParsers: (Array @@ -232,13 +232,13 @@ times: anInteger "Answer a new parser that parses the receiver exactly anInteger times." - + ^ self min: anInteger max: anInteger ! wrapped "Answer a new parser that is simply wrapped." - + ^ PPDelegateParser on: self ! @@ -252,7 +252,7 @@ delimitedBy: aParser "Answer a new parser that parses the receiver one or more times, separated and possibly ended by aParser." - + ^ (self separatedBy: aParser) , (aParser optional) ==> [ :node | node second isNil ifTrue: [ node first ] @@ -261,12 +261,12 @@ separatedBy: aParser "Answer a new parser that parses the receiver one or more times, separated by aParser." - + ^ (PPSequenceParser with: self with: (PPSequenceParser with: aParser with: self) star) ==> [ :nodes | | result | result := Array new: 2 * nodes second size + 1. result at: 1 put: nodes first. - nodes second + nodes second keysAndValuesDo: [ :index :pair | result replaceFrom: 2 * index to: 2 * index + 1 with: pair startingAt: 1 ]. result ] ! ! @@ -293,13 +293,13 @@ flatten "Answer a new parser that flattens the underlying collection." - + ^ PPFlattenParser on: self ! foldLeft: aBlock "Answer a new parser that that folds the result of the receiver from left-to-right into aBlock. The argument aBlock must take two or more arguments." - + | size args | size := aBlock numArgs. args := Array new: size. @@ -329,37 +329,37 @@ map: aBlock "Answer a new parser that works on the receiving sequence an passes in each element as a block argument." - + ^ self ==> aBlock ! token "Answer a new parser that transforms the input to a token." - + ^ PPTokenParser on: self ! token: aTokenClass "Answer a new parser that transforms the input to a token of class aTokenClass." - + ^ self token tokenClass: aTokenClass ! trim "Answer a new parser that consumes spaces before and after the receiving parser." - + ^ self trimSpaces ! trimBlanks "Answer a new parser that consumes blanks before and after the receiving parser." - + ^ PPTrimmingParser on: self trimmer: #blank asParser ! trimSpaces "Answer a new parser that consumes spaces before and after the receiving parser." - + ^ PPTrimmingParser on: self trimmer: #space asParser ! ! @@ -367,7 +367,7 @@ matches: anObject "Answer if anObject can be parsed by the receiver." - + ^ (self parse: anObject) isPetitFailure not ! @@ -376,7 +376,7 @@ | result | result := OrderedCollection new. - self + self matchesIn: anObject do: [ :each | result addLast: each ]. ^ result @@ -390,7 +390,7 @@ matchingRangesIn: anObject "Search anObject repeatedly for the matches of the receiver. Answer an OrderedCollection of ranges of each match (index of first character to: index of last character)." - + | result | result := OrderedCollection new. self @@ -401,7 +401,7 @@ matchingRangesIn: anObject do: aBlock "Search anObject repeatedly for the matches of the receiver. Answer an OrderedCollection of ranges of each match (index of first character to: index of last character)." - + | result | result := OrderedCollection new. [ :stream | stream position + 1 ] asParser , self , [ :stream | stream position ] asParser @@ -412,13 +412,13 @@ parse: anObject "Parse anObject with the receiving parser and answer the parse-result or an instance of PPFailure." - + ^ self parseOn: anObject asPetitStream ! parse: anObject onError: aBlock "Parse anObject with the receiving parser and answer the parse-result or answer the result of evaluating aBlock. Depending on the number of arguments of the block it is simply evaluated, evaluated with the failure object, or evaluated with the error message and position." - + | result | result := self parse: anObject. result isPetitFailure @@ -432,7 +432,7 @@ parseOn: aStream "Parse aStream with the receiving parser and answer the parse-result or an instance of PPFailure. Override this method in subclasses to specify custom parse behavior. Do not call this method from outside, instead use #parse:." - + self subclassResponsibility ! ! @@ -464,5 +464,5 @@ !PPParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPParserResource.st --- a/PPParserResource.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPParserResource.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" TestResource subclass:#PPParserResource instanceVariableNames:'parsers' @@ -12,7 +12,7 @@ parserAt: aParserClass "Answer a cached instance of aParserClass." - + ^ parsers at: aParserClass name ifAbsentPut: [ aParserClass new ] ! ! @@ -26,5 +26,5 @@ !PPParserResource class methodsFor:'documentation'! version_SVN - ^ '$Id: PPParserResource.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPParserResource.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPParserTest.st --- a/PPParserTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPParserTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPAbstractParseTest subclass:#PPParserTest instanceVariableNames:'' @@ -23,10 +23,10 @@ testAnd | parser | parser := 'foo' asParser flatten , 'bar' asParser flatten and. - + self assert: parser parse: 'foobar' to: #('foo' 'bar') end: 3. self assert: parser fail: 'foobaz'. - + parser := 'foo' asParser and. self assert: parser and = parser ! @@ -34,9 +34,9 @@ testAnswer | parser | parser := $a asParser answer: $b. - + self assert: parser parse: 'a' to: $b. - + self assert: parser fail: ''. self assert: parser fail: 'b' ! @@ -44,7 +44,7 @@ testBlock | parser | parser := [ :s | s next ] asParser. - + self assert: parser parse: 'ab' to: $a end: 1. self assert: parser parse: 'b' to: $b. self assert: parser parse: '' to: nil @@ -53,7 +53,7 @@ testChoice | parser | parser := $a asParser / $b asParser. - + self assert: parser parse: 'a' to: $a. self assert: parser parse: 'b' to: $b. @@ -68,7 +68,7 @@ testDelimitedBy | parser | parser := $a asParser delimitedBy: $b asParser. - + self assert: parser parse: 'a' to: #($a). self assert: parser parse: 'aba' to: #($a $b $a). self assert: parser parse: 'ababa' to: #($a $b $a $b $a). @@ -76,12 +76,12 @@ self assert: parser parse: 'ab' to: #($a $b). self assert: parser parse: 'abab' to: #($a $b $a $b). self assert: parser parse: 'ababab' to: #($a $b $a $b $a $b). - + self assert: parser parse: 'ac' to: #($a) end: 1. self assert: parser parse: 'abc' to: #($a $b) end: 2. self assert: parser parse: 'abac' to: #($a $b $a) end: 3. self assert: parser parse: 'ababc' to: #($a $b $a $b) end: 4. - + self assert: parser fail: ''. self assert: parser fail: 'b'. self assert: parser fail: 'c' @@ -91,7 +91,7 @@ | parser | parser := PPEndOfInputParser on: $a asParser. self assert: parser end = parser. - + self assert: parser parse: 'a' to: $a. self assert: parser fail: ''. self assert: parser fail: 'aa' @@ -108,9 +108,9 @@ testEpsilon | parser | parser := nil asParser. - + self assert: parser parse: '' to: nil. - + self assert: parser parse: 'a' to: nil end: 0. self assert: parser parse: 'ab' to: nil end: 0 ! @@ -119,11 +119,11 @@ | parser result | parser := PPFailingParser message: 'Plonk'. self assert: parser message = 'Plonk'. - + self assert: parser fail: ''. self assert: parser fail: 'a'. self assert: parser fail: 'aa'. - + result := parser parse: 'a'. self assert: result message = 'Plonk'. self assert: result printString = 'Plonk at 0' @@ -132,49 +132,49 @@ testFlatten | parser | parser := $a asParser flatten. - + self assert: parser parse: 'a' to: 'a'. self assert: parser parse: #($a) to: #($a). - + self assert: parser fail: ''. self assert: parser fail: 'b' ! testLiteralObject | parser | - parser := PPLiteralObjectParser + parser := PPLiteralObjectParser on: $a message: 'letter "a" expected'. self assert: parser literal = $a. self assert: parser message = 'letter "a" expected'. - + self assert: parser parse: 'a' to: $a. self assert: parser fail: 'b' - + ! testLiteralObjectCaseInsensitive | parser | parser := $a asParser caseInsensitive. - + self assert: parser parse: 'a' to: $a. self assert: parser parse: 'A' to: $A. self assert: parser fail: ''. self assert: parser fail: 'b'. self assert: parser fail: 'B' - + ! testLiteralSequence | parser | - parser := PPLiteralSequenceParser + parser := PPLiteralSequenceParser on: 'abc' message: 'sequence "abc" expected'. self assert: parser size = 3. self assert: parser literal = 'abc'. self assert: parser message = 'sequence "abc" expected'. - + self assert: parser parse: 'abc' to: 'abc'. self assert: parser fail: 'ab'. self assert: parser fail: 'abd' @@ -183,12 +183,12 @@ testLiteralSequenceCaseInsensitive | parser | parser := 'abc' asParser caseInsensitive. - + self assert: parser parse: 'abc' to: 'abc'. self assert: parser parse: 'ABC' to: 'ABC'. self assert: parser parse: 'abC' to: 'abC'. self assert: parser parse: 'AbC' to: 'AbC'. - + self assert: parser fail: 'ab'. self assert: parser fail: 'abd' ! @@ -204,7 +204,7 @@ self assert: parser parse: 'aa' to: #($a $a). self assert: parser parse: 'aaa' to: #($a $a) end: 2. self assert: parser parse: 'aaaa' to: #($a $a) end: 2. - + self assert: (parser printString endsWith: '[0, 2]') ! @@ -213,7 +213,7 @@ count := 0. parser := [ :s | count := count + 1. s next ] asParser memoized. twice := parser and , parser. - + count := 0. self assert: parser parse: 'a' to: $a. self assert: count = 1. @@ -221,7 +221,7 @@ count := 0. self assert: twice parse: 'a' to: #($a $a). self assert: count = 1. - + self assert: parser memoized = parser ! @@ -230,13 +230,13 @@ parser := $a asParser min: 2. self assert: parser min = 2. self assert: parser max > parser min. - + self assert: parser fail: ''. self assert: parser fail: 'a'. self assert: parser parse: 'aa' to: #($a $a). self assert: parser parse: 'aaa' to: #($a $a $a). self assert: parser parse: 'aaaa' to: #($a $a $a $a). - + self assert: (parser printString endsWith: '[2, *]') ! @@ -245,7 +245,7 @@ parser := $a asParser min: 2 max: 4. self assert: parser min = 2. self assert: parser max = 4. - + self assert: parser fail: ''. self assert: parser fail: 'a'. self assert: parser parse: 'aa' to: #($a $a). @@ -253,19 +253,19 @@ self assert: parser parse: 'aaaa' to: #($a $a $a $a). self assert: parser parse: 'aaaaa' to: #($a $a $a $a) end: 4. self assert: parser parse: 'aaaaaa' to: #($a $a $a $a) end: 4. - + self assert: (parser printString endsWith: '[2, 4]') ! testNegate | parser | parser := 'foo' asParser negate. - + self assert: parser parse: 'f' to: $f end: 1. self assert: parser parse: 'fo' to: $f end: 1. self assert: parser parse: 'fob' to: $f end: 1. self assert: parser parse: 'ffoo' to: $f end: 1. - + self assert: parser fail: ''. self assert: parser fail: 'foo' ! @@ -273,7 +273,7 @@ testNot | parser | parser := 'foo' asParser flatten , 'bar' asParser flatten not. - + self assert: parser parse: 'foobaz' to: #('foo' nil) end: 3. self assert: parser fail: 'foobar' ! @@ -281,10 +281,10 @@ testOptional | parser | parser := $a asParser optional. - + self assert: parser parse: '' to: nil. self assert: parser parse: 'a' to: $a. - + self assert: parser parse: 'aa' to: $a end: 1. self assert: parser parse: 'ab' to: $a end: 1. self assert: parser parse: 'b' to: nil end: 0. @@ -302,7 +302,7 @@ self assert: (parser permutation: #(3 1)) parse: '123' to: #($3 $1). self assert: (parser permutation: #(2 2)) parse: '123' to: #($2 $2). self assert: (parser permutation: #(3 2 1)) parse: '123' to: #($3 $2 $1). - + self should: [ parser permutation: #(0) ] raise: Error. self should: [ parser permutation: #(4) ] raise: Error. self should: [ parser permutation: #($2) ] raise: Error @@ -320,15 +320,15 @@ parser := $a asParser plus. self assert: parser min = 1. self assert: parser max > parser min. - + self assert: parser parse: 'a' to: #($a). self assert: parser parse: 'aa' to: #($a $a). self assert: parser parse: 'aaa' to: #($a $a $a). - + self assert: parser parse: 'ab' to: #($a) end: 1. self assert: parser parse: 'aab' to: #($a $a) end: 2. self assert: parser parse: 'aaab' to: #($a $a $a) end: 3. - + self assert: parser fail: ''. self assert: parser fail: 'b'. self assert: parser fail: 'ba' @@ -377,16 +377,16 @@ testSeparatedBy | parser | parser := $a asParser separatedBy: $b asParser. - + self assert: parser parse: 'a' to: #($a). self assert: parser parse: 'aba' to: #($a $b $a). self assert: parser parse: 'ababa' to: #($a $b $a $b $a). - + self assert: parser parse: 'ab' to: #($a) end: 1. self assert: parser parse: 'abab' to: #($a $b $a) end: 3. self assert: parser parse: 'ac' to: #($a) end: 1. self assert: parser parse: 'abac' to: #($a $b $a) end: 3. - + self assert: parser fail: ''. self assert: parser fail: 'c' ! @@ -394,12 +394,12 @@ testSequence | parser | parser := $a asParser , $b asParser. - + self assert: parser parse: 'ab' to: #($a $b). - + self assert: parser parse: 'aba' to: #($a $b) end: 2. self assert: parser parse: 'abb' to: #($a $b) end: 2. - + self assert: parser fail: ''. self assert: parser fail: 'a'. self assert: parser fail: 'aa'. @@ -412,12 +412,12 @@ parser := $a asParser star. self assert: parser min = 0. self assert: parser max > parser min. - + self assert: parser parse: '' to: #(). self assert: parser parse: 'a' to: #($a). self assert: parser parse: 'aa' to: #($a $a). self assert: parser parse: 'aaa' to: #($a $a $a). - + self assert: parser parse: 'b' to: #() end: 0. self assert: parser parse: 'ab' to: #($a) end: 1. self assert: parser parse: 'aab' to: #($a $a) end: 2. @@ -471,7 +471,7 @@ testTimes | parser | parser := $a asParser times: 2. - + self assert: parser fail: ''. self assert: parser fail: 'a'. self assert: parser parse: 'aa' to: #($a $a). @@ -482,13 +482,13 @@ | parser | parser := $a asParser token. self assert: parser tokenClass = PPToken. - self assert: parser parse: 'a' toToken: 1 stop: 1. + self assert: parser parse: 'a' toToken: 1 stop: 1. self assert: parser fail: 'b'. self assert: parser fail: ''. - + parser := $a asParser token: PPToken. self assert: parser tokenClass = PPToken. - self assert: parser parse: 'a' toToken: 1 stop: 1. + self assert: parser parse: 'a' toToken: 1 stop: 1. self assert: parser fail: ''. self assert: parser fail: 'b' ! @@ -497,25 +497,25 @@ | parser | parser := $a asParser token trim. self assert: parser trim = parser. - + self assert: parser parse: 'a' toToken: 1 stop: 1. self assert: parser parse: 'a ' toToken: 1 stop: 1. - self assert: parser parse: 'a ' toToken: 1 stop: 1. + self assert: parser parse: 'a ' toToken: 1 stop: 1. self assert: parser parse: 'a ' toToken: 1 stop: 1. - self assert: parser parse: 'a + self assert: parser parse: 'a ' toToken: 1 stop: 1. - + self assert: parser parse: 'a' toToken: 1 stop: 1. self assert: parser parse: ' a' toToken: 2 stop: 2. - self assert: parser parse: ' a' toToken: 2 stop: 2. + self assert: parser parse: ' a' toToken: 2 stop: 2. self assert: parser parse: ' a' toToken: 5 stop: 5. - self assert: parser parse: ' + self assert: parser parse: ' a' toToken: 5 stop: 5. - + self assert: parser parse: 'aa' toToken: 1 stop: 1 end: 1. - self assert: parser parse: 'a a' toToken: 1 stop: 1 end: 2. + self assert: parser parse: 'a a' toToken: 1 stop: 1 end: 2. self assert: parser parse: 'a a' toToken: 1 stop: 1 end: 3. - + self assert: parser fail: ''. self assert: parser fail: 'b' ! @@ -523,21 +523,21 @@ testTrimBlanks | parser | parser := $a asParser token trimBlanks. - + self assert: parser parse: 'a' toToken: 1 stop: 1. self assert: parser parse: 'a ' toToken: 1 stop: 1. - self assert: parser parse: 'a ' toToken: 1 stop: 1. + self assert: parser parse: 'a ' toToken: 1 stop: 1. self assert: parser parse: 'a ' toToken: 1 stop: 1. - + self assert: parser parse: 'a' toToken: 1 stop: 1. self assert: parser parse: ' a' toToken: 2 stop: 2. - self assert: parser parse: ' a' toToken: 2 stop: 2. + self assert: parser parse: ' a' toToken: 2 stop: 2. self assert: parser parse: ' a' toToken: 5 stop: 5. - + self assert: parser parse: 'aa' toToken: 1 stop: 1 end: 1. - self assert: parser parse: 'a a' toToken: 1 stop: 1 end: 2. + self assert: parser parse: 'a a' toToken: 1 stop: 1 end: 2. self assert: parser parse: 'a a' toToken: 1 stop: 1 end: 3. - + self assert: parser fail: ''. self assert: parser fail: ' '. @@ -549,25 +549,25 @@ testTrimSpaces | parser | parser := $a asParser token trimSpaces. - + self assert: parser parse: 'a' toToken: 1 stop: 1. self assert: parser parse: 'a ' toToken: 1 stop: 1. - self assert: parser parse: 'a ' toToken: 1 stop: 1. + self assert: parser parse: 'a ' toToken: 1 stop: 1. self assert: parser parse: 'a ' toToken: 1 stop: 1. - self assert: parser parse: 'a + self assert: parser parse: 'a ' toToken: 1 stop: 1. - + self assert: parser parse: 'a' toToken: 1 stop: 1. self assert: parser parse: ' a' toToken: 2 stop: 2. - self assert: parser parse: ' a' toToken: 2 stop: 2. + self assert: parser parse: ' a' toToken: 2 stop: 2. self assert: parser parse: ' a' toToken: 5 stop: 5. - self assert: parser parse: ' + self assert: parser parse: ' a' toToken: 5 stop: 5. - + self assert: parser parse: 'aa' toToken: 1 stop: 1 end: 1. - self assert: parser parse: 'a a' toToken: 1 stop: 1 end: 2. + self assert: parser parse: 'a a' toToken: 1 stop: 1 end: 2. self assert: parser parse: 'a a' toToken: 1 stop: 1 end: 3. - + self assert: parser fail: ''. self assert: parser fail: 'b' ! @@ -575,12 +575,12 @@ testUnresolved | parser | parser := PPUnresolvedParser new. - + self assert: parser isUnresolved. self should: [ parser parse: '' ] raise: Error. self should: [ parser parse: 'a' ] raise: Error. self should: [ parser parse: 'ab' ] raise: Error. - + parser := nil asParser. self deny: parser isUnresolved ! @@ -588,26 +588,26 @@ testWrapped | parser | parser := $a asParser wrapped. - + self assert: parser parse: 'a' to: $a. self assert: parser fail: 'b'. - + parser := (($a asParser , $b asParser ) wrapped , $c asParser). self assert: parser parse: 'abc' to: #(#($a $b) $c) ! testWrapping | parser result | - parser := #digit asParser plus >=> [ :stream :cc | - Array - with: stream position - with: cc value + parser := #digit asParser plus >=> [ :stream :cc | + Array + with: stream position + with: cc value with: stream position ]. self assert: parser parse: '1' to: #(0 ($1) 1). self assert: parser parse: '12' to: #(0 ($1 $2) 2). self assert: parser parse: '123' to: #(0 ($1 $2 $3) 3). - + result := parser parse: 'a'. self assert: result first = 0. self assert: result second isPetitFailure. @@ -618,21 +618,21 @@ | parser | parser := ($a asParser / $b asParser) | ($b asParser / $c asParser). - + self assert: parser parse: 'a' to: $a. self assert: parser parse: 'c' to: $c. - + self assert: parser fail: ''. self assert: parser fail: 'b'. self assert: parser fail: 'd'. - + " truly symmetric " parser := ($b asParser / $c asParser) | ($a asParser / $b asParser). - + self assert: parser parse: 'a' to: $a. self assert: parser parse: 'c' to: $c. - + self assert: parser fail: ''. self assert: parser fail: 'b'. self assert: parser fail: 'd' @@ -644,31 +644,31 @@ | parser | parser := PPSequenceParser new. self assert: parser name isNil. - + parser := PPChoiceParser named: 'choice'. self assert: parser name = 'choice'. - + parser := $* asParser name: 'star'. self assert: parser name = 'star' ! testPrint - | parser | - parser := PPParser new. - self assert: (parser printString includesSubString: 'PPParser'). - - parser := PPParser named: 'choice'. - self assert: (parser printString includesSubString: 'PPParser(choice'). - - parser := PPLiteralObjectParser on: $a. + | parser | + parser := PPParser new. + self assert: (parser printString includesSubString: 'PPParser'). + + parser := PPParser named: 'choice'. + self assert: (parser printString includesSubString: 'PPParser(choice'). + + parser := PPLiteralObjectParser on: $a. "/ self assert: (parser printString includesSubString: '$a'). - self assert: (parser printString includesSubString: 'a'). - - parser := PPFailingParser message: 'error'. - self assert: (parser printString includesSubString: 'error'). - - parser := PPPredicateObjectParser on: [ :c | true ] message: 'error'. - self assert: (parser printString includesSubString: 'error') + self assert: (parser printString includesSubString: 'a'). + + parser := PPFailingParser message: 'error'. + self assert: (parser printString includesSubString: 'error'). + + parser := PPPredicateObjectParser on: [ :c | true ] message: 'error'. + self assert: (parser printString includesSubString: 'error') "Modified: / 19-12-2010 / 18:30:54 / Jan Kurs " ! ! @@ -682,15 +682,15 @@ p1 := $a asParser. p2 := p1 / $b asParser. p3 := p1 / $c asParser. - + self assert: p1 parse: 'a'. self assert: p1 fail: 'b'. self assert: p1 fail: 'c'. - + self assert: p2 parse: 'a'. self assert: p2 parse: 'b'. self assert: p2 fail: 'c'. - + self assert: p3 parse: 'a'. self assert: p3 fail: 'b'. self assert: p3 parse: 'c' @@ -700,7 +700,7 @@ | old new | old := $a asParser , $b asParser. new := old copy. - + self deny: old == new. self deny: old children == new children. self assert: old children first == new children first. @@ -714,16 +714,16 @@ p1 := $a asParser. p2 := p1 , $b asParser. p3 := p1 , $c asParser. - - self assert: p1 parse: 'a'. + + self assert: p1 parse: 'a'. self assert: p1 parse: 'ab' end: 1. self assert: p1 parse: 'ac' end: 1. - - self assert: p2 fail: 'a'. + + self assert: p2 fail: 'a'. self assert: p2 parse: 'ab'. self assert: p2 fail: 'ac'. - self assert: p3 fail: 'a'. + self assert: p3 fail: 'a'. self assert: p3 fail: 'ab'. self assert: p3 parse: 'ac' ! ! @@ -803,7 +803,7 @@ testFailure | failure | failure := PPFailure message: 'Error' at: 3. - + self assert: failure message = 'Error'. self assert: failure position = 3. self assert: failure isPetitFailure. @@ -817,7 +817,7 @@ p1 := PPChoiceParser with: $a asParser. p2 := PPChoiceParser with: $a asParser with: $b asParser. p3 := PPChoiceParser withAll: (Array with: $a asParser with: $b asParser with: $c asParser). - + self assert: p1 children size = 1. self assert: p2 children size = 2. self assert: p3 children size = 3 @@ -826,10 +826,10 @@ testMatches | parser | parser := $a asParser. - + self assert: (parser matches: 'a'). self deny: (parser matches: 'b'). - + self assert: (parser matches: 'a' readStream). self deny: (parser matches: 'b' readStream) ! @@ -837,12 +837,12 @@ testMatchesIn | parser result | parser := $a asParser. - + result := parser matchesIn: 'abba'. self assert: result size = 2. self assert: result first = $a. self assert: result last = $a. - + result := parser matchesIn: 'baaah'. self assert: result size = 3. self assert: result first = $a. @@ -854,7 +854,7 @@ | parser result | parser := [ :stream | stream position ] asParser. - + result := parser matchesIn: '123'. self assert: result asArray = #(0 1 2 3) ! @@ -864,7 +864,7 @@ | parser result | parser := #digit asParser , #digit asParser. - + result := parser matchesIn: 'a123b'. self assert: result size = 2. self assert: result first = #($1 $2). @@ -881,24 +881,24 @@ ! testParse - | parser result | - parser := $a asParser. - - self assert: (parser parse: 'a') = $a. - self assert: (result := parser parse: 'b') isPetitFailure. - "is it Character printString differs: we return only 'a', not '$a'" - self breakPoint: #petitparser. + | parser result | + parser := $a asParser. + + self assert: (parser parse: 'a') = $a. + self assert: (result := parser parse: 'b') isPetitFailure. + "is it Character printString differs: we return only 'a', not '$a'" + self breakPoint: #petitparser. "/ self assert: (result message includesSubString: '$a'). - self assert: (result message includesSubString: 'a'). - self assert: (result message includesSubString: 'expected'). - self assert: (result position = 0). - - self assert: (parser parse: 'a' readStream) = $a. - self assert: (result := parser parse: 'b' readStream) isPetitFailure. + self assert: (result message includesSubString: 'a'). + self assert: (result message includesSubString: 'expected'). + self assert: (result position = 0). + + self assert: (parser parse: 'a' readStream) = $a. + self assert: (result := parser parse: 'b' readStream) isPetitFailure. "/ self assert: (result message includesSubString: '$a'). - self assert: (result message includesSubString: 'a'). - self assert: (result message includesSubString: 'expected'). - self assert: (result position = 0) + self assert: (result message includesSubString: 'a'). + self assert: (result message includesSubString: 'expected'). + self assert: (result position = 0) "Modified: / 18-12-2010 / 17:05:13 / Jan Kurs " ! @@ -916,41 +916,41 @@ ! testParseOnError1 - | parser result seen | - parser := $a asParser. - - result := parser parse: 'a' onError: [ self signalFailure: 'Not supposed to report an error' ]. - self assert: result = $a. - - result := parser parse: 'b' onError: [ :failure | - self assert: (failure position = 0). - "We don't use $ in ST/X for Characters" - self assert: (failure message includesSubString: 'a'). + | parser result seen | + parser := $a asParser. + + result := parser parse: 'a' onError: [ self signalFailure: 'Not supposed to report an error' ]. + self assert: result = $a. + + result := parser parse: 'b' onError: [ :failure | + self assert: (failure position = 0). + "We don't use $ in ST/X for Characters" + self assert: (failure message includesSubString: 'a'). "/ self assert: (failure message includesSubString: '$a'). - self assert: (failure message includesSubString: 'expected'). - seen := true ]. - self assert: result. - self assert: seen + self assert: (failure message includesSubString: 'expected'). + seen := true ]. + self assert: result. + self assert: seen "Modified: / 19-12-2010 / 18:18:01 / Jan Kurs " ! testParseOnError2 - | parser result seen | - parser := $a asParser. - - result := parser parse: 'a' onError: [ self signalFailure: 'Not supposed to report an error' ]. - self assert: result = $a. + | parser result seen | + parser := $a asParser. + + result := parser parse: 'a' onError: [ self signalFailure: 'Not supposed to report an error' ]. + self assert: result = $a. - result := parser parse: 'b' onError: [ :msg :pos | - "We don't use $ in ST/X for Characters" - self assert: (msg includesSubString: 'a'). + result := parser parse: 'b' onError: [ :msg :pos | + "We don't use $ in ST/X for Characters" + self assert: (msg includesSubString: 'a'). "/ self assert: (msg includesSubString: '$a'). - self assert: (msg includesSubString: 'expected'). - self assert: pos = 0. - seen := true ]. - self assert: result. - self assert: seen + self assert: (msg includesSubString: 'expected'). + self assert: pos = 0. + seen := true ]. + self assert: result. + self assert: seen "Modified: / 19-12-2010 / 18:18:31 / Jan Kurs " ! @@ -958,7 +958,7 @@ testParser | parser | parser := PPParser new. - + self assert: parser isPetitParser. self deny: 4 isPetitParser. @@ -968,5 +968,5 @@ !PPParserTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPParserTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPParserTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPPluggableParser.st --- a/PPPluggableParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPPluggableParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPParser subclass:#PPPluggableParser instanceVariableNames:'block' @@ -9,7 +9,7 @@ PPPluggableParser comment:'A pluggable parser that passes the parser stream into a block. This enables users to perform manual parsing or to embed other parser frameworks into PetitParser. Instance Variables: - block The pluggable one-argument block. + block The pluggable one-argument block. ' ! @@ -48,5 +48,5 @@ !PPPluggableParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPPluggableParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPPluggableParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPPredicateObjectParser.st --- a/PPPredicateObjectParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPPredicateObjectParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPPredicateParser subclass:#PPPredicateObjectParser instanceVariableNames:'' @@ -48,10 +48,10 @@ ! hex - ^ self - on: (PPCharSetPredicate on: [ :char | - (char between: $0 and: $9) - or: [ (char between: $a and: $f) + ^ self + on: (PPCharSetPredicate on: [ :char | + (char between: $0 and: $9) + or: [ (char between: $a and: $f) or: [ (char between: $A and: $F) ] ] ]) message: 'hex digit expected' ! @@ -123,7 +123,7 @@ ! expect: anObject message: aString - ^ self + ^ self on: [ :each | each = anObject ] message: aString negated: [ :each | each ~= anObject ] message: 'no ' , aString ! ! @@ -141,9 +141,9 @@ negate "Answer a parser that is the negation of the receiving predicate parser." - - ^ self class - on: negated message: negatedMessage + + ^ self class + on: negated message: negatedMessage negated: predicate message: predicateMessage ! ! @@ -158,5 +158,5 @@ !PPPredicateObjectParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPPredicateObjectParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPPredicateObjectParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPPredicateParser.st --- a/PPPredicateParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPPredicateParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPParser subclass:#PPPredicateParser instanceVariableNames:'predicate predicateMessage negated negatedMessage' @@ -9,10 +9,10 @@ PPPredicateParser comment:'An abstract parser that accepts if a given predicate holds. Instance Variables: - predicate The block testing for the predicate. - predicateMessage The error message of the predicate. - negated The block testing for the negation of the predicate. - negatedMessage The error message of the negated predicate.' + predicate The block testing for the predicate. + predicateMessage The error message of the predicate. + negated The block testing for the negation of the predicate. + negatedMessage The error message of the negated predicate.' ! @@ -20,13 +20,13 @@ block "Answer the predicate block of the receiver." - + ^ predicate ! message "Answer the failure message." - + ^ predicateMessage ! ! @@ -40,5 +40,5 @@ !PPPredicateParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPPredicateParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPPredicateParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPPredicateSequenceParser.st --- a/PPPredicateSequenceParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPPredicateSequenceParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPPredicateParser subclass:#PPPredicateSequenceParser instanceVariableNames:'size' @@ -9,18 +9,18 @@ PPPredicateSequenceParser comment:'A parser that accepts if a given predicate on an arbitrary number of elements of the input sequence holds. Instance Variables: - size The number of elements to consume.' + size The number of elements to consume.' ! !PPPredicateSequenceParser class methodsFor:'instance creation'! -on: aBlock message: aString negated: aNegatedBlock message: aNegatedString size: anInteger +on: aBlock message: aString negated: aNegatedBlock message: aNegatedString size: anInteger ^ self new initializeOn: aBlock message: aString negated: aNegatedBlock message: aNegatedString size: anInteger ! on: aBlock message: aString size: anInteger - ^ self on: aBlock message: aString negated: [ :each | (aBlock value: each) not ] message: 'no ' , aString size: anInteger + ^ self on: aBlock message: aString negated: [ :each | (aBlock value: each) not ] message: 'no ' , aString size: anInteger ! ! !PPPredicateSequenceParser methodsFor:'accessing'! @@ -38,15 +38,15 @@ predicateMessage := aString. negated := aNegatedBlock. negatedMessage := aNegatedString. - size := anInteger + size := anInteger ! ! !PPPredicateSequenceParser methodsFor:'operators'! negate "Answer a parser that is the negation of the receiving predicate parser." - - ^ self class + + ^ self class on: negated message: negatedMessage negated: predicate message: predicateMessage size: size @@ -67,5 +67,5 @@ !PPPredicateSequenceParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPPredicateSequenceParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPPredicateSequenceParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPPredicateTest.st --- a/PPPredicateTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPPredicateTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPAbstractParseTest subclass:#PPPredicateTest instanceVariableNames:'' @@ -11,9 +11,9 @@ !PPPredicateTest methodsFor:'private'! charactersDo: aBlock - "The limits are 1-255 as far as I know" - self breakPoint: #petitparser. - 1 to: 255 do: [ :index | aBlock value: (Character codePoint: index) ] + "The limits are 1-255 as far as I know" + self breakPoint: #petitparser. + 1 to: 255 do: [ :index | aBlock value: (Character codePoint: index) ] "/ 1 to: 256 do: [ :index | aBlock value: (Character codePoint: index) ] "Modified: / 19-12-2010 / 16:58:58 / Jan Kurs " @@ -27,7 +27,7 @@ parser := PPPredicateObjectParser on: block message: 'starlet'. self assert: parser block = block. self assert: parser message = 'starlet'. - + self assertCharacterSets: parser. self assert: parser parse: '*' to: $*. self assert: parser parse: '**' to: $* end: 1. @@ -236,8 +236,8 @@ testSequenceParser | parser | - parser := PPPredicateSequenceParser - on: [ :value | value first isUppercase ] + parser := PPPredicateSequenceParser + on: [ :value | value first isUppercase ] message: 'uppercase 3 letter words' size: 3. self assert: parser size = 3. @@ -247,7 +247,7 @@ self assert: parser fail: 'abc'. self assert: parser fail: 'aBC'. self assert: parser fail: 'Ab'. - + parser := parser negate. self assert: parser size = 3. self assert: parser fail: 'Abc'. @@ -266,11 +266,11 @@ | positives negatives | positives := self parsedCharacterSet: aParser. negatives := self parsedCharacterSet: aParser negate. - self charactersDo: [ :char | + self charactersDo: [ :char | | positive negative | positive := positives includes: char. negative := negatives includes: char. - self + self assert: ((positive and: [ negative not ]) or: [ positive not and: [ negative ] ]) description: char printString , ' should be in exactly one set' ] @@ -288,5 +288,5 @@ !PPPredicateTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPPredicateTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPPredicateTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPRepeatingParser.st --- a/PPRepeatingParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPRepeatingParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPDelegateParser subclass:#PPRepeatingParser instanceVariableNames:'min max' @@ -9,8 +9,8 @@ PPRepeatingParser comment:'A parser that eagerly parses min to max instances of my delegate. The default instance parses eagerly an infinite number of elements, as min is set to 0 and max to infinity (SmallInteger maxVal). Instance Variables: - min The minimum number of repetitions. - max The maximum number of repetitions.' + min The minimum number of repetitions. + max The maximum number of repetitions.' ! @@ -25,7 +25,7 @@ ! on: aParser min: aMinInteger - ^ (self on: aParser) setMin: aMinInteger max: SmallInteger maxVal + ^ (self on: aParser) setMin: aMinInteger max: SmallInteger maxVal ! on: aParser min: aMinInteger max: aMaxInteger @@ -42,7 +42,7 @@ min "Answer the minimum number of repetitions." - + ^ min ! ! @@ -65,7 +65,7 @@ ^ element ]. elements addLast: element ]. [ elements size < max ] whileTrue: [ - (element := parser parseOn: aStream) isPetitFailure + (element := parser parseOn: aStream) isPetitFailure ifTrue: [ ^ elements asArray ]. elements addLast: element ]. ^ elements asArray @@ -82,5 +82,5 @@ !PPRepeatingParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPRepeatingParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPRepeatingParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPScriptingTest.st --- a/PPScriptingTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPScriptingTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPAbstractParseTest subclass:#PPScriptingTest instanceVariableNames:'' @@ -15,72 +15,72 @@ !PPScriptingTest methodsFor:'examples'! expressionInterpreter - "Same as #expressionInterpreter but with semantic actions." - - | mul prim add dec | - add := PPUnresolvedParser new. - mul := PPUnresolvedParser new. - prim := PPUnresolvedParser new. - dec := ($0 ppMinus: $9) ==> [ :token | token codePoint - $0 codePoint ]. - add def: ((mul , $+ asParser , add) ==> [ :nodes | (nodes at: 1) + (nodes at: 3) ]) - / mul. - mul def: ((prim , $* asParser , mul) ==> [ :nodes | (nodes at: 1) * (nodes at: 3) ]) - / prim. - prim def: (($( asParser , add , $) asParser) ==> [ :nodes | nodes at: 2 ]) - / dec. - ^ add end + "Same as #expressionInterpreter but with semantic actions." + + | mul prim add dec | + add := PPUnresolvedParser new. + mul := PPUnresolvedParser new. + prim := PPUnresolvedParser new. + dec := ($0 ppMinus: $9) ==> [ :token | token codePoint - $0 codePoint ]. + add def: ((mul , $+ asParser , add) ==> [ :nodes | (nodes at: 1) + (nodes at: 3) ]) + / mul. + mul def: ((prim , $* asParser , mul) ==> [ :nodes | (nodes at: 1) * (nodes at: 3) ]) + / prim. + prim def: (($( asParser , add , $) asParser) ==> [ :nodes | nodes at: 2 ]) + / dec. + ^ add end "Modified: / 19-12-2010 / 18:13:51 / Jan Kurs " ! expressionParser - "Simple demo of scripting an expression parser." - - | mul prim add dec | - add := PPUnresolvedParser new. - mul := PPUnresolvedParser new. - prim := PPUnresolvedParser new. - dec := ($0 ppMinus: $9). - add def: (mul , $+ asParser , add) - / mul. - mul def: (prim , $* asParser , mul) - / prim. - prim def: ($( asParser , add , $) asParser) - / dec. - ^ add end + "Simple demo of scripting an expression parser." + + | mul prim add dec | + add := PPUnresolvedParser new. + mul := PPUnresolvedParser new. + prim := PPUnresolvedParser new. + dec := ($0 ppMinus: $9). + add def: (mul , $+ asParser , add) + / mul. + mul def: (prim , $* asParser , mul) + / prim. + prim def: ($( asParser , add , $) asParser) + / dec. + ^ add end "Modified: / 19-12-2010 / 18:14:18 / Jan Kurs " ! straightLineParser - | goal stm stmList id char dec exp expList mulExp primExp nonzero num lower upper | - goal := PPUnresolvedParser new. - stmList := PPUnresolvedParser new. - stm := PPUnresolvedParser new. - exp := PPUnresolvedParser new. - expList := PPUnresolvedParser new. - mulExp := PPUnresolvedParser new. - primExp := PPUnresolvedParser new. - - lower := $a ppMinus: $z. - upper := $A ppMinus: $Z. - char := lower / upper. - nonzero := $1 ppMinus: $9. - dec := $0 ppMinus: $9. - id := char, ( char / dec ) star. - num := $0 asParser / ( nonzero, dec star). + | goal stm stmList id char dec exp expList mulExp primExp nonzero num lower upper | + goal := PPUnresolvedParser new. + stmList := PPUnresolvedParser new. + stm := PPUnresolvedParser new. + exp := PPUnresolvedParser new. + expList := PPUnresolvedParser new. + mulExp := PPUnresolvedParser new. + primExp := PPUnresolvedParser new. - goal def: stmList end. - stmList def: stm , ( $; asParser, stm ) star. - stm def: ( id, ':=' asParser, exp ) - / ( 'print' asParser, $( asParser, expList, $) asParser ). - exp def: mulExp, ( ( $+ asParser / $- asParser ), mulExp ) star. - expList def: exp, ( $, asParser, exp ) star. - mulExp def: primExp, ( ( $* asParser / $/ asParser ), primExp ) star. - primExp def: id - / num - / ( $( asParser, stmList, $, asParser, exp, $) asParser ). - ^ goal + lower := $a ppMinus: $z. + upper := $A ppMinus: $Z. + char := lower / upper. + nonzero := $1 ppMinus: $9. + dec := $0 ppMinus: $9. + id := char, ( char / dec ) star. + num := $0 asParser / ( nonzero, dec star). + + goal def: stmList end. + stmList def: stm , ( $; asParser, stm ) star. + stm def: ( id, ':=' asParser, exp ) + / ( 'print' asParser, $( asParser, expList, $) asParser ). + exp def: mulExp, ( ( $+ asParser / $- asParser ), mulExp ) star. + expList def: exp, ( $, asParser, exp ) star. + mulExp def: primExp, ( ( $* asParser / $/ asParser ), primExp ) star. + primExp def: id + / num + / ( $( asParser, stmList, $, asParser, exp, $) asParser ). + ^ goal "Modified: / 19-12-2010 / 18:15:14 / Jan Kurs " ! ! @@ -88,7 +88,7 @@ !PPScriptingTest methodsFor:'tests'! testExpressionInterpreter - self + self assert: self expressionInterpreter parse: '2*(3+4)' to: 14 @@ -102,14 +102,14 @@ ! testSLassign - + self assert: self straightLineParser parse: 'abc:=1' to: #(#($a #($b $c) ':=' #(#(#($1 #()) #()) #())) #()) ! testSLprint - self + self assert: self straightLineParser parse: 'print(3,4)' to: #(('print' $( ((($3 ()) ()) () (($, ((($4 ()) ()) ())))) $)) ()) @@ -118,5 +118,5 @@ !PPScriptingTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPScriptingTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPScriptingTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPSequenceParser.st --- a/PPSequenceParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPSequenceParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPListParser subclass:#PPSequenceParser instanceVariableNames:'' @@ -23,7 +23,7 @@ permutation: anArrayOfIntegers "Answer a permutation of the receivers sequence." - + anArrayOfIntegers do: [ :index | (index isInteger and: [ index between: 1 and: parsers size ]) ifFalse: [ self error: 'Invalid permutation index: ' , index printString ] ]. @@ -34,12 +34,12 @@ parseOn: aStream "This is optimized code that avoids unnecessary block activations, do not change." - + | start elements element | start := aStream position. elements := Array new: parsers size. 1 to: parsers size do: [ :index | - element := (parsers at: index) + element := (parsers at: index) parseOn: aStream. element isPetitFailure ifTrue: [ aStream position: start. @@ -51,5 +51,5 @@ !PPSequenceParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPSequenceParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPSequenceParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPStream.st --- a/PPStream.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPStream.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" ReadStream subclass:#PPStream instanceVariableNames:'' @@ -13,7 +13,7 @@ !PPStream methodsFor:'accessing'! -next: anInteger +next: anInteger "Answer up to anInteger elements of my collection. Overridden for efficiency." | answer endPosition | @@ -61,5 +61,5 @@ !PPStream class methodsFor:'documentation'! version_SVN - ^ '$Id: PPStream.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPStream.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPToken.st --- a/PPToken.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPToken.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" Object subclass:#PPToken instanceVariableNames:'collection start stop' @@ -9,9 +9,9 @@ PPToken comment:'PPToken represents a parsed part of the input stream. Contrary to a simple String it remembers where it came from, the original collection and its start and stop position. Instance Variables: - collection The collection this token comes from. - start The start position in the collection. - stop The stop position in the collection.' + collection The collection this token comes from. + start The start position in the collection. + stop The stop position in the collection.' ! @@ -26,7 +26,7 @@ ! on: aSequenceableCollection start: aStartInteger stop: aStopInteger - ^ self basicNew + ^ self basicNew initializeOn: aSequenceableCollection start: aStartInteger stop: aStopInteger ! ! @@ -53,7 +53,7 @@ stop "Answer the stop position of this token in the underlying collection." - + ^ stop ! @@ -107,7 +107,7 @@ column "Answer the column number of this token in the underlying collection." - + | position | position := 0. (self newline , [ :stream | @@ -121,7 +121,7 @@ line "Answer the line number of this token in the underlying collection." - + | line | line := 1. (self newline , [ :stream | @@ -136,5 +136,5 @@ !PPToken class methodsFor:'documentation'! version_SVN - ^ '$Id: PPToken.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPToken.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPTokenParser.st --- a/PPTokenParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPTokenParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPFlattenParser subclass:#PPTokenParser instanceVariableNames:'tokenClass' @@ -9,7 +9,7 @@ PPTokenParser comment:'A parser that answers a token of the range my delegate parses. Instance Variables: - tokenClass The token sub-class to be used.' + tokenClass The token sub-class to be used.' ! @@ -27,7 +27,7 @@ initialize tokenClass := self defaultTokenClass - + ! ! !PPTokenParser methodsFor:'private'! @@ -43,5 +43,5 @@ !PPTokenParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPTokenParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPTokenParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPTokenTest.st --- a/PPTokenTest.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPTokenTest.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPAbstractParseTest subclass:#PPTokenTest instanceVariableNames:'' @@ -19,7 +19,7 @@ testCollection | input result | input := 'foo '. - result := self + result := self parse: input using: self identifier. self assert: (result collection = input). @@ -28,7 +28,7 @@ testNew self should: [ PPToken new ] raise: Error. - + ! testPrinting @@ -39,7 +39,7 @@ testSize | result | - result := self + result := self parse: 'foo' using: self identifier. self assert: result size = 3 @@ -47,7 +47,7 @@ testStart | result | - result := self + result := self parse: 'foo' using: self identifier. self assert: result start = 1 @@ -55,7 +55,7 @@ testStop | result | - result := self + result := self parse: 'foo' using: self identifier. self assert: result stop = 3 @@ -64,7 +64,7 @@ testValue | input result | input := 'foo'. - result := self + result := self parse: input using: self identifier. self assert: result value = input. @@ -88,7 +88,7 @@ | result other | result := PPToken on: 'abc'. other := result copyFrom: 2 to: 2. - + self assert: other size = 1. self assert: other start = 2. self assert: other stop = 2. @@ -102,7 +102,7 @@ input := '1' , (String with: Character cr) , '12' , (String with: Character cr with: Character lf) , '123' , (String with: Character lf) , '1234'. parser := #any asParser token star. result := parser parse: input. - result + result with: #(1 2 1 2 3 4 1 2 3 4 1 2 3 4) do: [ :token :line | self assert: token column = line ] ! @@ -112,8 +112,8 @@ input := '1' , (String with: Character cr) , '12' , (String with: Character cr with: Character lf) , '123' , (String with: Character lf) , '1234'. parser := #any asParser token star. result := parser parse: input. - result - with: #(1 1 2 2 2 2 3 3 3 3 4 4 4 4) + result + with: #(1 1 2 2 2 2 3 3 3 3 4 4 4 4) do: [ :token :line | self assert: token line = line ] ! ! @@ -126,5 +126,5 @@ !PPTokenTest class methodsFor:'documentation'! version_SVN - ^ '$Id: PPTokenTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPTokenTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPTrimmingParser.st --- a/PPTrimmingParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPTrimmingParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPDelegateParser subclass:#PPTrimmingParser instanceVariableNames:'trimmer' @@ -53,5 +53,5 @@ !PPTrimmingParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPTrimmingParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPTrimmingParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPUnresolvedParser.st --- a/PPUnresolvedParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPUnresolvedParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPParser subclass:#PPUnresolvedParser instanceVariableNames:'' @@ -26,5 +26,5 @@ !PPUnresolvedParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPUnresolvedParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPUnresolvedParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 PPWrappingParser.st --- a/PPWrappingParser.st Mon Sep 12 19:48:53 2011 +0200 +++ b/PPWrappingParser.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }" +"{ Package: 'stx:goodies/petitparser' }" PPActionParser subclass:#PPWrappingParser instanceVariableNames:'' @@ -20,5 +20,5 @@ !PPWrappingParser class methodsFor:'documentation'! version_SVN - ^ '$Id: PPWrappingParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' + ^ '$Id: PPWrappingParser.st,v 1.2 2012-01-13 11:22:50 cg Exp $' ! ! diff -r e1b11f74e142 -r 90de244a7fa2 abbrev.stc --- a/abbrev.stc Mon Sep 12 19:48:53 2011 +0200 +++ b/abbrev.stc Fri Jan 13 12:22:50 2012 +0100 @@ -1,50 +1,50 @@ -PPAbstractParseTest PPAbstractParseTest squeak:petitparser 'PetitTests-Core' 4 -PPCharSetPredicate PPCharSetPredicate squeak:petitparser 'PetitParser-Tools' 0 -PPFailure PPFailure squeak:petitparser 'PetitParser-Core' 0 -PPMemento PPMemento squeak:petitparser 'PetitParser-Core' 0 -PPParser PPParser squeak:petitparser 'PetitParser-Parsers' 0 -PPParserResource PPParserResource squeak:petitparser 'PetitTests-Core' 1 -PPStream PPStream squeak:petitparser 'PetitParser-Core' 0 -PPToken PPToken squeak:petitparser 'PetitParser-Core' 0 -squeak_petitparser squeak_petitparser squeak:petitparser '* Projects & Packages *' 3 -PPComposedTest PPComposedTest squeak:petitparser 'PetitTests-Tests' 4 -PPCompositeParserTest PPCompositeParserTest squeak:petitparser 'PetitTests-Core' 4 -PPDelegateParser PPDelegateParser squeak:petitparser 'PetitParser-Parsers' 0 -PPEpsilonParser PPEpsilonParser squeak:petitparser 'PetitParser-Parsers' 0 -PPExtensionTest PPExtensionTest squeak:petitparser 'PetitTests-Tests' 4 -PPFailingParser PPFailingParser squeak:petitparser 'PetitParser-Parsers' 0 -PPListParser PPListParser squeak:petitparser 'PetitParser-Parsers' 0 -PPLiteralParser PPLiteralParser squeak:petitparser 'PetitParser-Parsers' 0 -PPMappingTest PPMappingTest squeak:petitparser 'PetitTests-Tests' 4 -PPObjectTest PPObjectTest squeak:petitparser 'PetitTests-Tests' 4 -PPParserTest PPParserTest squeak:petitparser 'PetitTests-Tests' 4 -PPPluggableParser PPPluggableParser squeak:petitparser 'PetitParser-Parsers' 0 -PPPredicateParser PPPredicateParser squeak:petitparser 'PetitParser-Parsers' 0 -PPPredicateTest PPPredicateTest squeak:petitparser 'PetitTests-Tests' 4 -PPScriptingTest PPScriptingTest squeak:petitparser 'PetitTests-Tests' 4 -PPTokenTest PPTokenTest squeak:petitparser 'PetitTests-Tests' 4 -PPUnresolvedParser PPUnresolvedParser squeak:petitparser 'PetitParser-Tools' 0 -PPActionParser PPActionParser squeak:petitparser 'PetitParser-Parsers' 0 -PPAndParser PPAndParser squeak:petitparser 'PetitParser-Parsers' 0 -PPArithmeticParserTest PPArithmeticParserTest squeak:petitparser 'PetitTests-Tests' 4 -PPChoiceParser PPChoiceParser squeak:petitparser 'PetitParser-Parsers' 0 -PPCompositeParser PPCompositeParser squeak:petitparser 'PetitParser-Tools' 0 -PPEndOfInputParser PPEndOfInputParser squeak:petitparser 'PetitParser-Parsers' 0 -PPExpressionParser PPExpressionParser squeak:petitparser 'PetitParser-Tools' 0 -PPFlattenParser PPFlattenParser squeak:petitparser 'PetitParser-Parsers' 0 -PPLambdaParserTest PPLambdaParserTest squeak:petitparser 'PetitTests-Tests' 4 -PPLiteralObjectParser PPLiteralObjectParser squeak:petitparser 'PetitParser-Parsers' 0 -PPLiteralSequenceParser PPLiteralSequenceParser squeak:petitparser 'PetitParser-Parsers' 0 -PPMemoizedParser PPMemoizedParser squeak:petitparser 'PetitParser-Parsers' 0 -PPNotParser PPNotParser squeak:petitparser 'PetitParser-Parsers' 0 -PPOptionalParser PPOptionalParser squeak:petitparser 'PetitParser-Parsers' 0 -PPPredicateObjectParser PPPredicateObjectParser squeak:petitparser 'PetitParser-Parsers' 0 -PPPredicateSequenceParser PPPredicateSequenceParser squeak:petitparser 'PetitParser-Parsers' 0 -PPRepeatingParser PPRepeatingParser squeak:petitparser 'PetitParser-Parsers' 0 -PPSequenceParser PPSequenceParser squeak:petitparser 'PetitParser-Parsers' 0 -PPTrimmingParser PPTrimmingParser squeak:petitparser 'PetitParser-Parsers' 0 -PPArithmeticParser PPArithmeticParser squeak:petitparser 'PetitTests-Examples' 0 -PPExpressionParserTest PPExpressionParserTest squeak:petitparser 'PetitTests-Tests' 4 -PPLambdaParser PPLambdaParser squeak:petitparser 'PetitTests-Examples' 0 -PPTokenParser PPTokenParser squeak:petitparser 'PetitParser-Parsers' 0 -PPWrappingParser PPWrappingParser squeak:petitparser 'PetitParser-Parsers' 0 +PPAbstractParseTest PPAbstractParseTest stx:goodies/petitparser 'PetitTests-Core' 4 +PPCharSetPredicate PPCharSetPredicate stx:goodies/petitparser 'PetitParser-Tools' 0 +PPFailure PPFailure stx:goodies/petitparser 'PetitParser-Core' 0 +PPMemento PPMemento stx:goodies/petitparser 'PetitParser-Core' 0 +PPParser PPParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPParserResource PPParserResource stx:goodies/petitparser 'PetitTests-Core' 1 +PPStream PPStream stx:goodies/petitparser 'PetitParser-Core' 0 +PPToken PPToken stx:goodies/petitparser 'PetitParser-Core' 0 +squeak_petitparser squeak_petitparser stx:goodies/petitparser '* Projects & Packages *' 3 +PPComposedTest PPComposedTest stx:goodies/petitparser 'PetitTests-Tests' 4 +PPCompositeParserTest PPCompositeParserTest stx:goodies/petitparser 'PetitTests-Core' 4 +PPDelegateParser PPDelegateParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPEpsilonParser PPEpsilonParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPExtensionTest PPExtensionTest stx:goodies/petitparser 'PetitTests-Tests' 4 +PPFailingParser PPFailingParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPListParser PPListParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPLiteralParser PPLiteralParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPMappingTest PPMappingTest stx:goodies/petitparser 'PetitTests-Tests' 4 +PPObjectTest PPObjectTest stx:goodies/petitparser 'PetitTests-Tests' 4 +PPParserTest PPParserTest stx:goodies/petitparser 'PetitTests-Tests' 4 +PPPluggableParser PPPluggableParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPPredicateParser PPPredicateParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPPredicateTest PPPredicateTest stx:goodies/petitparser 'PetitTests-Tests' 4 +PPScriptingTest PPScriptingTest stx:goodies/petitparser 'PetitTests-Tests' 4 +PPTokenTest PPTokenTest stx:goodies/petitparser 'PetitTests-Tests' 4 +PPUnresolvedParser PPUnresolvedParser stx:goodies/petitparser 'PetitParser-Tools' 0 +PPActionParser PPActionParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPAndParser PPAndParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPArithmeticParserTest PPArithmeticParserTest stx:goodies/petitparser 'PetitTests-Tests' 4 +PPChoiceParser PPChoiceParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPCompositeParser PPCompositeParser stx:goodies/petitparser 'PetitParser-Tools' 0 +PPEndOfInputParser PPEndOfInputParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPExpressionParser PPExpressionParser stx:goodies/petitparser 'PetitParser-Tools' 0 +PPFlattenParser PPFlattenParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPLambdaParserTest PPLambdaParserTest stx:goodies/petitparser 'PetitTests-Tests' 4 +PPLiteralObjectParser PPLiteralObjectParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPLiteralSequenceParser PPLiteralSequenceParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPMemoizedParser PPMemoizedParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPNotParser PPNotParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPOptionalParser PPOptionalParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPPredicateObjectParser PPPredicateObjectParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPPredicateSequenceParser PPPredicateSequenceParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPRepeatingParser PPRepeatingParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPSequenceParser PPSequenceParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPTrimmingParser PPTrimmingParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPArithmeticParser PPArithmeticParser stx:goodies/petitparser 'PetitTests-Examples' 0 +PPExpressionParserTest PPExpressionParserTest stx:goodies/petitparser 'PetitTests-Tests' 4 +PPLambdaParser PPLambdaParser stx:goodies/petitparser 'PetitTests-Examples' 0 +PPTokenParser PPTokenParser stx:goodies/petitparser 'PetitParser-Parsers' 0 +PPWrappingParser PPWrappingParser stx:goodies/petitparser 'PetitParser-Parsers' 0 diff -r e1b11f74e142 -r 90de244a7fa2 bc.mak --- a/bc.mak Mon Sep 12 19:48:53 2011 +0200 +++ b/bc.mak Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -# $Header: /cvs/stx/stx/goodies/petitparser/bc.mak,v 1.1 2011-08-18 18:56:17 cg Exp $ +# $Header: /cvs/stx/stx/goodies/petitparser/bc.mak,v 1.2 2012-01-13 11:22:50 cg Exp $ # # DO NOT EDIT # automagically generated from the projectDefinition: squeak_petitparser. @@ -14,7 +14,7 @@ # bmake clobber - clean all # # -TOP=..\..\stx +TOP=..\.. INCLUDE_TOP=$(TOP)\.. @@ -23,7 +23,7 @@ !INCLUDE Make.spec -LIBNAME=libsqueak_petitparser +LIBNAME=libszx_goodies_petitparser RESFILES=petitparser.res @@ -69,36 +69,36 @@ $(OUTDIR)PPParser.$(O) PPParser.$(H): PPParser.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)PPStream.$(O) PPStream.$(H): PPStream.st $(INCLUDE_TOP)\stx\libbasic\ReadStream.$(H) $(INCLUDE_TOP)\stx\libbasic\PositionableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\PeekableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\Stream.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)PPToken.$(O) PPToken.$(H): PPToken.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)squeak_petitparser.$(O) squeak_petitparser.$(H): squeak_petitparser.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPDelegateParser.$(O) PPDelegateParser.$(H): PPDelegateParser.st $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPEpsilonParser.$(O) PPEpsilonParser.$(H): PPEpsilonParser.st $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPFailingParser.$(O) PPFailingParser.$(H): PPFailingParser.st $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPListParser.$(O) PPListParser.$(H): PPListParser.st $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPLiteralParser.$(O) PPLiteralParser.$(H): PPLiteralParser.st $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPPluggableParser.$(O) PPPluggableParser.$(H): PPPluggableParser.st $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPPredicateParser.$(O) PPPredicateParser.$(H): PPPredicateParser.st $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPUnresolvedParser.$(O) PPUnresolvedParser.$(H): PPUnresolvedParser.st $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPActionParser.$(O) PPActionParser.$(H): PPActionParser.st $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPAndParser.$(O) PPAndParser.$(H): PPAndParser.st $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPChoiceParser.$(O) PPChoiceParser.$(H): PPChoiceParser.st $(INCLUDE_TOP)\squeak\petitparser\PPListParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPCompositeParser.$(O) PPCompositeParser.$(H): PPCompositeParser.st $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPEndOfInputParser.$(O) PPEndOfInputParser.$(H): PPEndOfInputParser.st $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPExpressionParser.$(O) PPExpressionParser.$(H): PPExpressionParser.st $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPFlattenParser.$(O) PPFlattenParser.$(H): PPFlattenParser.st $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPLiteralObjectParser.$(O) PPLiteralObjectParser.$(H): PPLiteralObjectParser.st $(INCLUDE_TOP)\squeak\petitparser\PPLiteralParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPLiteralSequenceParser.$(O) PPLiteralSequenceParser.$(H): PPLiteralSequenceParser.st $(INCLUDE_TOP)\squeak\petitparser\PPLiteralParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPMemoizedParser.$(O) PPMemoizedParser.$(H): PPMemoizedParser.st $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPNotParser.$(O) PPNotParser.$(H): PPNotParser.st $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPOptionalParser.$(O) PPOptionalParser.$(H): PPOptionalParser.st $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPPredicateObjectParser.$(O) PPPredicateObjectParser.$(H): PPPredicateObjectParser.st $(INCLUDE_TOP)\squeak\petitparser\PPPredicateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPPredicateSequenceParser.$(O) PPPredicateSequenceParser.$(H): PPPredicateSequenceParser.st $(INCLUDE_TOP)\squeak\petitparser\PPPredicateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPRepeatingParser.$(O) PPRepeatingParser.$(H): PPRepeatingParser.st $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPSequenceParser.$(O) PPSequenceParser.$(H): PPSequenceParser.st $(INCLUDE_TOP)\squeak\petitparser\PPListParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPTrimmingParser.$(O) PPTrimmingParser.$(H): PPTrimmingParser.st $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPArithmeticParser.$(O) PPArithmeticParser.$(H): PPArithmeticParser.st $(INCLUDE_TOP)\squeak\petitparser\PPCompositeParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPLambdaParser.$(O) PPLambdaParser.$(H): PPLambdaParser.st $(INCLUDE_TOP)\squeak\petitparser\PPCompositeParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPTokenParser.$(O) PPTokenParser.$(H): PPTokenParser.st $(INCLUDE_TOP)\squeak\petitparser\PPFlattenParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)PPWrappingParser.$(O) PPWrappingParser.$(H): PPWrappingParser.st $(INCLUDE_TOP)\squeak\petitparser\PPActionParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\squeak\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)stx_goodies_petitparser.$(O) stx_goodies_petitparser.$(H): stx_goodies_petitparser.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPDelegateParser.$(O) PPDelegateParser.$(H): PPDelegateParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPEpsilonParser.$(O) PPEpsilonParser.$(H): PPEpsilonParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPFailingParser.$(O) PPFailingParser.$(H): PPFailingParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPListParser.$(O) PPListParser.$(H): PPListParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPLiteralParser.$(O) PPLiteralParser.$(H): PPLiteralParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPPluggableParser.$(O) PPPluggableParser.$(H): PPPluggableParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPPredicateParser.$(O) PPPredicateParser.$(H): PPPredicateParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPUnresolvedParser.$(O) PPUnresolvedParser.$(H): PPUnresolvedParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPActionParser.$(O) PPActionParser.$(H): PPActionParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPAndParser.$(O) PPAndParser.$(H): PPAndParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPChoiceParser.$(O) PPChoiceParser.$(H): PPChoiceParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPListParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPCompositeParser.$(O) PPCompositeParser.$(H): PPCompositeParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPEndOfInputParser.$(O) PPEndOfInputParser.$(H): PPEndOfInputParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPExpressionParser.$(O) PPExpressionParser.$(H): PPExpressionParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPFlattenParser.$(O) PPFlattenParser.$(H): PPFlattenParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPLiteralObjectParser.$(O) PPLiteralObjectParser.$(H): PPLiteralObjectParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPLiteralParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPLiteralSequenceParser.$(O) PPLiteralSequenceParser.$(H): PPLiteralSequenceParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPLiteralParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPMemoizedParser.$(O) PPMemoizedParser.$(H): PPMemoizedParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPNotParser.$(O) PPNotParser.$(H): PPNotParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPOptionalParser.$(O) PPOptionalParser.$(H): PPOptionalParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPPredicateObjectParser.$(O) PPPredicateObjectParser.$(H): PPPredicateObjectParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPPredicateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPPredicateSequenceParser.$(O) PPPredicateSequenceParser.$(H): PPPredicateSequenceParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPPredicateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPRepeatingParser.$(O) PPRepeatingParser.$(H): PPRepeatingParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPSequenceParser.$(O) PPSequenceParser.$(H): PPSequenceParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPListParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPTrimmingParser.$(O) PPTrimmingParser.$(H): PPTrimmingParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPArithmeticParser.$(O) PPArithmeticParser.$(H): PPArithmeticParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPCompositeParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPLambdaParser.$(O) PPLambdaParser.$(H): PPLambdaParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPCompositeParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPTokenParser.$(O) PPTokenParser.$(H): PPTokenParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPFlattenParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)PPWrappingParser.$(O) PPWrappingParser.$(H): PPWrappingParser.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPActionParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\Block.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\BlockContext.$(H) $(INCLUDE_TOP)\stx\libbasic\Context.$(H) $(INCLUDE_TOP)\stx\libbasic\Character.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\PositionableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\PeekableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\Stream.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\String.$(H) $(INCLUDE_TOP)\stx\libbasic\CharacterArray.$(H) $(INCLUDE_TOP)\stx\libbasic\ByteArray.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Symbol.$(H) $(INCLUDE_TOP)\stx\libbasic\UndefinedObject.$(H) $(STCHDR) # ENDMAKEDEPEND --- do not remove this line diff -r e1b11f74e142 -r 90de244a7fa2 extensions.st --- a/extensions.st Mon Sep 12 19:48:53 2011 +0200 +++ b/extensions.st Fri Jan 13 12:22:50 2012 +0100 @@ -1,4 +1,4 @@ -"{ Package: 'squeak:petitparser' }"! +"{ Package: 'stx:goodies/petitparser' }"! !Block methodsFor:'*petitparser-core-converting'! @@ -18,12 +18,12 @@ "Return the Character that is lower than the receiver. Wrap if the resulting value is not a legal Character value. (JS) claus: - modified to return the difference as integer, if the argument - is another character. If the argument is a number, a character is - returned." + modified to return the difference as integer, if the argument + is another character. If the argument is a number, a character is + returned." aMagnitude isCharacter ifTrue:[ - ^ asciivalue - aMagnitude asInteger + ^ asciivalue - aMagnitude asInteger ]. ^ Character codePoint:((asciivalue - aMagnitude asInteger) \\ 16r3FFFFFFF) @@ -46,7 +46,7 @@ ppMinus: aCharacter "Create a range of characters between the receiver and the argument." - + ^ PPPredicateObjectParser between: self and: aCharacter "Created: / 19-12-2010 / 18:13:19 / Jan Kurs " @@ -73,14 +73,14 @@ !PositionableStream methodsFor:'*petitparser-core-converting'! asPetitStream - "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." + "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." - "DUNNO WHY, but on: collection from: position to: last set the start to position -1" - self breakPoint: #petitparser. + "DUNNO WHY, but on: collection from: position to: last set the start to position -1" + self breakPoint: #petitparser. - ^ (collection isNil or: [ position isNil or: [ readLimit isNil ] ]) - ifFalse: [ PPStream on: collection from: (position +1) to: readLimit ] - ifTrue: [ super asPetitStream ] + ^ (collection isNil or: [ position isNil or: [ readLimit isNil ] ]) + ifFalse: [ PPStream on: collection from: (position +1) to: readLimit ] + ifTrue: [ super asPetitStream ] "/ ^ (collection isNil or: [ position isNil or: [ readLimit isNil ] ]) @@ -146,8 +146,8 @@ ^ PPEpsilonParser new ! ! -!squeak_petitparser class methodsFor:'documentation'! +!stx_goodies_petitparser class methodsFor:'documentation'! extensionsVersion_CVS - ^ '$Header: /cvs/stx/stx/goodies/petitparser/extensions.st,v 1.2 2011-09-12 17:48:53 cg Exp $' -! ! \ No newline at end of file + ^ '$Header: /cvs/stx/stx/goodies/petitparser/extensions.st,v 1.3 2012-01-13 11:22:50 cg Exp $' +! ! diff -r e1b11f74e142 -r 90de244a7fa2 libInit.cc --- a/libInit.cc Mon Sep 12 19:48:53 2011 +0200 +++ b/libInit.cc Fri Jan 13 12:22:50 2012 +0100 @@ -1,5 +1,5 @@ /* - * $Header: /cvs/stx/stx/goodies/petitparser/libInit.cc,v 1.1 2011-08-18 18:56:17 cg Exp $ + * $Header: /cvs/stx/stx/goodies/petitparser/libInit.cc,v 1.2 2012-01-13 11:22:50 cg Exp $ * * DO NOT EDIT * automagically generated from the projectDefinition: squeak_petitparser. @@ -12,28 +12,28 @@ #endif #if defined(INIT_TEXT_SECTION) || defined(DLL_EXPORT) -DLL_EXPORT void _libsqueak_petitparser_Init() INIT_TEXT_SECTION; -// DLL_EXPORT void _libsqueak_petitparser_InitDefinition() INIT_TEXT_SECTION; +DLL_EXPORT void _libstx_goodies_petitparser_Init() INIT_TEXT_SECTION; +// DLL_EXPORT void _libstx_goodies_petitparser_InitDefinition() INIT_TEXT_SECTION; #endif -// void _libsqueak_petitparser_InitDefinition(pass, __pRT__, snd) +// void _libstx_goodies_petitparser_InitDefinition(pass, __pRT__, snd) // OBJ snd; struct __vmData__ *__pRT__; { -// __BEGIN_PACKAGE2__("libsqueak_petitparser__DFN", _libsqueak_petitparser_InitDefinition, "squeak:petitparser"); -// _squeak_137petitparser_Init(pass,__pRT__,snd); +// __BEGIN_PACKAGE2__("libstx_goodies_petitparser__DFN", _libstx_goodies_petitparser_InitDefinition, "stx:goodies/petitparser"); +// _stx_137goodies_137petitparser_Init(pass,__pRT__,snd); // __END_PACKAGE__(); // } -void _libsqueak_petitparser_Init(pass, __pRT__, snd) +void _libstx_goodies_petitparser_Init(pass, __pRT__, snd) OBJ snd; struct __vmData__ *__pRT__; { -__BEGIN_PACKAGE2__("libsqueak_petitparser", _libsqueak_petitparser_Init, "squeak:petitparser"); +__BEGIN_PACKAGE2__("libstx_goodies_petitparser", _libstx_goodies_petitparser_Init, "stx:goodies/petitparser"); _PPCharSetPredicate_Init(pass,__pRT__,snd); _PPFailure_Init(pass,__pRT__,snd); _PPMemento_Init(pass,__pRT__,snd); _PPParser_Init(pass,__pRT__,snd); _PPStream_Init(pass,__pRT__,snd); _PPToken_Init(pass,__pRT__,snd); -_squeak_137petitparser_Init(pass,__pRT__,snd); +_stx_137goodies_137petitparser_Init(pass,__pRT__,snd); _PPDelegateParser_Init(pass,__pRT__,snd); _PPEpsilonParser_Init(pass,__pRT__,snd); _PPFailingParser_Init(pass,__pRT__,snd); @@ -64,6 +64,6 @@ _PPTokenParser_Init(pass,__pRT__,snd); _PPWrappingParser_Init(pass,__pRT__,snd); -_squeak_137petitparser_extensions_Init(pass,__pRT__,snd); +_stx_137goodies_137petitparser_extensions_Init(pass,__pRT__,snd); __END_PACKAGE__(); }