Remove Pharoisms to make code more portable and running on Smalltalk/X
* Use ANSI `(Character codePoint: 13)` (`10`) instead of `Character cr` (`lf`), This is more portable
and does not depend on dialects interpretation of `#cr` - Smalltalk/X convert it according to
platform line end convention (UNIX/Windows/Mac)
* Do not assume exact value of a printstring in tests, i.e., instead of
`msg includesSubstring: '$a'
code
`msg includesSubstring: $a printString.
This way, the test is independent on the printString value, which may differ among dialects.
Q: Is printString value of String and/or Character defined in ANSI?
* In assestions, instead of `#equals:` use plain old `#=`, which is more portable.
* Removed Character>>- used to create range parser. Use portable `(Interval from: $a to: $z) asParser`
instead of just `$a - $z`. Do not use ($a to: $z) asParser as in Pharo, Character>>to:
does not create an Interval but an Array (sigh).
--- a/PPFailingParser.st Fri Oct 03 03:11:33 2014 +0100
+++ b/PPFailingParser.st Sun Oct 05 00:05:20 2014 +0100
@@ -52,6 +52,11 @@
^ '$Header: /cvs/stx/stx/goodies/petitparser/PPFailingParser.st,v 1.4 2014-03-04 14:32:28 cg Exp $'
!
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+!
+
version_SVN
^ '$Id: PPFailingParser.st,v 1.4 2014-03-04 14:32:28 cg Exp $'
! !
--- a/PPGreedyRepeatingParser.st Fri Oct 03 03:11:33 2014 +0100
+++ b/PPGreedyRepeatingParser.st Sun Oct 05 00:05:20 2014 +0100
@@ -46,5 +46,10 @@
version_CVS
^ '$Header: /cvs/stx/stx/goodies/petitparser/PPGreedyRepeatingParser.st,v 1.1 2014-03-04 14:32:42 cg Exp $'
+!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
! !
--- a/PPPredicateObjectParser.st Fri Oct 03 03:11:33 2014 +0100
+++ b/PPPredicateObjectParser.st Sun Oct 05 00:05:20 2014 +0100
@@ -42,7 +42,9 @@
!
cr
- ^ self char: Character cr message: 'carriage return expected'
+ ^ self char: (Character codePoint: 13) message: 'carriage return expected'
+
+ "Modified: / 03-10-2014 / 23:56:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
digit
@@ -71,7 +73,9 @@
!
newline
- ^ self chars: (String with: Character cr with: Character lf) message: 'newline expected'
+ ^ self chars: (String with: (Character codePoint: 13) with: (Character codePoint: 10)) message: 'newline expected'
+
+ "Modified: / 03-10-2014 / 23:56:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
punctuation
--- a/PPStream.st Fri Oct 03 03:11:33 2014 +0100
+++ b/PPStream.st Sun Oct 05 00:05:20 2014 +0100
@@ -64,17 +64,21 @@
!PPStream methodsFor:'queries'!
insideCRLF
- (position < 1) ifTrue: [ ^ false ].
-
- ^ (self peek = Character lf) and: [ self peekBack = Character cr ]
+ (position < 1) ifTrue: [ ^ false ].
+
+ ^ (self peek = (Character codePoint: 10)) and: [ self peekBack = (Character codePoint: 13) ]
+
+ "Modified: / 03-10-2014 / 23:52:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
isStartOfLine
- (position = 0) ifTrue: [ ^ true ].
+ (position = 0) ifTrue: [ ^ true ].
- self insideCRLF ifTrue: [ ^ false ].
-
- ^ (self peekBack = Character cr) or: [ self peekBack = Character lf].
+ self insideCRLF ifTrue: [ ^ false ].
+
+ ^ (self peekBack = (Character codePoint: 13)) or: [ self peekBack = (Character codePoint: 10)].
+
+ "Modified: / 03-10-2014 / 23:52:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PPStream class methodsFor:'documentation'!
--- a/PPToken.st Fri Oct 03 03:11:33 2014 +0100
+++ b/PPToken.st Sun Oct 05 00:05:20 2014 +0100
@@ -11,9 +11,15 @@
!PPToken class methodsFor:'initialization'!
initialize
- "Platform independent newline sequence. LF: Unix, CR+LF: Windows, and CR: Apple."
+ "Platform independent newline sequence. LF: Unix, CR+LF: Windows, and CR: Apple."
+
+ | cr lf |
- NewLineParser := (Character lf asParser) / (Character cr asParser , Character lf asParser optional)
+ cr := Character codePoint: 13.
+ lf := Character codePoint: 10.
+ NewLineParser := lf asParser / (cr asParser , lf asParser optional)
+
+ "Modified: / 04-10-2014 / 00:03:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PPToken class methodsFor:'instance creation'!
@@ -127,13 +133,14 @@
newline
"Parser a platform independent newline sequence. LF: Unix, CR+LF: Windows, and CR: Apple."
- |cr|
+ | cr lf |
- cr := Smalltalk isSmalltalkX
- ifTrue:[Character return]
- ifFalse:[Character cr].
- ^ (Character lf asParser)
- / (cr asParser , Character lf asParser optional)
+ cr := Character codePoint: 13.
+ lf := Character codePoint: 10.
+ ^ lf asParser
+ / (cr asParser , lf asParser optional)
+
+ "Modified: / 04-10-2014 / 00:02:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PPToken methodsFor:'querying'!
--- a/analyzer/PPListPattern.st Fri Oct 03 03:11:33 2014 +0100
+++ b/analyzer/PPListPattern.st Sun Oct 05 00:05:20 2014 +0100
@@ -16,5 +16,10 @@
version_CVS
^ '$Header: /cvs/stx/stx/goodies/petitparser/analyzer/PPListPattern.st,v 1.2 2014-03-04 20:27:47 cg Exp $'
+!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
! !
--- a/analyzer/PPRule.st Fri Oct 03 03:11:33 2014 +0100
+++ b/analyzer/PPRule.st Sun Oct 05 00:05:20 2014 +0100
@@ -57,5 +57,10 @@
version_CVS
^ '$Header: /cvs/stx/stx/goodies/petitparser/analyzer/PPRule.st,v 1.2 2014-03-04 20:27:51 cg Exp $'
+!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
! !
--- a/analyzer/analyzer.rc Fri Oct 03 03:11:33 2014 +0100
+++ b/analyzer/analyzer.rc Sun Oct 05 00:05:20 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2014\nCopyright eXept Software AG 1998-2014\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Fri, 03 Oct 2014 02:10:43 GMT\0"
+ VALUE "ProductDate", "Sat, 04 Oct 2014 23:03:58 GMT\0"
END
END
--- a/analyzer/tests/Make.proto Fri Oct 03 03:11:33 2014 +0100
+++ b/analyzer/tests/Make.proto Sun Oct 05 00:05:20 2014 +0100
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/goodies/petitparser/analyzer/tests/Make.proto,v 1.1 2014-03-04 20:26:22 cg Exp $
+# $Header$
#
# DO NOT EDIT
# automagically generated from the projectDefinition: stx_goodies_petitparser_analyzer_tests.
@@ -34,7 +34,7 @@
# add the path(es) here:,
# ********** OPTIONAL: MODIFY the next lines ***
# LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/petitparser/tests -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libbasic
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/petitparser -I$(INCLUDE_TOP)/stx/goodies/petitparser/analyzer -I$(INCLUDE_TOP)/stx/goodies/petitparser/tests -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libbasic
# if you need any additional defines for embedded C code,
@@ -70,12 +70,19 @@
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n '**NOHG**'))
+stx_goodies_petitparser_analyzer_tests.$(O): $(shell hg root)/.hg/dirstate
+endif
+
# run default testsuite for this package
test: $(TOP)/goodies/builder/reports
- $(MAKE) -C $(TOP)/goodies/builder/reports
+ $(MAKE) -C $(TOP)/goodies/builder/reports -f Makefile.init
$(TOP)/goodies/builder/reports/report-runner.sh -D . -r Builder::TestReport -p $(PACKAGE)
@@ -96,7 +103,9 @@
prereq:
cd ../../../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+ cd ../../../../libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+ cd ../../ && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../../sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../tests && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
@@ -119,9 +128,6 @@
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
-$(OUTDIR)PPAnalyzerTest.$(O) PPAnalyzerTest.$(H): PPAnalyzerTest.st $(INCLUDE_TOP)/stx/goodies/petitparser/tests/PPAbstractParserTest.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestAsserter.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestCase.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)PPRewriterTest.$(O) PPRewriterTest.$(H): PPRewriterTest.st $(INCLUDE_TOP)/stx/goodies/petitparser/tests/PPAbstractParserTest.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestAsserter.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestCase.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)PPSearcherTest.$(O) PPSearcherTest.$(H): PPSearcherTest.st $(INCLUDE_TOP)/stx/goodies/petitparser/tests/PPAbstractParserTest.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestAsserter.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestCase.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)stx_goodies_petitparser_analyzer_tests.$(O) stx_goodies_petitparser_analyzer_tests.$(H): stx_goodies_petitparser_analyzer_tests.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/analyzer/tests/Make.spec Fri Oct 03 03:11:33 2014 +0100
+++ b/analyzer/tests/Make.spec Sun Oct 05 00:05:20 2014 +0100
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/goodies/petitparser/analyzer/tests/Make.spec,v 1.1 2014-03-04 20:26:19 cg Exp $
+# $Header$
#
# DO NOT EDIT
# automagically generated from the projectDefinition: stx_goodies_petitparser_analyzer_tests.
@@ -50,18 +50,12 @@
STCWARNINGS=-warnNonStandard
COMMON_CLASSES= \
- PPAnalyzerTest \
- PPRewriterTest \
- PPSearcherTest \
stx_goodies_petitparser_analyzer_tests \
COMMON_OBJS= \
- $(OUTDIR_SLASH)PPAnalyzerTest.$(O) \
- $(OUTDIR_SLASH)PPRewriterTest.$(O) \
- $(OUTDIR_SLASH)PPSearcherTest.$(O) \
$(OUTDIR_SLASH)stx_goodies_petitparser_analyzer_tests.$(O) \
--- a/analyzer/tests/PPAnalyzerTest.st Fri Oct 03 03:11:33 2014 +0100
+++ b/analyzer/tests/PPAnalyzerTest.st Sun Oct 05 00:05:20 2014 +0100
@@ -537,5 +537,10 @@
version_CVS
^ '$Header: /cvs/stx/stx/goodies/petitparser/analyzer/tests/PPAnalyzerTest.st,v 1.4 2014-03-04 20:44:21 cg Exp $'
+!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
! !
--- a/analyzer/tests/bc.mak Fri Oct 03 03:11:33 2014 +0100
+++ b/analyzer/tests/bc.mak Sun Oct 05 00:05:20 2014 +0100
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/goodies/petitparser/analyzer/tests/bc.mak,v 1.1 2014-03-04 20:26:28 cg Exp $
+# $Header$
#
# DO NOT EDIT
# automagically generated from the projectDefinition: stx_goodies_petitparser_analyzer_tests.
@@ -34,7 +34,7 @@
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\petitparser\tests -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libbasic
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\petitparser -I$(INCLUDE_TOP)\stx\goodies\petitparser\analyzer -I$(INCLUDE_TOP)\stx\goodies\petitparser\tests -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libbasic
LOCALDEFINES=
STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -varPrefix=$(LIBNAME)
@@ -52,7 +52,9 @@
prereq:
pushd ..\..\..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+ pushd ..\..\..\..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+ pushd ..\.. & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\..\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\tests & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
@@ -72,9 +74,15 @@
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
-$(OUTDIR)PPAnalyzerTest.$(O) PPAnalyzerTest.$(H): PPAnalyzerTest.st $(INCLUDE_TOP)\stx\goodies\petitparser\tests\PPAbstractParserTest.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestAsserter.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestCase.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)PPRewriterTest.$(O) PPRewriterTest.$(H): PPRewriterTest.st $(INCLUDE_TOP)\stx\goodies\petitparser\tests\PPAbstractParserTest.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestAsserter.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestCase.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)PPSearcherTest.$(O) PPSearcherTest.$(H): PPSearcherTest.st $(INCLUDE_TOP)\stx\goodies\petitparser\tests\PPAbstractParserTest.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestAsserter.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestCase.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)stx_goodies_petitparser_analyzer_tests.$(O) stx_goodies_petitparser_analyzer_tests.$(H): stx_goodies_petitparser_analyzer_tests.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
+
+# **Must be at end**
+
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+!IFDEF HGROOT
+$(OUTDIR)stx_goodies_petitparser_analyzer_tests.$(O): $(HGROOT)\.hg\dirstate
+!ENDIF
--- a/analyzer/tests/libInit.cc Fri Oct 03 03:11:33 2014 +0100
+++ b/analyzer/tests/libInit.cc Sun Oct 05 00:05:20 2014 +0100
@@ -1,5 +1,5 @@
/*
- * $Header: /cvs/stx/stx/goodies/petitparser/analyzer/tests/libInit.cc,v 1.1 2014-03-04 20:26:49 cg Exp $
+ * $Header$
*
* DO NOT EDIT
* automagically generated from the projectDefinition: stx_goodies_petitparser_analyzer_tests.
@@ -27,9 +27,6 @@
void _libstx_goodies_petitparser_analyzer_tests_Init(pass, __pRT__, snd)
OBJ snd; struct __vmData__ *__pRT__; {
__BEGIN_PACKAGE2__("libstx_goodies_petitparser_analyzer_tests", _libstx_goodies_petitparser_analyzer_tests_Init, "stx:goodies/petitparser/analyzer/tests");
-_PPAnalyzerTest_Init(pass,__pRT__,snd);
-_PPRewriterTest_Init(pass,__pRT__,snd);
-_PPSearcherTest_Init(pass,__pRT__,snd);
_stx_137goodies_137petitparser_137analyzer_137tests_Init(pass,__pRT__,snd);
--- a/analyzer/tests/stx_goodies_petitparser_analyzer_tests.st Fri Oct 03 03:11:33 2014 +0100
+++ b/analyzer/tests/stx_goodies_petitparser_analyzer_tests.st Sun Oct 05 00:05:20 2014 +0100
@@ -67,9 +67,9 @@
^ #(
"<className> or (<className> attributes...) in load order"
- PPAnalyzerTest
- PPRewriterTest
- PPSearcherTest
+ (PPAnalyzerTest autoload)
+ (PPRewriterTest autoload)
+ (PPSearcherTest autoload)
#'stx_goodies_petitparser_analyzer_tests'
)
!
@@ -116,5 +116,10 @@
version_CVS
^ '$Header: /cvs/stx/stx/goodies/petitparser/analyzer/tests/stx_goodies_petitparser_analyzer_tests.st,v 1.1 2014-03-04 20:26:59 cg Exp $'
+!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
! !
--- a/analyzer/tests/tests.rc Fri Oct 03 03:11:33 2014 +0100
+++ b/analyzer/tests/tests.rc Sun Oct 05 00:05:20 2014 +0100
@@ -3,8 +3,8 @@
// automagically generated from the projectDefinition: stx_goodies_petitparser_analyzer_tests.
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 6,2,0,1
- PRODUCTVERSION 6,2,3,0
+ FILEVERSION 6,2,32767,32767
+ PRODUCTVERSION 6,2,4,0
#if (__BORLANDC__)
FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE
FILEFLAGS VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
@@ -20,12 +20,12 @@
BEGIN
VALUE "CompanyName", "eXept Software AG\0"
VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
- VALUE "FileVersion", "6.2.0.1\0"
+ VALUE "FileVersion", "6.2.32767.32767\0"
VALUE "InternalName", "stx:goodies/petitparser/analyzer/tests\0"
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2014\nCopyright eXept Software AG 1998-2014\0"
VALUE "ProductName", "Smalltalk/X\0"
- VALUE "ProductVersion", "6.2.3.0\0"
- VALUE "ProductDate", "Tue, 04 Mar 2014 20:26:17 GMT\0"
+ VALUE "ProductVersion", "6.2.4.0\0"
+ VALUE "ProductDate", "Sat, 04 Oct 2014 23:04:00 GMT\0"
END
END
--- a/petitparser.rc Fri Oct 03 03:11:33 2014 +0100
+++ b/petitparser.rc Sun Oct 05 00:05:20 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "(C) Lukas Renggli\0"
VALUE "ProductName", "Petit Parser\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Fri, 03 Oct 2014 02:10:40 GMT\0"
+ VALUE "ProductDate", "Sat, 04 Oct 2014 23:03:54 GMT\0"
END
END
--- a/tests/PPExtensionTest.st Fri Oct 03 03:11:33 2014 +0100
+++ b/tests/PPExtensionTest.st Sun Oct 05 00:05:20 2014 +0100
@@ -72,13 +72,13 @@
testRange
| parser |
- parser := ($a to: $c) asParser.
+ parser := (Interval from: $a to: $c) asParser.
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: / 03-10-2014 / 03:07:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 05-10-2014 / 00:02:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testSequence
--- a/tests/PPLambdaParser.st Fri Oct 03 03:11:33 2014 +0100
+++ b/tests/PPLambdaParser.st Sun Oct 05 00:05:20 2014 +0100
@@ -68,6 +68,11 @@
^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLambdaParser.st,v 1.4 2014-03-04 14:34:00 cg Exp $'
!
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+!
+
version_SVN
^ '$Id: PPLambdaParser.st,v 1.4 2014-03-04 14:34:00 cg Exp $'
! !
--- a/tests/PPParserTest.st Fri Oct 03 03:11:33 2014 +0100
+++ b/tests/PPParserTest.st Sun Oct 05 00:05:20 2014 +0100
@@ -931,21 +931,23 @@
!
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.
- 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')
+ | 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 printString).
+
+ parser := PPFailingParser message: 'error'.
+ self assert: (parser printString includesSubstring: 'error').
+
+ parser := PPPredicateObjectParser on: [ :c | true ] message: 'error'.
+ self assert: (parser printString includesSubstring: 'error')
+
+ "Modified: / 03-10-2014 / 23:43:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PPParserTest methodsFor:'testing-fixtures'!
@@ -1456,16 +1458,16 @@
parser := $a asParser.
self assert: (parser parse: 'a') equals: $a.
self assert: (result := parser parse: 'b') isPetitFailure.
- self assert: (result message includesSubstring: '$a').
+ self assert: (result message includesSubstring: $a printString).
self assert: (result message includesSubstring: 'expected').
self assert: result position equals: 0.
self assert: (parser parse: 'a' readStream) equals: $a.
self assert: (result := parser parse: 'b' readStream) isPetitFailure.
- self assert: (result message includesSubstring: '$a').
+ self assert: (result message includesSubstring: $a printString).
self assert: (result message includesSubstring: 'expected').
self assert: result position equals: 0
- "Modified (format): / 03-10-2014 / 02:48:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 03-10-2014 / 23:42:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testParseOnError0
@@ -1479,35 +1481,39 @@
!
testParseOnError1
- | parser result seen |
- parser := $a asParser.
- result := parser parse: 'a' onError: [ self signalFailure: 'Not supposed to report an error' ].
- self assert: result equals: $a.
- result := parser
- parse: 'b'
- onError: [ :failure |
- self assert: failure position equals: 0.
- self assert: (failure message includesSubstring: '$a').
- self assert: (failure message includesSubstring: 'expected').
- seen := true ].
- self assert: result.
- self assert: seen
+ | parser result seen |
+ parser := $a asParser.
+ result := parser parse: 'a' onError: [ self signalFailure: 'Not supposed to report an error' ].
+ self assert: result equals: $a.
+ result := parser
+ parse: 'b'
+ onError: [ :failure |
+ self assert: failure position equals: 0.
+ self assert: (failure message includesSubstring: $a printString).
+ self assert: (failure message includesSubstring: 'expected').
+ seen := true ].
+ self assert: result.
+ self assert: seen
+
+ "Modified: / 03-10-2014 / 23:42:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testParseOnError2
- | parser result seen |
- parser := $a asParser.
- result := parser parse: 'a' onError: [ self signalFailure: 'Not supposed to report an error' ].
- self assert: result equals: $a.
- result := parser
- parse: 'b'
- onError: [ :msg :pos |
- self assert: (msg includesSubstring: '$a').
- self assert: (msg includesSubstring: 'expected').
- self assert: pos equals: 0.
- seen := true ].
- self assert: result.
- self assert: seen
+ | parser result seen |
+ parser := $a asParser.
+ result := parser parse: 'a' onError: [ self signalFailure: 'Not supposed to report an error' ].
+ self assert: result equals: $a.
+ result := parser
+ parse: 'b'
+ onError: [ :msg :pos |
+ self assert: (msg includesSubstring: $a printString).
+ self assert: (msg includesSubstring: 'expected').
+ self assert: pos equals: 0.
+ seen := true ].
+ self assert: result.
+ self assert: seen
+
+ "Modified: / 03-10-2014 / 23:42:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testParser
--- a/tests/PPPredicateTest.st Fri Oct 03 03:11:33 2014 +0100
+++ b/tests/PPPredicateTest.st Sun Oct 05 00:05:20 2014 +0100
@@ -59,10 +59,12 @@
!
testCr
- | parser |
- parser := #cr asParser.
- self assertCharacterSets: parser.
- self assert: parser parse: (String with: Character cr) to: Character cr
+ | parser |
+ parser := #cr asParser.
+ self assertCharacterSets: parser.
+ self assert: parser parse: (String with: (Character codePoint: 13)) to: (Character codePoint: 13)
+
+ "Modified: / 04-10-2014 / 12:03:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testDigit
--- a/tests/PPScriptingTest.st Fri Oct 03 03:11:33 2014 +0100
+++ b/tests/PPScriptingTest.st Sun Oct 05 00:05:20 2014 +0100
@@ -20,7 +20,7 @@
add := PPUnresolvedParser new.
mul := PPUnresolvedParser new.
prim := PPUnresolvedParser new.
- dec := ($0 to: $9) asParser ==> [ :token | token codePoint - $0 codePoint ].
+ dec := (Interval from: $0 to: $9) asParser ==> [ :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) ])
@@ -29,7 +29,7 @@
/ dec.
^ add end
- "Modified: / 03-10-2014 / 02:54:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 05-10-2014 / 00:02:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
expressionParser
@@ -39,7 +39,7 @@
add := PPUnresolvedParser new.
mul := PPUnresolvedParser new.
prim := PPUnresolvedParser new.
- dec := ($0 to: $9) asParser.
+ dec := (Interval from: $0 to: $9) asParser.
add def: (mul , $+ asParser , add)
/ mul.
mul def: (prim , $* asParser , mul)
@@ -48,7 +48,7 @@
/ dec.
^ add end
- "Modified: / 03-10-2014 / 02:54:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 05-10-2014 / 00:03:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
straightLineParser
@@ -61,11 +61,11 @@
mulExp := PPUnresolvedParser new.
primExp := PPUnresolvedParser new.
- lower := ($a to: $z) asParser.
- upper := ($A to: $Z) asParser.
+ lower := (Interval from: $a to: $z) asParser.
+ upper := (Interval from: $A to: $Z) asParser.
char := lower / upper.
- nonzero := ($1 to: $9) asParser.
- dec := ($0 to: $9) asParser.
+ nonzero := (Interval from: $1 to: $9) asParser.
+ dec := (Interval from: $0 to: $9) asParser.
id := char, ( char / dec ) star.
num := $0 asParser / ( nonzero, dec star).
@@ -81,7 +81,7 @@
/ ( $( asParser, stmList, $, asParser, exp, $) asParser ).
^ goal
- "Modified: / 03-10-2014 / 02:56:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 05-10-2014 / 00:03:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PPScriptingTest methodsFor:'tests'!
--- a/tests/PPTokenTest.st Fri Oct 03 03:11:33 2014 +0100
+++ b/tests/PPTokenTest.st Sun Oct 05 00:05:20 2014 +0100
@@ -89,21 +89,25 @@
!PPTokenTest methodsFor:'testing-querying'!
testColumn
- | input parser result |
- 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 2 1 2 3 4 1 2 3 4 1 2 3 4) do: [ :token :line | self assert: token column equals: line ]
+ | input parser result |
+ input := '1' , (String with: (Character codePoint: 13)) , '12' , (String with: (Character codePoint: 13) with: (Character codePoint: 10)) , '123'
+ , (String with: (Character codePoint: 10)) , '1234'.
+ parser := #any asParser token star.
+ result := parser parse: input.
+ result with: #(1 2 1 2 3 4 1 2 3 4 1 2 3 4) do: [ :token :line | self assert: token column equals: line ]
+
+ "Modified: / 03-10-2014 / 23:53:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testLine
- | input parser result |
- 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) do: [ :token :line | self assert: token line equals: line ]
+ | input parser result |
+ input := '1' , (String with: (Character codePoint: 13)) , '12' , (String with:(Character codePoint: 13) with: (Character codePoint: 10)) , '123'
+ , (String with: (Character codePoint: 10)) , '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) do: [ :token :line | self assert: token line equals: line ]
+
+ "Modified: / 03-10-2014 / 23:54:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PPTokenTest methodsFor:'testing-values'!
--- a/tests/tests.rc Fri Oct 03 03:11:33 2014 +0100
+++ b/tests/tests.rc Sun Oct 05 00:05:20 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2014\nCopyright eXept Software AG 1998-2014\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Fri, 03 Oct 2014 02:10:41 GMT\0"
+ VALUE "ProductDate", "Sat, 04 Oct 2014 23:03:56 GMT\0"
END
END