|
1 "{ Package: 'stx:goodies/petitparser/tests' }" |
|
2 |
|
3 TestCase subclass:#PPAbstractParserTest |
|
4 instanceVariableNames:'' |
|
5 classVariableNames:'' |
|
6 poolDictionaries:'' |
|
7 category:'PetitTests-Core' |
|
8 ! |
|
9 |
|
10 |
|
11 !PPAbstractParserTest class methodsFor:'accessing'! |
|
12 |
|
13 packageNamesUnderTest |
|
14 ^ #('PetitParser' 'PetitTests') |
|
15 ! ! |
|
16 |
|
17 !PPAbstractParserTest class methodsFor:'testing'! |
|
18 |
|
19 isAbstract |
|
20 ^ self name = #PPAbstractParserTest |
|
21 ! ! |
|
22 |
|
23 !PPAbstractParserTest methodsFor:'utilities'! |
|
24 |
|
25 assert: aParser fail: aCollection |
|
26 ^ self assert: aParser fail: aCollection end: 0 |
|
27 ! |
|
28 |
|
29 assert: aParser fail: aCollection end: anInteger |
|
30 | stream result | |
|
31 self |
|
32 assert: aParser isPetitParser |
|
33 description: 'Parser invalid'. |
|
34 stream := aCollection asPetitStream. |
|
35 result := aParser parse: stream. |
|
36 self |
|
37 assert: result isPetitFailure |
|
38 description: 'Parser did not fail'. |
|
39 self |
|
40 assert: stream position = anInteger |
|
41 description: 'Parser failed at wrong position'. |
|
42 ^ result |
|
43 ! |
|
44 |
|
45 assert: aParser parse: aCollection |
|
46 ^ self assert: aParser parse: aCollection to: nil end: aCollection size |
|
47 ! |
|
48 |
|
49 assert: aParser parse: aCollection end: anInteger |
|
50 ^ self assert: aParser parse: aCollection to: nil end: anInteger |
|
51 ! |
|
52 |
|
53 assert: aParser parse: aCollection to: anObject |
|
54 ^ self assert: aParser parse: aCollection to: anObject end: aCollection size |
|
55 ! |
|
56 |
|
57 assert: aParser parse: aCollection to: aTargetObject end: anInteger |
|
58 | stream result | |
|
59 self |
|
60 assert: aParser isPetitParser |
|
61 description: 'Parser invalid'. |
|
62 stream := aCollection asPetitStream. |
|
63 result := aParser parse: stream. |
|
64 aTargetObject isNil |
|
65 ifTrue: [ self deny: result isPetitFailure ] |
|
66 ifFalse: [ self assert: result = aTargetObject ]. |
|
67 self |
|
68 assert: stream position = anInteger |
|
69 description: 'Parser accepted at wrong position'. |
|
70 ^ result |
|
71 ! |
|
72 |
|
73 assert: aParser parse: aCollection toToken: aStartInteger stop: aStopInteger |
|
74 ^ self assert: aParser parse: aCollection toToken: aStartInteger stop: aStopInteger end: aCollection size |
|
75 ! |
|
76 |
|
77 assert: aParser parse: aParserObject toToken: aStartInteger stop: aStopInteger end: anEndInteger |
|
78 | token | |
|
79 token := self assert: aParser parse: aParserObject to: nil end: anEndInteger. |
|
80 self assert: (token isKindOf: PPToken). |
|
81 self assert: (token start = aStartInteger). |
|
82 self assert: (token stop = aStopInteger). |
|
83 ^ token |
|
84 ! ! |
|
85 |
|
86 !PPAbstractParserTest class methodsFor:'documentation'! |
|
87 |
|
88 version |
|
89 ^ '$Header: /cvs/stx/stx/goodies/petitparser/tests/PPAbstractParserTest.st,v 1.1 2014-03-04 14:02:47 cg Exp $' |
|
90 ! |
|
91 |
|
92 version_CVS |
|
93 ^ '$Header: /cvs/stx/stx/goodies/petitparser/tests/PPAbstractParserTest.st,v 1.1 2014-03-04 14:02:47 cg Exp $' |
|
94 ! ! |
|
95 |