diff -r 17ba167b8ee1 -r 553a5456963b compiler/PPCInlineNotLiteralNode.st --- /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. +! ! +