compiler/stx_goodies_petitparser_compiler.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 24 Jul 2015 15:06:54 +0100
changeset 502 1e45d3c96ec5
parent 464 f6d77fee9811
child 503 ff58cd9f1f3c
child 515 b5316ef15274
permissions -rw-r--r--
Updated to PetitCompiler-JanVrany.135, PetitCompiler-Tests-JanKurs.93, PetitCompiler-Extras-Tests-JanVrany.16, PetitCompiler-Benchmarks-JanKurs.12 Name: PetitCompiler-JanVrany.135 Author: JanVrany Time: 22-07-2015, 06:53:29.127 PM UUID: 890178b5-275d-46af-a2ad-1738998f07cb Ancestors: PetitCompiler-JanVrany.134 Name: PetitCompiler-Tests-JanKurs.93 Author: JanKurs Time: 20-07-2015, 11:30:10.283 PM UUID: 6473e671-ad70-42ca-b6c3-654b78edc531 Ancestors: PetitCompiler-Tests-JanKurs.92 Name: PetitCompiler-Extras-Tests-JanVrany.16 Author: JanVrany Time: 22-07-2015, 05:18:22.387 PM UUID: 8f6f9129-dbba-49b1-9402-038470742f98 Ancestors: PetitCompiler-Extras-Tests-JanKurs.15 Name: PetitCompiler-Benchmarks-JanKurs.12 Author: JanKurs Time: 06-07-2015, 02:10:06.901 PM UUID: cb24f1ac-46a4-494d-9780-64576f0f0dba Ancestors: PetitCompiler-Benchmarks-JanKurs.11, PetitCompiler-Benchmarks-JanVrany.e29bd90f388e.20150619081300

"{ Package: 'stx:goodies/petitparser/compiler' }"

"{ NameSpace: Smalltalk }"

LibraryDefinition subclass:#stx_goodies_petitparser_compiler
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'* Projects & Packages *'
!


!stx_goodies_petitparser_compiler class methodsFor:'accessing - monticello'!

monticelloLastMergedVersionInfo
    "The last merged version is: "

    ^ '
    Name: PetitCompiler-JanKurs.20150510144201
    Author: JanKurs
    Time: 10-05-2015, 04:42:29.192 PM
    UUID: 58a4786b-1182-4904-8b44-a13d3918f244
    Repository: http://smalltalkhub.com/mc/JanKurs/PetitParser/main
    '

    "Created: / 03-10-2014 / 02:27:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 12-05-2015 / 01:19:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

monticelloName
    "Return name of the package for Monticello. This is used when package is exported"

    ^ 'PetitCompiler'

    "Created: / 03-10-2014 / 01:47:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 26-10-2014 / 01:27:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!stx_goodies_petitparser_compiler class methodsFor:'description'!

excludedFromPreRequisites
    "list packages which are to be explicitely excluded from the automatic constructed
     prerequisites list. If empty, everything that is found along the inheritance of any of
     my classes is considered to be a prerequisite package."

    ^ #(
    )
!

mandatoryPreRequisites
    "list packages which are mandatory as a prerequisite.
     This are packages containing superclasses of my classes and classes which
     are extended by myself.
     They are mandatory, because we need these packages as a prerequisite for loading and compiling.
     This method is generated automatically,
     by searching along the inheritance chain of all of my classes."

    ^ #(
        #'stx:goodies/petitparser'    "PPActionParser - extended"
        #'stx:goodies/petitparser/parsers/java'    "PPJavaWhitespaceParser - extended"
        #'stx:goodies/petitparser/parsers/smalltalk'    "PPSmalltalkGrammar - extended"
        #'stx:libbasic'    "Character - extended"
    )
!

referencedPreRequisites
    "list packages which are a prerequisite, because they contain
     classes which are referenced by my classes.
     We do not need these packages as a prerequisite for compiling or loading,
     however, a class from it may be referenced during execution and having it
     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
     includes explicit checks for the package being present.
     This method is generated automatically,
     by searching all classes (and their packages) which are referenced by my classes."

    ^ #(
        #'stx:goodies/petitparser/analyzer'    "PPSentinel - referenced by PPCompiledParser class>>referringParser"
        #'stx:goodies/refactoryBrowser/parser'    "RBAssignmentNode - referenced by PPCCodeGenerator>>visitActionNode:"
        #'stx:libbasic2'    "IdentityBag - referenced by PEGFsa>>checkTransitionsIdentity"
        #'stx:libview'    "Color - referenced by PEGFsa>>viewGraphOn:"
    )
!

stcOptimizationOptions
    "do not inline the not operation here - it is overwritten"

    ^ super stcOptimizationOptions , ' -inlinenot'

    "Created: / 13-04-2015 / 14:18:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

subProjects
    "list packages which are known as subprojects.
     The generated makefile will enter those and make there as well.
     However: they are not forced to be loaded when a package is loaded;
     for those, redefine requiredPrerequisites."

    ^ #(
    )
! !

!stx_goodies_petitparser_compiler class methodsFor:'description - contents'!

classNamesAndAttributes
    "lists the classes which are to be included in the project.
     Each entry in the list may be: a single class-name (symbol),
     or an array-literal consisting of class name and attributes.
     Attributes are: #autoload or #<os> where os is one of win32, unix,..."

    ^ #(
        "<className> or (<className> attributes...) in load order"
        PEGFsa
        PEGFsaFailure
        PEGFsaInterpret
        PEGFsaPair
        PEGFsaState
        PEGFsaTransition
        PPCArguments
        PPCBridge
        PPCClassBuilder
        PPCCodeBlock
        PPCCodeGen
        PPCCompiledMethod
        PPCCompiler
        PPCCompilerTokenErrorStrategy
        PPCCompilerTokenRememberStrategy
        PPCCompilerTokenizingErrorStrategy
        PPCCompilerTokenizingRememberStrategy
        PPCConfiguration
        PPCContext
        PPCContextMemento
        PPCGuard
        PPCMethod
        PPCNode
        PPCNodeVisitor
        PPCPluggableConfiguration
        PPCScanner
        PPCScannerCodeGenerator
        PPCTokenGuard
        PPCompiledParser
        PPMappedActionParser
        #'stx_goodies_petitparser_compiler'
        FooScanner
        PEGFsaGenerator
        PPCAbstractLiteralNode
        PPCAbstractPredicateNode
        PPCAnyNode
        PPCCharacterNode
        PPCCodeGenerator
        PPCDelegateNode
        PPCEndOfFileNode
        PPCFSACodeGen
        PPCInlinedMethod
        PPCInliningVisitor
        PPCListNode
        PPCNilNode
        PPCPluggableNode
        PPCProfilingContext
        PPCRewritingVisitor
        PPCTokenizingCompiler
        PPCTokenizingConfiguration
        PPCUniversalConfiguration
        PPCUnknownNode
        PPTokenizingCompiledParser
        PPCAbstractActionNode
        PPCAndNode
        PPCCharSetPredicateNode
        PPCChoiceNode
        PPCCopyVisitor
        PPCEndOfInputNode
        PPCForwardNode
        PPCLL1Visitor
        PPCLiteralNode
        PPCMergingVisitor
        PPCMessagePredicateNode
        PPCNegateNode
        PPCNotCharSetPredicateNode
        PPCNotCharacterNode
        PPCNotLiteralNode
        PPCNotMessagePredicateNode
        PPCNotNode
        PPCOptimizeChoices
        PPCOptionalNode
        PPCPlusNode
        PPCPredicateNode
        PPCRecognizerComponentDetector
        PPCRecognizerComponentVisitor
        PPCSentinelNode
        PPCSequenceNode
        PPCSpecializingVisitor
        PPCStarNode
        PPCTokenCodeGenerator
        PPCTokenConsumeNode
        PPCTokenDetector
        PPCTokenNode
        PPCTokenVisitor
        PPCTokenWhitespaceNode
        PPCTokenizingCodeGenerator
        PPCTokenizingParserNode
        PPCTokenizingVisitor
        PPCTrimmingTokenNode
        PPCActionNode
        PPCDeterministicChoiceNode
        PPCRecognizingSequenceNode
        PPCStarAnyNode
        PPCStarCharSetPredicateNode
        PPCStarMessagePredicateNode
        PPCSymbolActionNode
        PPCTokenChoiceNode
        PPCTrimNode
        PPCTrimmingCharacterTokenNode
        PPCMappedActionNode
        PPCTokenStarMessagePredicateNode
        PPCTokenStarSeparatorNode
    )
!

extensionMethodNames
    "list class/selector pairs of extensions.
     A correponding method with real names must be present in my concrete subclasses"

    ^ #(
        Character ppcPrintable
        Object isInlinedMethod
        PPActionParser asCompilerNode
        PPActionParser compileWith:
        PPAndParser asCompilerNode
        PPCharSetPredicate block
        PPCharSetPredicate classification
        PPCharSetPredicate equals:
        PPChoiceParser asCompilerNode
        PPChoiceParser compileWith:
        PPContext asCompiledParserContext
        PPContext comment
        PPContext comment:
        PPContext compiledParser
        PPContext compiledParser:
        PPContext lwRemember
        PPContext lwRestore:
        PPContext peek:
        PPContext whitespace
        PPContext whitespace:
        PPDelegateParser asCompilerNode
        PPDelegateParser compileWith:
        PPEpsilonParser asCompilerNode
        PPEpsilonParser compileWith:
        PPFailure context:
        PPFailure message:
        PPFailure position:
        PPLiteralObjectParser asCompilerNode
        PPLiteralObjectParser compileWith:
        PPLiteralParser id
        PPLiteralSequenceParser asCompilerNode
        PPLiteralSequenceParser compileWith:
        PPNotParser asCompilerNode
        PPNotParser compileWith:
        PPOptionalParser asCompilerNode
        PPOptionalParser compileWith:
        PPParser asCompilerNode
        PPParser asCompilerTree
        PPParser bridge
        PPParser compile
        PPParser compile:
        PPParser compile:andParse:
        PPParser firstSetSuchThat:
        PPParser firstSetSuchThat:into:openSet:
        PPParser id
        PPParser isCompiled
        PPParser isContextFree
        PPParser isContextFreePrim
        PPParser isToken
        PPParser isTokenParser
        PPParser optimize
        PPParser optimized
        PPParser trimmingToken
        PPPluggableParser acceptsEpsilon
        PPPluggableParser asCompilerNode
        PPPossessiveRepeatingParser asCompilerNode
        PPPossessiveRepeatingParser compileWith:
        PPPredicateObjectParser asCompilerNode
        PPPredicateObjectParser compileWith:
        PPPredicateObjectParser firstCharSet
        PPPredicateObjectParser firstCharSetCached
        PPSequenceParser asCompilerNode
        PPSequenceParser compileWith:
        PPSequenceParser firstSetSuchThat:into:openSet:
        PPSmalltalkGrammar comment
        PPSmalltalkGrammar whitespace
        PPSmalltalkTokenParser compileWith:
        PPSmalltalkTokenParser parseOnX:
        PPSmalltalkTokenParser whitespace
        PPSmalltalkWhitespaceParser #'='
        PPSmalltalkWhitespaceParser acceptsEpsilon
        PPSmalltalkWhitespaceParser acceptsEpsilonOpenSet:
        PPSmalltalkWhitespaceParser firstCharSet
        PPStream peek:
        PPToken #'='
        PPToken hash
        PPToken isToken
        PPTokenParser asCompilerNode
        PPTokenParser displayName
        PPTokenParser isFirstSetTerminal
        PPTokenParser isTokenParser
        PPTokenParser optimize
        PPTokenParser parser
        PPTokenParser startsWith:
        PPTokenParser whitespace
        PPTrimmingParser asCompilerNode
        UndefinedObject asInteger
        UndefinedObject isAlphaNumeric
        UndefinedObject isDigit
        UndefinedObject isLetter
        UndefinedObject isSeparator
        PPCharSetPredicate #'='
        PPCharSetPredicate hash
        PPContext atWs
        PPContext methodInvoked:
        PPContext setWs
        PPJavaWhitespaceParser #'='
        PPJavaWhitespaceParser hash
        PPParser compileAs:
        PPParser compileWithConfiguration:
        PPParser javaToken
        PPContext skipSeparators
        PPEndOfInputParser asCompilerNode
        PPParser allNodesDo:seen:
        PPSmalltalkWhitespaceParser hash
        PPParser compileTokenizing
        Object canHavePPCId
        PPCompositeParser asCompilerNode
        PPSequenceParser map:
    )
! !

!stx_goodies_petitparser_compiler class methodsFor:'description - project information'!

companyName
    "Returns a company string which will appear in <lib>.rc.
     Under win32, this is placed into the dlls file-info"

    ^ 'eXept Software AG'
!

description
    "Returns a description string which will appear in nt.def / bc.def"

    ^ 'Smalltalk/X Class library'
!

legalCopyright
    "Returns a copyright string which will appear in <lib>.rc.
     Under win32, this is placed into the dlls file-info"

    ^ 'Copyright Claus Gittinger 1988-2014\nCopyright eXept Software AG 1998-2014'
!

productName
    "Returns a product name which will appear in <lib>.rc.
     Under win32, this is placed into the dlls file-info.
     This method is usually redefined in a concrete application definition"

    ^ 'Smalltalk/X'
! !

!stx_goodies_petitparser_compiler class methodsFor:'documentation'!

version_HG
    ^ '$Changeset: <not expanded> $'
! !