--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/PPCInlineNotLiteralNode.st Sun Oct 26 01:03:31 2014 +0000
@@ -0,0 +1,55 @@
+"{ Package: 'stx:goodies/petitparser/compiler' }"
+
+PPCAbstractLiteralNode subclass:#PPCInlineNotLiteralNode
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'PetitCompiler-Nodes'
+!
+
+PPCInlineNotLiteralNode comment:''
+!
+
+!PPCInlineNotLiteralNode methodsFor:'accessing'!
+
+literal
+
+ ^ literal
+!
+
+literal: anObject
+
+ literal := anObject
+!
+
+prefix
+ ^ #notLit
+! !
+
+!PPCInlineNotLiteralNode methodsFor:'as yet unclassified'!
+
+compileWith: compiler effect: effect id: id
+ | encodedLiteral size |
+ encodedLiteral := self encodeQuotes: literal.
+ size := literal size asString.
+
+ compiler startInline: id.
+ compiler add: '((context peek: ', size, ') =#''', encodedLiteral, ''')'.
+ compiler indent.
+ compiler add: ' ifTrue: [ self error: ''', encodedLiteral, ' not expected'' ]'.
+ compiler add: ' ifFalse: [ nil ].'.
+ compiler dedent.
+ ^ compiler stopInline.
+! !
+
+!PPCInlineNotLiteralNode methodsFor:'printing'!
+
+firstCharParser
+ ^ literal first asParser not
+!
+
+printOn: aStream
+ aStream nextPutAll: #inlined.
+ super printOn: aStream.
+! !
+