--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PPStartOfWordParser.st Mon Apr 13 22:00:44 2015 +0100
@@ -0,0 +1,42 @@
+"{ Package: 'stx:goodies/petitparser' }"
+
+"{ NameSpace: Smalltalk }"
+
+PPParser subclass:#PPStartOfWordParser
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'PetitParser-Parsers'
+!
+
+!PPStartOfWordParser methodsFor:'as yet unclassified'!
+
+acceptsEpsilon
+ ^ true
+!
+
+parseOn: aPPContext
+ aPPContext atEnd ifTrue: [
+ ^ PPFailure message: 'Start of word expected' context: aPPContext at: aPPContext position
+ ].
+
+ (aPPContext position == 0) ifTrue: [
+ (aPPContext peek isAlphaNumeric) ifTrue: [
+ ^ #startOfWord
+ ] ifFalse: [
+ ^ PPFailure message: 'Start of word expected' context: aPPContext at: aPPContext position
+ ]
+ ].
+
+ aPPContext back.
+ aPPContext peek isAlphaNumeric ifTrue: [
+ ^ PPFailure message: 'Start of word expected' context: aPPContext at: aPPContext position
+ ].
+ aPPContext next.
+
+ ^ aPPContext peek isAlphaNumeric ifTrue: [ #startOfWord ] ifFalse: [
+ PPFailure message: 'Start of word expected' context: aPPContext at: aPPContext position
+ ]
+
+! !
+