From: khartlage Date: Mon, 22 Dec 2003 14:39:48 +0000 (+0000) Subject: new version with WorkingCopy Management X-Git-Url: http://git.phpeclipse.com?hp=05f7e81b0c46ad815bc6a3a895cf628d071eecfc new version with WorkingCopy Management --- diff --git a/net.sourceforge.phpeclipse/icons/ctool16/newclass_wiz.gif b/net.sourceforge.phpeclipse/icons/ctool16/newclass_wiz.gif deleted file mode 100644 index 901d55d..0000000 Binary files a/net.sourceforge.phpeclipse/icons/ctool16/newclass_wiz.gif and /dev/null differ diff --git a/net.sourceforge.phpeclipse/icons/etool16/segment_edit.gif b/net.sourceforge.phpeclipse/icons/etool16/segment_edit.gif deleted file mode 100644 index e292fe5..0000000 Binary files a/net.sourceforge.phpeclipse/icons/etool16/segment_edit.gif and /dev/null differ diff --git a/net.sourceforge.phpeclipse/icons/obj16/class_obj.gif b/net.sourceforge.phpeclipse/icons/obj16/class_obj.gif deleted file mode 100644 index 2db7604..0000000 Binary files a/net.sourceforge.phpeclipse/icons/obj16/class_obj.gif and /dev/null differ diff --git a/net.sourceforge.phpeclipse/icons/obj16/error_obj.gif b/net.sourceforge.phpeclipse/icons/obj16/error_obj.gif deleted file mode 100644 index b04020b..0000000 Binary files a/net.sourceforge.phpeclipse/icons/obj16/error_obj.gif and /dev/null differ diff --git a/net.sourceforge.phpeclipse/icons/obj16/impc_obj.gif b/net.sourceforge.phpeclipse/icons/obj16/impc_obj.gif deleted file mode 100644 index e5b8675..0000000 Binary files a/net.sourceforge.phpeclipse/icons/obj16/impc_obj.gif and /dev/null differ diff --git a/net.sourceforge.phpeclipse/icons/obj16/info_obj.gif b/net.sourceforge.phpeclipse/icons/obj16/info_obj.gif deleted file mode 100644 index 26c7477..0000000 Binary files a/net.sourceforge.phpeclipse/icons/obj16/info_obj.gif and /dev/null differ diff --git a/net.sourceforge.phpeclipse/icons/obj16/int_obj.gif b/net.sourceforge.phpeclipse/icons/obj16/int_obj.gif deleted file mode 100644 index 13c9570..0000000 Binary files a/net.sourceforge.phpeclipse/icons/obj16/int_obj.gif and /dev/null differ diff --git a/net.sourceforge.phpeclipse/icons/obj16/template_obj.gif b/net.sourceforge.phpeclipse/icons/obj16/template_obj.gif deleted file mode 100644 index 65c2632..0000000 Binary files a/net.sourceforge.phpeclipse/icons/obj16/template_obj.gif and /dev/null differ diff --git a/net.sourceforge.phpeclipse/icons/obj16/warning_obj.gif b/net.sourceforge.phpeclipse/icons/obj16/warning_obj.gif deleted file mode 100644 index cf8d571..0000000 Binary files a/net.sourceforge.phpeclipse/icons/obj16/warning_obj.gif and /dev/null differ diff --git a/net.sourceforge.phpeclipse/icons/wizban/newclass_wiz.gif b/net.sourceforge.phpeclipse/icons/wizban/newclass_wiz.gif deleted file mode 100644 index d3e2843..0000000 Binary files a/net.sourceforge.phpeclipse/icons/wizban/newclass_wiz.gif and /dev/null differ diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/compiler/IProblem.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/compiler/IProblem.java new file mode 100644 index 0000000..b6241ef --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/compiler/IProblem.java @@ -0,0 +1,553 @@ +/******************************************************************************* + * Copyright (c) 2000, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + * IBM Corporation - added the following constants + * NonStaticAccessToStaticField + * NonStaticAccessToStaticMethod + * Task + * ExpressionShouldBeAVariable + * AssignmentHasNoEffect + * IBM Corporation - added the following constants + * TooManySyntheticArgumentSlots + * TooManyArrayDimensions + * TooManyBytesForStringConstant + * TooManyMethods + * TooManyFields + * NonBlankFinalLocalAssignment + * ObjectCannotHaveSuperTypes + * MissingSemiColon + * InvalidParenthesizedExpression + * EnclosingInstanceInConstructorCall + * BytecodeExceeds64KLimitForConstructor + * IncompatibleReturnTypeForNonInheritedInterfaceMethod + * UnusedPrivateMethod + * UnusedPrivateConstructor + * UnusedPrivateType + * UnusedPrivateField + * IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod + *******************************************************************************/ +package net.sourceforge.phpdt.core.compiler; + +import net.sourceforge.phpdt.internal.compiler.lookup.ProblemReasons; + +/** + * Description of a Java problem, as detected by the compiler or some of the underlying + * technology reusing the compiler. + * A problem provides access to: + * + * + * Note: the compiler produces IProblems internally, which are turned into markers by the JavaBuilder + * so as to persist problem descriptions. This explains why there is no API allowing to reach IProblem detected + * when compiling. However, the Java problem markers carry equivalent information to IProblem, in particular + * their ID (attribute "id") is set to one of the IDs defined on this interface. + * + * @since 2.0 + */ +public interface IProblem { + + /** + * Answer back the original arguments recorded into the problem. + * @return the original arguments recorded into the problem + */ + String[] getArguments(); + + /** + * Returns the problem id + * + * @return the problem id + */ + int getID(); + + /** + * Answer a localized, human-readable message string which describes the problem. + * + * @return a localized, human-readable message string which describes the problem + */ + String getMessage(); + + /** + * Answer the file name in which the problem was found. + * + * @return the file name in which the problem was found + */ + char[] getOriginatingFileName(); + + /** + * Answer the end position of the problem (inclusive), or -1 if unknown. + * + * @return the end position of the problem (inclusive), or -1 if unknown + */ + int getSourceEnd(); + + /** + * Answer the line number in source where the problem begins. + * + * @return the line number in source where the problem begins + */ + int getSourceLineNumber(); + + /** + * Answer the start position of the problem (inclusive), or -1 if unknown. + * + * @return the start position of the problem (inclusive), or -1 if unknown + */ + int getSourceStart(); + + /** + * Checks the severity to see if the Error bit is set. + * + * @return true if the Error bit is set for the severity, false otherwise + */ + boolean isError(); + + /** + * Checks the severity to see if the Error bit is not set. + * + * @return true if the Error bit is not set for the severity, false otherwise + */ + boolean isWarning(); + + /** + * Set the end position of the problem (inclusive), or -1 if unknown. + * Used for shifting problem positions. + * + * @param sourceEnd the given end position + */ + void setSourceEnd(int sourceEnd); + + /** + * Set the line number in source where the problem begins. + * + * @param lineNumber the given line number + */ + void setSourceLineNumber(int lineNumber); + + /** + * Set the start position of the problem (inclusive), or -1 if unknown. + * Used for shifting problem positions. + * + * @param the given start position + */ + void setSourceStart(int sourceStart); + + /** + * Problem Categories + * The high bits of a problem ID contains information about the category of a problem. + * For example, (problemID & TypeRelated) != 0, indicates that this problem is type related. + * + * A problem category can help to implement custom problem filters. Indeed, when numerous problems + * are listed, focusing on import related problems first might be relevant. + * + * When a problem is tagged as Internal, it means that no change other than a local source code change + * can fix the corresponding problem. + */ + int TypeRelated = 0x01000000; + int FieldRelated = 0x02000000; + int MethodRelated = 0x04000000; + int ConstructorRelated = 0x08000000; + int ImportRelated = 0x10000000; + int Internal = 0x20000000; + int Syntax = 0x40000000; + + /** + * Mask to use in order to filter out the category portion of the problem ID. + */ + int IgnoreCategoriesMask = 0xFFFFFF; + + /** + * Below are listed all available problem IDs. Note that this list could be augmented in the future, + * as new features are added to the Java core implementation. + */ + + /** + * ID reserved for referencing an internal error inside the JavaCore implementation which + * may be surfaced as a problem associated with the compilation unit which caused it to occur. + */ + int Unclassified = 0; + + /** + * Generic type related problems + */ + int ObjectHasNoSuperclass = TypeRelated + 1; + int UndefinedType = TypeRelated + 2; + int NotVisibleType = TypeRelated + 3; + int AmbiguousType = TypeRelated + 4; + int UsingDeprecatedType = TypeRelated + 5; + int InternalTypeNameProvided = TypeRelated + 6; + /** @since 2.1 */ + int UnusedPrivateType = Internal + TypeRelated + 7; + + int IncompatibleTypesInEqualityOperator = TypeRelated + 15; + int IncompatibleTypesInConditionalOperator = TypeRelated + 16; + int TypeMismatch = TypeRelated + 17; + + /** + * Inner types related problems + */ + int MissingEnclosingInstanceForConstructorCall = TypeRelated + 20; + int MissingEnclosingInstance = TypeRelated + 21; + int IncorrectEnclosingInstanceReference = TypeRelated + 22; + int IllegalEnclosingInstanceSpecification = TypeRelated + 23; + int CannotDefineStaticInitializerInLocalType = Internal + 24; + int OuterLocalMustBeFinal = Internal + 25; + int CannotDefineInterfaceInLocalType = Internal + 26; + int IllegalPrimitiveOrArrayTypeForEnclosingInstance = TypeRelated + 27; + /** @since 2.1 */ + int EnclosingInstanceInConstructorCall = Internal + 28; + int AnonymousClassCannotExtendFinalClass = TypeRelated + 29; + + // variables + int UndefinedName = 50; + int UninitializedLocalVariable = Internal + 51; + int VariableTypeCannotBeVoid = Internal + 52; + int VariableTypeCannotBeVoidArray = Internal + 53; + int CannotAllocateVoidArray = Internal + 54; + // local variables + int RedefinedLocal = Internal + 55; + int RedefinedArgument = Internal + 56; + // final local variables + int DuplicateFinalLocalInitialization = Internal + 57; + /** @since 2.1 */ + int NonBlankFinalLocalAssignment = Internal + 58; + int FinalOuterLocalAssignment = Internal + 60; + int LocalVariableIsNeverUsed = Internal + 61; + int ArgumentIsNeverUsed = Internal + 62; + int BytecodeExceeds64KLimit = Internal + 63; + int BytecodeExceeds64KLimitForClinit = Internal + 64; + int TooManyArgumentSlots = Internal + 65; + int TooManyLocalVariableSlots = Internal + 66; + /** @since 2.1 */ + int TooManySyntheticArgumentSlots = Internal + 67; + /** @since 2.1 */ + int TooManyArrayDimensions = Internal + 68; + /** @since 2.1 */ + int BytecodeExceeds64KLimitForConstructor = Internal + 69; + + // fields + int UndefinedField = FieldRelated + 70; + int NotVisibleField = FieldRelated + 71; + int AmbiguousField = FieldRelated + 72; + int UsingDeprecatedField = FieldRelated + 73; + int NonStaticFieldFromStaticInvocation = FieldRelated + 74; + int ReferenceToForwardField = FieldRelated + Internal + 75; + /** @since 2.1 */ + int NonStaticAccessToStaticField = Internal + FieldRelated + 76; + /** @since 2.1 */ + int UnusedPrivateField = Internal + FieldRelated + 77; + + // blank final fields + int FinalFieldAssignment = FieldRelated + 80; + int UninitializedBlankFinalField = FieldRelated + 81; + int DuplicateBlankFinalFieldInitialization = FieldRelated + 82; + + // methods + int UndefinedMethod = MethodRelated + 100; + int NotVisibleMethod = MethodRelated + 101; + int AmbiguousMethod = MethodRelated + 102; + int UsingDeprecatedMethod = MethodRelated + 103; + int DirectInvocationOfAbstractMethod = MethodRelated + 104; + int VoidMethodReturnsValue = MethodRelated + 105; + int MethodReturnsVoid = MethodRelated + 106; + int MethodRequiresBody = Internal + MethodRelated + 107; + int ShouldReturnValue = Internal + MethodRelated + 108; + int MethodButWithConstructorName = MethodRelated + 110; + int MissingReturnType = TypeRelated + 111; + int BodyForNativeMethod = Internal + MethodRelated + 112; + int BodyForAbstractMethod = Internal + MethodRelated + 113; + int NoMessageSendOnBaseType = MethodRelated + 114; + int ParameterMismatch = MethodRelated + 115; + int NoMessageSendOnArrayType = MethodRelated + 116; + /** @since 2.1 */ + int NonStaticAccessToStaticMethod = Internal + MethodRelated + 117; + /** @since 2.1 */ + int UnusedPrivateMethod = Internal + MethodRelated + 118; + + // constructors + int UndefinedConstructor = ConstructorRelated + 130; + int NotVisibleConstructor = ConstructorRelated + 131; + int AmbiguousConstructor = ConstructorRelated + 132; + int UsingDeprecatedConstructor = ConstructorRelated + 133; + /** @since 2.1 */ + int UnusedPrivateConstructor = Internal + MethodRelated + 134; + // explicit constructor calls + int InstanceFieldDuringConstructorInvocation = ConstructorRelated + 135; + int InstanceMethodDuringConstructorInvocation = ConstructorRelated + 136; + int RecursiveConstructorInvocation = ConstructorRelated + 137; + int ThisSuperDuringConstructorInvocation = ConstructorRelated + 138; + // implicit constructor calls + int UndefinedConstructorInDefaultConstructor = ConstructorRelated + 140; + int NotVisibleConstructorInDefaultConstructor = ConstructorRelated + 141; + int AmbiguousConstructorInDefaultConstructor = ConstructorRelated + 142; + int UndefinedConstructorInImplicitConstructorCall = ConstructorRelated + 143; + int NotVisibleConstructorInImplicitConstructorCall = ConstructorRelated + 144; + int AmbiguousConstructorInImplicitConstructorCall = ConstructorRelated + 145; + int UnhandledExceptionInDefaultConstructor = TypeRelated + 146; + int UnhandledExceptionInImplicitConstructorCall = TypeRelated + 147; + + // expressions + int ArrayReferenceRequired = Internal + 150; + int NoImplicitStringConversionForCharArrayExpression = Internal + 151; + // constant expressions + int StringConstantIsExceedingUtf8Limit = Internal + 152; + int NonConstantExpression = 153; + int NumericValueOutOfRange = Internal + 154; + // cast expressions + int IllegalCast = TypeRelated + 156; + // allocations + int InvalidClassInstantiation = TypeRelated + 157; + int CannotDefineDimensionExpressionsWithInit = Internal + 158; + int MustDefineEitherDimensionExpressionsOrInitializer = Internal + 159; + // operators + int InvalidOperator = Internal + 160; + // statements + int CodeCannotBeReached = Internal + 161; + int CannotReturnInInitializer = Internal + 162; + int InitializerMustCompleteNormally = Internal + 163; + + // assert + int InvalidVoidExpression = Internal + 164; + // try + int MaskedCatch = TypeRelated + 165; + int DuplicateDefaultCase = 166; + int UnreachableCatch = TypeRelated + MethodRelated + 167; + int UnhandledException = TypeRelated + 168; + // switch + int IncorrectSwitchType = TypeRelated + 169; + int DuplicateCase = FieldRelated + 170; + // labelled + int DuplicateLabel = Internal + 171; + int InvalidBreak = Internal + 172; + int InvalidContinue = Internal + 173; + int UndefinedLabel = Internal + 174; + //synchronized + int InvalidTypeToSynchronized = Internal + 175; + int InvalidNullToSynchronized = Internal + 176; + // throw + int CannotThrowNull = Internal + 177; + // assignment + /** @since 2.1 */ + int AssignmentHasNoEffect = Internal + 178; + + // inner emulation + int NeedToEmulateFieldReadAccess = FieldRelated + 190; + int NeedToEmulateFieldWriteAccess = FieldRelated + 191; + int NeedToEmulateMethodAccess = MethodRelated + 192; + int NeedToEmulateConstructorAccess = MethodRelated + 193; + + //inherited name hides enclosing name (sort of ambiguous) + int InheritedMethodHidesEnclosingName = MethodRelated + 195; + int InheritedFieldHidesEnclosingName = FieldRelated + 196; + int InheritedTypeHidesEnclosingName = TypeRelated + 197; + + // miscellaneous + int ThisInStaticContext = Internal + 200; + int StaticMethodRequested = Internal + MethodRelated + 201; + int IllegalDimension = Internal + 202; + int InvalidTypeExpression = Internal + 203; + int ParsingError = Syntax + Internal + 204; + int ParsingErrorNoSuggestion = Syntax + Internal + 205; + int InvalidUnaryExpression = Syntax + Internal + 206; + + // syntax errors + int InterfaceCannotHaveConstructors = Syntax + Internal + 207; + int ArrayConstantsOnlyInArrayInitializers = Syntax + Internal + 208; + int ParsingErrorOnKeyword = Syntax + Internal + 209; + int ParsingErrorOnKeywordNoSuggestion = Syntax + Internal + 210; + int PHPParsingError = Syntax + Internal + 211; + + int UnmatchedBracket = Syntax + Internal + 220; + int NoFieldOnBaseType = FieldRelated + 221; + int InvalidExpressionAsStatement = Syntax + Internal + 222; + /** @since 2.1 */ + int ExpressionShouldBeAVariable = Syntax + Internal + 223; + /** @since 2.1 */ + int MissingSemiColon = Syntax + Internal + 224; + /** @since 2.1 */ + int InvalidParenthesizedExpression = Syntax + Internal + 225; + + // scanner errors + int EndOfSource = Syntax + Internal + 250; + int InvalidHexa = Syntax + Internal + 251; + int InvalidOctal = Syntax + Internal + 252; + int InvalidCharacterConstant = Syntax + Internal + 253; + int InvalidEscape = Syntax + Internal + 254; + int InvalidInput = Syntax + Internal + 255; + int InvalidUnicodeEscape = Syntax + Internal + 256; + int InvalidFloat = Syntax + Internal + 257; + int NullSourceString = Syntax + Internal + 258; + int UnterminatedString = Syntax + Internal + 259; + int UnterminatedComment = Syntax + Internal + 260; + + // type related problems + int InterfaceCannotHaveInitializers = TypeRelated + 300; + int DuplicateModifierForType = TypeRelated + 301; + int IllegalModifierForClass = TypeRelated + 302; + int IllegalModifierForInterface = TypeRelated + 303; + int IllegalModifierForMemberClass = TypeRelated + 304; + int IllegalModifierForMemberInterface = TypeRelated + 305; + int IllegalModifierForLocalClass = TypeRelated + 306; + + int IllegalModifierCombinationFinalAbstractForClass = TypeRelated + 308; + int IllegalVisibilityModifierForInterfaceMemberType = TypeRelated + 309; + int IllegalVisibilityModifierCombinationForMemberType = TypeRelated + 310; + int IllegalStaticModifierForMemberType = TypeRelated + 311; + int SuperclassMustBeAClass = TypeRelated + 312; + int ClassExtendFinalClass = TypeRelated + 313; + int DuplicateSuperInterface = TypeRelated + 314; + int SuperInterfaceMustBeAnInterface = TypeRelated + 315; + int HierarchyCircularitySelfReference = TypeRelated + 316; + int HierarchyCircularity = TypeRelated + 317; + int HidingEnclosingType = TypeRelated + 318; + int DuplicateNestedType = TypeRelated + 319; + int CannotThrowType = TypeRelated + 320; + int PackageCollidesWithType = TypeRelated + 321; + int TypeCollidesWithPackage = TypeRelated + 322; + int DuplicateTypes = TypeRelated + 323; + int IsClassPathCorrect = TypeRelated + 324; + int PublicClassMustMatchFileName = TypeRelated + 325; + int MustSpecifyPackage = 326; + int HierarchyHasProblems = TypeRelated + 327; + int PackageIsNotExpectedPackage = 328; + /** @since 2.1 */ + int ObjectCannotHaveSuperTypes = 329; + + // int InvalidSuperclassBase = TypeRelated + 329; // reserved to 334 included + int SuperclassNotFound = TypeRelated + 329 + ProblemReasons.NotFound; // TypeRelated + 330 + int SuperclassNotVisible = TypeRelated + 329 + ProblemReasons.NotVisible; // TypeRelated + 331 + int SuperclassAmbiguous = TypeRelated + 329 + ProblemReasons.Ambiguous; // TypeRelated + 332 + int SuperclassInternalNameProvided = TypeRelated + 329 + ProblemReasons.InternalNameProvided; // TypeRelated + 333 + int SuperclassInheritedNameHidesEnclosingName = TypeRelated + 329 + ProblemReasons.InheritedNameHidesEnclosingName; // TypeRelated + 334 + + // int InvalidInterfaceBase = TypeRelated + 334; // reserved to 339 included + int InterfaceNotFound = TypeRelated + 334 + ProblemReasons.NotFound; // TypeRelated + 335 + int InterfaceNotVisible = TypeRelated + 334 + ProblemReasons.NotVisible; // TypeRelated + 336 + int InterfaceAmbiguous = TypeRelated + 334 + ProblemReasons.Ambiguous; // TypeRelated + 337 + int InterfaceInternalNameProvided = TypeRelated + 334 + ProblemReasons.InternalNameProvided; // TypeRelated + 338 + int InterfaceInheritedNameHidesEnclosingName = TypeRelated + 334 + ProblemReasons.InheritedNameHidesEnclosingName; // TypeRelated + 339 + + // field related problems + int DuplicateField = FieldRelated + 340; + int DuplicateModifierForField = FieldRelated + 341; + int IllegalModifierForField = FieldRelated + 342; + int IllegalModifierForInterfaceField = FieldRelated + 343; + int IllegalVisibilityModifierCombinationForField = FieldRelated + 344; + int IllegalModifierCombinationFinalVolatileForField = FieldRelated + 345; + int UnexpectedStaticModifierForField = FieldRelated + 346; + + // int FieldTypeProblemBase = FieldRelated + 349; //reserved to 354 + int FieldTypeNotFound = FieldRelated + 349 + ProblemReasons.NotFound; // FieldRelated + 350 + int FieldTypeNotVisible = FieldRelated + 349 + ProblemReasons.NotVisible; // FieldRelated + 351 + int FieldTypeAmbiguous = FieldRelated + 349 + ProblemReasons.Ambiguous; // FieldRelated + 352 + int FieldTypeInternalNameProvided = FieldRelated + 349 + ProblemReasons.InternalNameProvided; // FieldRelated + 353 + int FieldTypeInheritedNameHidesEnclosingName = FieldRelated + 349 + ProblemReasons.InheritedNameHidesEnclosingName; // FieldRelated + 354 + + // method related problems + int DuplicateMethod = MethodRelated + 355; + int IllegalModifierForArgument = MethodRelated + 356; + int DuplicateModifierForMethod = MethodRelated + 357; + int IllegalModifierForMethod = MethodRelated + 358; + int IllegalModifierForInterfaceMethod = MethodRelated + 359; + int IllegalVisibilityModifierCombinationForMethod = MethodRelated + 360; + int UnexpectedStaticModifierForMethod = MethodRelated + 361; + int IllegalAbstractModifierCombinationForMethod = MethodRelated + 362; + int AbstractMethodInAbstractClass = MethodRelated + 363; + int ArgumentTypeCannotBeVoid = MethodRelated + 364; + int ArgumentTypeCannotBeVoidArray = MethodRelated + 365; + int ReturnTypeCannotBeVoidArray = MethodRelated + 366; + int NativeMethodsCannotBeStrictfp = MethodRelated + 367; + int DuplicateModifierForArgument = MethodRelated + 368; + + // int ArgumentProblemBase = MethodRelated + 369; // reserved to 374 included. + int ArgumentTypeNotFound = MethodRelated + 369 + ProblemReasons.NotFound; // MethodRelated + 370 + int ArgumentTypeNotVisible = MethodRelated + 369 + ProblemReasons.NotVisible; // MethodRelated + 371 + int ArgumentTypeAmbiguous = MethodRelated + 369 + ProblemReasons.Ambiguous; // MethodRelated + 372 + int ArgumentTypeInternalNameProvided = MethodRelated + 369 + ProblemReasons.InternalNameProvided; // MethodRelated + 373 + int ArgumentTypeInheritedNameHidesEnclosingName = MethodRelated + 369 + ProblemReasons.InheritedNameHidesEnclosingName; // MethodRelated + 374 + + // int ExceptionTypeProblemBase = MethodRelated + 374; // reserved to 379 included. + int ExceptionTypeNotFound = MethodRelated + 374 + ProblemReasons.NotFound; // MethodRelated + 375 + int ExceptionTypeNotVisible = MethodRelated + 374 + ProblemReasons.NotVisible; // MethodRelated + 376 + int ExceptionTypeAmbiguous = MethodRelated + 374 + ProblemReasons.Ambiguous; // MethodRelated + 377 + int ExceptionTypeInternalNameProvided = MethodRelated + 374 + ProblemReasons.InternalNameProvided; // MethodRelated + 378 + int ExceptionTypeInheritedNameHidesEnclosingName = MethodRelated + 374 + ProblemReasons.InheritedNameHidesEnclosingName; // MethodRelated + 379 + + // int ReturnTypeProblemBase = MethodRelated + 379; + int ReturnTypeNotFound = MethodRelated + 379 + ProblemReasons.NotFound; // MethodRelated + 380 + int ReturnTypeNotVisible = MethodRelated + 379 + ProblemReasons.NotVisible; // MethodRelated + 381 + int ReturnTypeAmbiguous = MethodRelated + 379 + ProblemReasons.Ambiguous; // MethodRelated + 382 + int ReturnTypeInternalNameProvided = MethodRelated + 379 + ProblemReasons.InternalNameProvided; // MethodRelated + 383 + int ReturnTypeInheritedNameHidesEnclosingName = MethodRelated + 379 + ProblemReasons.InheritedNameHidesEnclosingName; // MethodRelated + 384 + + // import related problems + int ConflictingImport = ImportRelated + 385; + int DuplicateImport = ImportRelated + 386; + int CannotImportPackage = ImportRelated + 387; + int UnusedImport = ImportRelated + 388; + + // int ImportProblemBase = ImportRelated + 389; + int ImportNotFound = ImportRelated + 389 + ProblemReasons.NotFound; // ImportRelated + 390 + int ImportNotVisible = ImportRelated + 389 + ProblemReasons.NotVisible; // ImportRelated + 391 + int ImportAmbiguous = ImportRelated + 389 + ProblemReasons.Ambiguous; // ImportRelated + 392 + int ImportInternalNameProvided = ImportRelated + 389 + ProblemReasons.InternalNameProvided; // ImportRelated + 393 + int ImportInheritedNameHidesEnclosingName = ImportRelated + 389 + ProblemReasons.InheritedNameHidesEnclosingName; // ImportRelated + 394 + + + // local variable related problems + int DuplicateModifierForVariable = MethodRelated + 395; + int IllegalModifierForVariable = MethodRelated + 396; + + // method verifier problems + int AbstractMethodMustBeImplemented = MethodRelated + 400; + int FinalMethodCannotBeOverridden = MethodRelated + 401; + int IncompatibleExceptionInThrowsClause = MethodRelated + 402; + int IncompatibleExceptionInInheritedMethodThrowsClause = MethodRelated + 403; + int IncompatibleReturnType = MethodRelated + 404; + int InheritedMethodReducesVisibility = MethodRelated + 405; + int CannotOverrideAStaticMethodWithAnInstanceMethod = MethodRelated + 406; + int CannotHideAnInstanceMethodWithAStaticMethod = MethodRelated + 407; + int StaticInheritedMethodConflicts = MethodRelated + 408; + int MethodReducesVisibility = MethodRelated + 409; + int OverridingNonVisibleMethod = MethodRelated + 410; + int AbstractMethodCannotBeOverridden = MethodRelated + 411; + int OverridingDeprecatedMethod = MethodRelated + 412; + /** @since 2.1 */ + int IncompatibleReturnTypeForNonInheritedInterfaceMethod = MethodRelated + 413; + /** @since 2.1 */ + int IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod = MethodRelated + 414; + + // code snippet support + int CodeSnippetMissingClass = Internal + 420; + int CodeSnippetMissingMethod = Internal + 421; + int NonExternalizedStringLiteral = Internal + 261; + int CannotUseSuperInCodeSnippet = Internal + 422; + + //constant pool + int TooManyConstantsInConstantPool = Internal + 430; + /** @since 2.1 */ + int TooManyBytesForStringConstant = Internal + 431; + + // static constraints + /** @since 2.1 */ + int TooManyFields = Internal + 432; + /** @since 2.1 */ + int TooManyMethods = Internal + 433; + + // 1.4 features + // assertion warning + int UseAssertAsAnIdentifier = Internal + 440; + + // detected task + /** @since 2.1 */ + int Task = Internal + 450; +} diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPObfuscatorAction.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPObfuscatorAction.java deleted file mode 100644 index 1a24c29..0000000 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPObfuscatorAction.java +++ /dev/null @@ -1,163 +0,0 @@ -/********************************************************************** -Copyright (c) 2000, 2002 IBM Corp. and others. -All rights reserved. This program and the accompanying materials -are made available under the terms of the Common Public License v1.0 -which accompanies this distribution, and is available at -http://www.eclipse.org/legal/cpl-v10.html - - Klaus Hartlage - www.eclipseproject.de -**********************************************************************/ -package net.sourceforge.phpeclipse.actions; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Iterator; - -import net.sourceforge.phpdt.internal.compiler.parser.Scanner; -import net.sourceforge.phpeclipse.PHPeclipsePlugin; -import net.sourceforge.phpeclipse.mover.DefaultFilter; -import net.sourceforge.phpeclipse.mover.DirectoryWalker; -import net.sourceforge.phpeclipse.mover.IFilter; -import net.sourceforge.phpeclipse.mover.IMover; -import net.sourceforge.phpeclipse.mover.obfuscator.ObfuscatorIgnores; -import net.sourceforge.phpeclipse.mover.obfuscator.PHPAnalyzer; -import net.sourceforge.phpeclipse.mover.obfuscator.PHPObfuscatorMover; -import net.sourceforge.phpeclipse.preferences.ProjectProperties; -import net.sourceforge.phpeclipse.views.PHPConsole; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionProvider; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.IObjectActionDelegate; -import org.eclipse.ui.IWorkbenchPart; - -/** - * - * @author khartlage - * - * Run the PHP Obfuscator - */ -public class PHPObfuscatorAction implements IObjectActionDelegate { - - private IWorkbenchPart workbenchPart; - /** - * Constructor for PHPObfuscatorAction. - */ - public PHPObfuscatorAction() { - super(); - } - - public void run(IAction action) { - ISelectionProvider selectionProvider = null; - selectionProvider = workbenchPart.getSite().getSelectionProvider(); - - StructuredSelection selection = null; - selection = (StructuredSelection) selectionProvider.getSelection(); - PHPConsole console = PHPConsole.getInstance(); - - // HashMap identifierMap = new HashMap(8096); - // for (int i=0;i selected object in the view - Object obj = iterator.next(); - - // is it a resource - if (obj instanceof IResource) { - - IResource resource = (IResource) obj; - IProject proj = resource.getProject(); - String sourcePath; - - if (identifierMap == null) { - IPreferenceStore store = - PHPeclipsePlugin.getDefault().getPreferenceStore(); - ObfuscatorIgnores ignore = new ObfuscatorIgnores(proj); - identifierMap = ignore.getIdentifierMap(); - } - - String publishPath; - try { - ProjectProperties properties = new ProjectProperties(proj); - publishPath = properties.getPublish(); - } catch (CoreException e1) { - return; - // e1.printStackTrace(); - } - // try { - // publishPath = proj.getPersistentProperty(IObfuscatorPreferences.PUBLISH_PROPERTY_NAME); - // } catch (CoreException e) { - // return; - // } - - DefaultFilter[] filter = - { IFilter.PHP_FILTER, IFilter.DEFAULT_FILTER, }; - IMover[] mover = - { - new PHPAnalyzer( - PHPConsole.getInstance(), - new Scanner(false, false), - identifierMap), - new PHPObfuscatorMover( - PHPConsole.getInstance(), - new Scanner(true, true), - identifierMap)}; - DirectoryWalker walker = new DirectoryWalker(mover, filter); - switch (resource.getType()) { - case IResource.PROJECT : - IProject project = (IProject) resource; - sourcePath = project.getLocation().toOSString(); - try { - walker.walk(sourcePath, publishPath); - } catch (IOException e) { - } - break; - case IResource.FOLDER : - IFolder folder = (IFolder) resource; - sourcePath = folder.getLocation().toOSString(); - try { - walker.walk(sourcePath, publishPath); - } catch (IOException e) { - } - break; - case IResource.FILE : - // single file: - IFile file = (IFile) resource; - sourcePath = file.getLocation().toOSString(); - try { - walker.walk(sourcePath, publishPath); - } catch (IOException e) { - } - break; - } - } - } - } - /** - * @see IActionDelegate#selectionChanged(IAction, ISelection) - */ - public void selectionChanged(IAction action, ISelection selection) { - } - - /** - * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart) - */ - public void setActivePart(IAction action, IWorkbenchPart targetPart) { - workbenchPart = targetPart; - } - -} diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ParserBuilder.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ParserBuilder.java new file mode 100644 index 0000000..d351132 --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ParserBuilder.java @@ -0,0 +1,166 @@ +package net.sourceforge.phpeclipse.builder; + +import java.util.Map; + +import net.sourceforge.phpdt.internal.ui.util.PHPFileUtil; +import net.sourceforge.phpeclipse.PHPeclipsePlugin; +import net.sourceforge.phpeclipse.phpeditor.PHPParserAction; +import net.sourceforge.phpeclipse.resourcesview.PHPProject; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IResourceVisitor; +import org.eclipse.core.resources.IncrementalProjectBuilder; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.OperationCanceledException; + +/** + * Builder for .php files. + * + * + * @see org.eclipse.core.resources.IncrementalProjectBuilder + * @see org.eclipse.core.resources.IResourceDelta + */ +public class ParserBuilder extends IncrementalProjectBuilder { + private final static int TOTAL_WORK = 100; + + /** + * Constructor + */ + public ParserBuilder() { + } + + /** + * + */ + protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws CoreException { + monitor.beginTask("Parsing files", TOTAL_WORK); + + if (kind == IncrementalProjectBuilder.FULL_BUILD) { + IResourceDelta delta = getDelta(getProject()); + + processFull(getProject(), monitor); + + } else { // INCREMENTAL_BUILD or AUTO_BUILD + + IResourceDelta delta = getDelta(getProject()); + if (delta != null) { + delta.accept(new ParserVisitor(getProject(), monitor)); + } + + } + monitor.done(); + return null; + } + + /** + * Performs a FULL_BUILD by visiting all nodes in the resource + * tree under the specified project. + * + * @param iProject + */ + public void processFull(final IProject iProject, final IProgressMonitor monitor) { + final IdentifierIndexManager indexManager = PHPeclipsePlugin.getDefault().getIndexManager(iProject); + // Create resource visitor logic + IResourceVisitor myVisitor = new IResourceVisitor() { + public boolean visit(IResource resource) throws CoreException { + if (resource.getType() == IResource.FILE) { + if (monitor.isCanceled()) { + throw new OperationCanceledException(); + } + if ((resource.getFileExtension() != null) && PHPFileUtil.isPHPFile((IFile) resource)) { + monitor.worked(1); + monitor.subTask("Parsing: " + resource.getFullPath()); + // check for parsing errors + PHPParserAction.parseFile((IFile) resource); + // update indexfile for the project: + PHPProject nature = (PHPProject) iProject.getNature(PHPeclipsePlugin.PHP_NATURE_ID); + indexManager.addFile((IFile) resource); + } + } + + return true; + } + }; + + // Process the project using the visitor just created + try { + +// if (iProject.hasNature(PHPeclipsePlugin.PHP_NATURE_ID)) { +// thePHPProject = new PHPProject(); +// thePHPProject.setProject(iProject); +// } + indexManager.initialize(); + iProject.accept(myVisitor); + indexManager.writeFile(); + } catch (CoreException e) { + e.printStackTrace(); + } + + } + + /** + * Sets initialization data for this builder. + *

+ * This method is part of the IExecutableExtension + * interface. + *

+ *

+ * Subclasses are free to extend this method to pick up + * initialization parameters from the plug-in plug-in manifest + * (plugin.xml) file, + * but should be sure to invoke this method on their superclass. + *

+ * For example, the following method looks for a boolean-valued + * parameter named "trace": + *

+   *     public void setInitializationData(IConfigurationElement cfig, 
+   *             String propertyName, Object data) 
+   * 		        throws CoreException {
+   *         super.setInitializationData(cfig, propertyName, data);
+   *         if (data instanceof Hashtable) { 
+   *             Hashtable args = (Hashtable) data; 
+   *             String traceValue = (String) args.get("trace"); 
+   *             TRACING = (traceValue!=null && traceValue.equals("true"));
+   *         }
+   *     }
+   * 
+ *

+ */ + public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException { + super.setInitializationData(config, propertyName, data); + + } + + /** + * Informs this builder that it is being started by the build management + * infrastructure. By the time this method is run, the builder's project + * is available and setInitializationData has been called. + * The default implementation should be called by all overriding methods. + * + * @see #setInitializationData + */ + protected void startupOnInitialize() { + // traceMsg("Parse Builder Initialize - startupOnInitialize()"); + } + + /** + * Write trace statements. + * System.out.println with prefix tagging used for simplicity. + */ + // private void traceMsg(String msg) { + // if (PHPeclipsePlugin.DEBUG | traceEnabled) + // System.out.println( + // buildMode + // + "<" + // + getProject() + // + "> " + // + "\t\t\t" + // + buildMark + // + msg); + // } +} \ No newline at end of file diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.java b/net.sourceforge.phpeclipse/src/test/PHPParser.java index 4030cca..958f0e2 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.java +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.java @@ -1,83 +1,25 @@ /* Generated By:JavaCC: Do not edit this line. PHPParser.java */ package test; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.Reader; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.ui.texteditor.MarkerUtilities; +import org.eclipse.jface.preference.IPreferenceStore; + +import java.util.Hashtable; +import java.util.ArrayList; import java.io.StringReader; +import java.io.*; import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Hashtable; -import net.sourceforge.phpdt.core.IJavaModelMarker; -import net.sourceforge.phpdt.internal.compiler.ast.AbstractCase; -import net.sourceforge.phpdt.internal.compiler.ast.AbstractVariable; -import net.sourceforge.phpdt.internal.compiler.ast.ArrayDeclarator; -import net.sourceforge.phpdt.internal.compiler.ast.ArrayInitializer; -import net.sourceforge.phpdt.internal.compiler.ast.ArrayVariableDeclaration; -import net.sourceforge.phpdt.internal.compiler.ast.AstNode; -import net.sourceforge.phpdt.internal.compiler.ast.BinaryExpression; -import net.sourceforge.phpdt.internal.compiler.ast.Block; -import net.sourceforge.phpdt.internal.compiler.ast.Break; -import net.sourceforge.phpdt.internal.compiler.ast.Case; -import net.sourceforge.phpdt.internal.compiler.ast.CastExpression; -import net.sourceforge.phpdt.internal.compiler.ast.ClassAccess; -import net.sourceforge.phpdt.internal.compiler.ast.ClassDeclaration; -import net.sourceforge.phpdt.internal.compiler.ast.ClassInstantiation; -import net.sourceforge.phpdt.internal.compiler.ast.ConditionalExpression; -import net.sourceforge.phpdt.internal.compiler.ast.ConstantIdentifier; -import net.sourceforge.phpdt.internal.compiler.ast.Continue; -import net.sourceforge.phpdt.internal.compiler.ast.DefaultCase; -import net.sourceforge.phpdt.internal.compiler.ast.Define; -import net.sourceforge.phpdt.internal.compiler.ast.DoStatement; -import net.sourceforge.phpdt.internal.compiler.ast.EchoStatement; -import net.sourceforge.phpdt.internal.compiler.ast.Else; -import net.sourceforge.phpdt.internal.compiler.ast.ElseIf; -import net.sourceforge.phpdt.internal.compiler.ast.EmptyStatement; -import net.sourceforge.phpdt.internal.compiler.ast.Expression; -import net.sourceforge.phpdt.internal.compiler.ast.FalseLiteral; -import net.sourceforge.phpdt.internal.compiler.ast.FieldDeclaration; -import net.sourceforge.phpdt.internal.compiler.ast.ForStatement; -import net.sourceforge.phpdt.internal.compiler.ast.ForeachStatement; -import net.sourceforge.phpdt.internal.compiler.ast.FunctionCall; -import net.sourceforge.phpdt.internal.compiler.ast.GlobalStatement; -import net.sourceforge.phpdt.internal.compiler.ast.HTMLBlock; -import net.sourceforge.phpdt.internal.compiler.ast.HTMLCode; -import net.sourceforge.phpdt.internal.compiler.ast.IfStatement; -import net.sourceforge.phpdt.internal.compiler.ast.InclusionStatement; -import net.sourceforge.phpdt.internal.compiler.ast.LabeledStatement; -import net.sourceforge.phpdt.internal.compiler.ast.ListExpression; -import net.sourceforge.phpdt.internal.compiler.ast.Literal; -import net.sourceforge.phpdt.internal.compiler.ast.MethodDeclaration; -import net.sourceforge.phpdt.internal.compiler.ast.NullLiteral; -import net.sourceforge.phpdt.internal.compiler.ast.NumberLiteral; -import net.sourceforge.phpdt.internal.compiler.ast.OperatorIds; -import net.sourceforge.phpdt.internal.compiler.ast.PHPDocument; -import net.sourceforge.phpdt.internal.compiler.ast.PHPEchoBlock; -import net.sourceforge.phpdt.internal.compiler.ast.PostfixedUnaryExpression; -import net.sourceforge.phpdt.internal.compiler.ast.PrefixedUnaryExpression; -import net.sourceforge.phpdt.internal.compiler.ast.PrintExpression; -import net.sourceforge.phpdt.internal.compiler.ast.ReturnStatement; -import net.sourceforge.phpdt.internal.compiler.ast.Statement; -import net.sourceforge.phpdt.internal.compiler.ast.StaticStatement; -import net.sourceforge.phpdt.internal.compiler.ast.StringLiteral; -import net.sourceforge.phpdt.internal.compiler.ast.SwitchStatement; -import net.sourceforge.phpdt.internal.compiler.ast.TrueLiteral; -import net.sourceforge.phpdt.internal.compiler.ast.Variable; -import net.sourceforge.phpdt.internal.compiler.ast.VariableDeclaration; -import net.sourceforge.phpdt.internal.compiler.ast.WhileStatement; -import net.sourceforge.phpdt.internal.compiler.parser.Outlineable; +import net.sourceforge.phpeclipse.actions.PHPStartApacheAction; +import net.sourceforge.phpeclipse.PHPeclipsePlugin; +import net.sourceforge.phpdt.internal.compiler.ast.*; import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren; +import net.sourceforge.phpdt.internal.compiler.parser.Outlineable; import net.sourceforge.phpdt.internal.compiler.parser.PHPOutlineInfo; -import net.sourceforge.phpeclipse.PHPeclipsePlugin; -import net.sourceforge.phpeclipse.actions.PHPStartApacheAction; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IMarker; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.ui.texteditor.MarkerUtilities; +import net.sourceforge.phpdt.internal.corext.Assert; /** * A new php parser. @@ -86,3403 +28,3403 @@ import org.eclipse.ui.texteditor.MarkerUtilities; * You can test the parser with the PHPParserTestCase2.java * @author Matthieu Casanova */ -public class PHPParser extends PHPParserSuperclass implements PHPParserConstants { +public final class PHPParser extends PHPParserSuperclass implements PHPParserConstants { //todo : fix the variables names bug //todo : handle tilde operator - /** The current segment. */ - private static OutlineableWithChildren currentSegment; - - private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$ - private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$ - static PHPOutlineInfo outlineInfo; - - /** The error level of the current ParseException. */ - private static int errorLevel = ERROR; - /** The message of the current ParseException. If it's null it's because the parse exception wasn't handled */ - private static String errorMessage; - - private static int errorStart = -1; - private static int errorEnd = -1; - private static PHPDocument phpDocument; - - private static final String SYNTAX_ERROR_CHAR = "syntax error"; - /** - * The point where html starts. - * It will be used by the token manager to create HTMLCode objects - */ - public static int htmlStart; - - //ast stack - private final static int AstStackIncrement = 100; - /** The stack of node. */ - protected static AstNode[] nodes; - /** The cursor in expression stack. */ - private static int nodePtr; - - public static final boolean PARSER_DEBUG = false; - - public final void setFileToParse(final IFile fileToParse) { - PHPParser.fileToParse = fileToParse; - } - - public PHPParser() { - } - - public PHPParser(final IFile fileToParse) { - this(new StringReader("")); - PHPParser.fileToParse = fileToParse; - } - - public static final void phpParserTester(final String strEval) throws ParseException { - final StringReader stream = new StringReader(strEval); - if (jj_input_stream == null) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - } - ReInit(new StringReader(strEval)); - init(); - phpDocument = new PHPDocument(null,"_root".toCharArray()); - currentSegment = phpDocument; - outlineInfo = new PHPOutlineInfo(null, currentSegment); - PHPParserTokenManager.SwitchTo(PHPParserTokenManager.PHPPARSING); - phpTest(); - } - - public static final void htmlParserTester(final File fileName) throws FileNotFoundException, ParseException { - final Reader stream = new FileReader(fileName); - if (jj_input_stream == null) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - } - ReInit(stream); - init(); - phpDocument = new PHPDocument(null,"_root".toCharArray()); - currentSegment = phpDocument; - outlineInfo = new PHPOutlineInfo(null, currentSegment); - phpFile(); - } - - public static final void htmlParserTester(final String strEval) throws ParseException { - final StringReader stream = new StringReader(strEval); - if (jj_input_stream == null) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - } - ReInit(stream); - init(); - phpDocument = new PHPDocument(null,"_root".toCharArray()); - currentSegment = phpDocument; - outlineInfo = new PHPOutlineInfo(null, currentSegment); - phpFile(); - } - - /** - * Reinitialize the parser. - */ - protected static final void init() { - nodes = new AstNode[AstStackIncrement]; - nodePtr = -1; - htmlStart = 0; - } - - /** - * Add an php node on the stack. - * @param node the node that will be added to the stack - */ - private static final void pushOnAstNodes(final AstNode node) { - try { - nodes[++nodePtr] = node; - } catch (IndexOutOfBoundsException e) { - final int oldStackLength = nodes.length; - final AstNode[] oldStack = nodes; - nodes = new AstNode[oldStackLength + AstStackIncrement]; - System.arraycopy(oldStack, 0, nodes, 0, oldStackLength); - nodePtr = oldStackLength; - nodes[nodePtr] = node; - } - } - - public final PHPOutlineInfo parseInfo(final Object parent, final String s) { - phpDocument = new PHPDocument(parent,"_root".toCharArray()); - currentSegment = phpDocument; - outlineInfo = new PHPOutlineInfo(parent, currentSegment); - final StringReader stream = new StringReader(s); - if (jj_input_stream == null) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - } - ReInit(stream); - init(); - try { - parse(); - phpDocument.nodes = new AstNode[nodes.length]; - System.arraycopy(nodes,0,phpDocument.nodes,0,nodes.length); - if (PHPeclipsePlugin.DEBUG) { - PHPeclipsePlugin.log(1,phpDocument.toString()); - } - } catch (ParseException e) { - processParseException(e); - } - return outlineInfo; - } - - /** - * This function will throw the exception if we are in debug mode - * and process it if we are in production mode. - * this should be fast since the PARSER_DEBUG is static final so the difference will be at compile time - * @param e the exception - * @throws ParseException the thrown exception - */ - private static void processParseExceptionDebug(final ParseException e) throws ParseException { - if (PARSER_DEBUG) { - throw e; - } - processParseException(e); - } - /** - * This method will process the parse exception. - * If the error message is null, the parse exception wasn't catched and a trace is written in the log - * @param e the ParseException - */ - private static void processParseException(final ParseException e) { - if (errorMessage == null) { - PHPeclipsePlugin.log(e); - errorMessage = "this exception wasn't handled by the parser please tell us how to reproduce it"; - errorStart = e.currentToken.sourceStart; - errorEnd = e.currentToken.sourceEnd; - } - setMarker(e); - errorMessage = null; - // if (PHPeclipsePlugin.DEBUG) PHPeclipsePlugin.log(e); - } - - /** - * Create marker for the parse error. - * @param e the ParseException - */ - private static void setMarker(final ParseException e) { - try { - if (errorStart == -1) { - setMarker(fileToParse, - errorMessage, - e.currentToken.sourceStart, - e.currentToken.sourceEnd, - errorLevel, - "Line " + e.currentToken.beginLine+", "+e.currentToken.sourceStart+':'+e.currentToken.sourceEnd); - } else { - setMarker(fileToParse, - errorMessage, - errorStart, - errorEnd, - errorLevel, - "Line " + e.currentToken.beginLine+", "+errorStart+':'+errorEnd); - errorStart = -1; - errorEnd = -1; - } - } catch (CoreException e2) { - PHPeclipsePlugin.log(e2); - } - } - - private static void scanLine(final String output, - final IFile file, - final int indx, - final int brIndx) throws CoreException { - String current; - final StringBuffer lineNumberBuffer = new StringBuffer(10); - char ch; - current = output.substring(indx, brIndx); - - if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) { - final int onLine = current.indexOf("on line "); - if (onLine != -1) { - lineNumberBuffer.delete(0, lineNumberBuffer.length()); - for (int i = onLine; i < current.length(); i++) { - ch = current.charAt(i); - if ('0' <= ch && '9' >= ch) { - lineNumberBuffer.append(ch); - } - } - - final int lineNumber = Integer.parseInt(lineNumberBuffer.toString()); - - final Hashtable attributes = new Hashtable(); - - current = current.replaceAll("\n", ""); - current = current.replaceAll("", ""); - current = current.replaceAll("", ""); - MarkerUtilities.setMessage(attributes, current); - - if (current.indexOf(PARSE_ERROR_STRING) != -1) - attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR)); - else if (current.indexOf(PARSE_WARNING_STRING) != -1) - attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING)); - else - attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO)); - MarkerUtilities.setLineNumber(attributes, lineNumber); -// MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM); - MarkerUtilities.createMarker(file, attributes, IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER); - } - } - } - - public final void parse(final String s) { - final StringReader stream = new StringReader(s); - if (jj_input_stream == null) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - } - ReInit(stream); - init(); - try { - parse(); - } catch (ParseException e) { - processParseException(e); - } - } - - /** - * Call the php parse command ( php -l -f <filename> ) - * and create markers according to the external parser output - */ - public static void phpExternalParse(final IFile file) { - final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore(); - final String filename = file.getLocation().toString(); - - final String[] arguments = { filename }; - final MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF)); - final String command = form.format(arguments); - - final String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: "); - - try { - // parse the buffer to find the errors and warnings - createMarkers(parserResult, file); - } catch (CoreException e) { - PHPeclipsePlugin.log(e); - } - } - - /** - * Put a new html block in the stack. - */ - public static final void createNewHTMLCode() { - final int currentPosition = token.sourceStart; - if (currentPosition == htmlStart || - currentPosition < htmlStart || - currentPosition > SimpleCharStream.currentBuffer.length()) { - return; - } - final String html = SimpleCharStream.currentBuffer.substring(htmlStart, currentPosition); - pushOnAstNodes(new HTMLCode(html, htmlStart,currentPosition)); - } - - /** Create a new task. */ - public static final void createNewTask(final int todoStart) { - final String todo = SimpleCharStream.currentBuffer.substring(todoStart, - SimpleCharStream.currentBuffer.indexOf("\n", - todoStart)-1); - if (!PARSER_DEBUG) { - try { - setMarker(fileToParse, - todo, - SimpleCharStream.getBeginLine(), - TASK, - "Line "+SimpleCharStream.getBeginLine()); - } catch (CoreException e) { - PHPeclipsePlugin.log(e); - } - } - } - - protected static final void parse() throws ParseException { - phpFile(); - } - - static final public void todo() throws ParseException { + /** The current segment. */ + private static OutlineableWithChildren currentSegment; + + private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$ + private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$ + static PHPOutlineInfo outlineInfo; + + /** The error level of the current ParseException. */ + private static int errorLevel = ERROR; + /** The message of the current ParseException. If it's null it's because the parse exception wasn't handled */ + private static String errorMessage; + + private static int errorStart = -1; + private static int errorEnd = -1; + private static PHPDocument phpDocument; + + private static final String SYNTAX_ERROR_CHAR = "syntax error"; + /** + * The point where html starts. + * It will be used by the token manager to create HTMLCode objects + */ + public static int htmlStart; + + //ast stack + private final static int AstStackIncrement = 100; + /** The stack of node. */ + private static AstNode[] nodes; + /** The cursor in expression stack. */ + private static int nodePtr; + + public static final boolean PARSER_DEBUG = false; + + public final void setFileToParse(final IFile fileToParse) { + PHPParser.fileToParse = fileToParse; + } + + public PHPParser() { + } + + public PHPParser(final IFile fileToParse) { + this(new StringReader("")); + PHPParser.fileToParse = fileToParse; + } + + public final void phpParserTester(final String strEval) throws ParseException { + final StringReader stream = new StringReader(strEval); + if (jj_input_stream == null) { + jj_input_stream = new SimpleCharStream(stream, 1, 1); + token_source = new PHPParserTokenManager(jj_input_stream); + } + ReInit(new StringReader(strEval)); + init(); + phpDocument = new PHPDocument(null,"_root".toCharArray()); + currentSegment = phpDocument; + outlineInfo = new PHPOutlineInfo(null, currentSegment); + token_source.SwitchTo(PHPParserTokenManager.PHPPARSING); + phpTest(); + } + + public final void htmlParserTester(final File fileName) throws FileNotFoundException, ParseException { + final Reader stream = new FileReader(fileName); + if (jj_input_stream == null) { + jj_input_stream = new SimpleCharStream(stream, 1, 1); + token_source = new PHPParserTokenManager(jj_input_stream); + } + ReInit(stream); + init(); + phpDocument = new PHPDocument(null,"_root".toCharArray()); + currentSegment = phpDocument; + outlineInfo = new PHPOutlineInfo(null, currentSegment); + phpFile(); + } + + public final void htmlParserTester(final String strEval) throws ParseException { + final StringReader stream = new StringReader(strEval); + if (jj_input_stream == null) { + jj_input_stream = new SimpleCharStream(stream, 1, 1); + token_source = new PHPParserTokenManager(jj_input_stream); + } + ReInit(stream); + init(); + phpDocument = new PHPDocument(null,"_root".toCharArray()); + currentSegment = phpDocument; + outlineInfo = new PHPOutlineInfo(null, currentSegment); + phpFile(); + } + + /** + * Reinitialize the parser. + */ + private static final void init() { + nodes = new AstNode[AstStackIncrement]; + nodePtr = -1; + htmlStart = 0; + } + + /** + * Add an php node on the stack. + * @param node the node that will be added to the stack + */ + private static final void pushOnAstNodes(final AstNode node) { + try { + nodes[++nodePtr] = node; + } catch (IndexOutOfBoundsException e) { + final int oldStackLength = nodes.length; + final AstNode[] oldStack = nodes; + nodes = new AstNode[oldStackLength + AstStackIncrement]; + System.arraycopy(oldStack, 0, nodes, 0, oldStackLength); + nodePtr = oldStackLength; + nodes[nodePtr] = node; + } + } + + public final PHPOutlineInfo parseInfo(final Object parent, final String s) { + phpDocument = new PHPDocument(parent,"_root".toCharArray()); + currentSegment = phpDocument; + outlineInfo = new PHPOutlineInfo(parent, currentSegment); + final StringReader stream = new StringReader(s); + if (jj_input_stream == null) { + jj_input_stream = new SimpleCharStream(stream, 1, 1); + token_source = new PHPParserTokenManager(jj_input_stream); + } + ReInit(stream); + init(); + try { + parse(); + phpDocument.nodes = new AstNode[nodes.length]; + System.arraycopy(nodes,0,phpDocument.nodes,0,nodes.length); + if (PHPeclipsePlugin.DEBUG) { + PHPeclipsePlugin.log(1,phpDocument.toString()); + } + } catch (ParseException e) { + processParseException(e); + } + return outlineInfo; + } + + /** + * This function will throw the exception if we are in debug mode + * and process it if we are in production mode. + * this should be fast since the PARSER_DEBUG is static final so the difference will be at compile time + * @param e the exception + * @throws ParseException the thrown exception + */ + private static void processParseExceptionDebug(final ParseException e) throws ParseException { + if (PARSER_DEBUG) { + throw e; + } + processParseException(e); + } + /** + * This method will process the parse exception. + * If the error message is null, the parse exception wasn't catched and a trace is written in the log + * @param e the ParseException + */ + private static void processParseException(final ParseException e) { + if (errorMessage == null) { + PHPeclipsePlugin.log(e); + errorMessage = "this exception wasn't handled by the parser please tell us how to reproduce it"; + errorStart = e.currentToken.sourceStart; + errorEnd = e.currentToken.sourceEnd; + } + setMarker(e); + errorMessage = null; + // if (PHPeclipsePlugin.DEBUG) PHPeclipsePlugin.log(e); + } + + /** + * Create marker for the parse error. + * @param e the ParseException + */ + private static void setMarker(final ParseException e) { + try { + if (errorStart == -1) { + setMarker(fileToParse, + errorMessage, + e.currentToken.sourceStart, + e.currentToken.sourceEnd, + errorLevel, + "Line " + e.currentToken.beginLine+", "+e.currentToken.sourceStart+':'+e.currentToken.sourceEnd); + } else { + setMarker(fileToParse, + errorMessage, + errorStart, + errorEnd, + errorLevel, + "Line " + e.currentToken.beginLine+", "+errorStart+':'+errorEnd); + errorStart = -1; + errorEnd = -1; + } + } catch (CoreException e2) { + PHPeclipsePlugin.log(e2); + } + } + + private static void scanLine(final String output, + final IFile file, + final int indx, + final int brIndx) throws CoreException { + String current; + final StringBuffer lineNumberBuffer = new StringBuffer(10); + char ch; + current = output.substring(indx, brIndx); + + if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) { + final int onLine = current.indexOf("on line "); + if (onLine != -1) { + lineNumberBuffer.delete(0, lineNumberBuffer.length()); + for (int i = onLine; i < current.length(); i++) { + ch = current.charAt(i); + if ('0' <= ch && '9' >= ch) { + lineNumberBuffer.append(ch); + } + } + + final int lineNumber = Integer.parseInt(lineNumberBuffer.toString()); + + final Hashtable attributes = new Hashtable(); + + current = current.replaceAll("\n", ""); + current = current.replaceAll("", ""); + current = current.replaceAll("", ""); + MarkerUtilities.setMessage(attributes, current); + + if (current.indexOf(PARSE_ERROR_STRING) != -1) + attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR)); + else if (current.indexOf(PARSE_WARNING_STRING) != -1) + attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING)); + else + attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO)); + MarkerUtilities.setLineNumber(attributes, lineNumber); + MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM); + } + } + } + + public final void parse(final String s) { + final StringReader stream = new StringReader(s); + if (jj_input_stream == null) { + jj_input_stream = new SimpleCharStream(stream, 1, 1); + token_source = new PHPParserTokenManager(jj_input_stream); + } + ReInit(stream); + init(); + try { + parse(); + } catch (ParseException e) { + processParseException(e); + } + } + + /** + * Call the php parse command ( php -l -f <filename> ) + * and create markers according to the external parser output + */ + public static void phpExternalParse(final IFile file) { + final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore(); + final String filename = file.getLocation().toString(); + + final String[] arguments = { filename }; + final MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF)); + final String command = form.format(arguments); + + final String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: "); + + try { + // parse the buffer to find the errors and warnings + createMarkers(parserResult, file); + } catch (CoreException e) { + PHPeclipsePlugin.log(e); + } + } + + /** + * Put a new html block in the stack. + */ + public final void createNewHTMLCode() { + final int currentPosition = token.sourceStart; + if (currentPosition == htmlStart || + currentPosition < htmlStart || + currentPosition > jj_input_stream.getCurrentBuffer().length()) { + return; + } + final String html = jj_input_stream.getCurrentBuffer().substring(htmlStart, currentPosition); + pushOnAstNodes(new HTMLCode(html, htmlStart,currentPosition)); + } + + /** Create a new task. */ + public final void createNewTask(final int todoStart) { + final String todo = jj_input_stream.getCurrentBuffer().substring(todoStart, + jj_input_stream.getCurrentBuffer().indexOf("\n", + todoStart)-1); + if (!PARSER_DEBUG) { + try { + setMarker(fileToParse, + todo, + jj_input_stream.getBeginLine(), + TASK, + "Line "+jj_input_stream.getBeginLine()); + } catch (CoreException e) { + PHPeclipsePlugin.log(e); + } + } + } + + private final void parse() throws ParseException { + phpFile(); + } + + final public void todo() throws ParseException { Token todoToken; - todoToken = jj_consume_token(23); - createNewTask(todoToken.sourceStart); - } - - static final public void phpTest() throws ParseException { - Php(); - jj_consume_token(0); - } - - static final public void phpFile() throws ParseException { - try { - label_1: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PHPSTARTSHORT: - case PHPSTARTLONG: - case PHPECHOSTART: - case PHPEND: - case CLASS: - case FUNCTION: - case IF: - case ARRAY: - case BREAK: - case LIST: - case PRINT: - case ECHO: - case INCLUDE: - case REQUIRE: - case INCLUDE_ONCE: - case REQUIRE_ONCE: - case GLOBAL: - case DEFINE: - case STATIC: - case CONTINUE: - case DO: - case FOR: - case NEW: - case NULL: - case RETURN: - case SWITCH: - case TRUE: - case FALSE: - case WHILE: - case FOREACH: - case AT: - case BANG: - case TILDE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - case LBRACE: - case SEMICOLON: - ; - break; - default: - jj_la1[0] = jj_gen; - break label_1; - } - PhpBlock(); - } - PHPParser.createNewHTMLCode(); - } catch (TokenMgrError e) { - PHPeclipsePlugin.log(e); - errorStart = SimpleCharStream.beginOffset; - errorEnd = SimpleCharStream.endOffset; - errorMessage = e.getMessage(); - errorLevel = ERROR; - {if (true) throw generateParseException();} - } - } + todoToken = jj_consume_token(23); + createNewTask(todoToken.sourceStart); + } + + final public void phpTest() throws ParseException { + Php(); + jj_consume_token(0); + } + + final public void phpFile() throws ParseException { + try { + label_1: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PHPSTARTSHORT: + case PHPSTARTLONG: + case PHPECHOSTART: + case PHPEND: + case CLASS: + case FUNCTION: + case IF: + case ARRAY: + case BREAK: + case LIST: + case PRINT: + case ECHO: + case INCLUDE: + case REQUIRE: + case INCLUDE_ONCE: + case REQUIRE_ONCE: + case GLOBAL: + case DEFINE: + case STATIC: + case CONTINUE: + case DO: + case FOR: + case NEW: + case NULL: + case RETURN: + case SWITCH: + case TRUE: + case FALSE: + case WHILE: + case FOREACH: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + case LBRACE: + case SEMICOLON: + ; + break; + default: + jj_la1[0] = jj_gen; + break label_1; + } + PhpBlock(); + } + createNewHTMLCode(); + } catch (TokenMgrError e) { + PHPeclipsePlugin.log(e); + errorStart = jj_input_stream.getBeginOffset(); + errorEnd = jj_input_stream.getEndOffset(); + errorMessage = e.getMessage(); + errorLevel = ERROR; + {if (true) throw generateParseException();} + } + } /** * A php block is a * or * or */ - static final public void PhpBlock() throws ParseException { - final PHPEchoBlock phpEchoBlock; - final Token token,phpEnd; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PHPECHOSTART: - phpEchoBlock = phpEchoBlock(); - pushOnAstNodes(phpEchoBlock); - break; - case PHPSTARTSHORT: - case PHPSTARTLONG: - case PHPEND: - case CLASS: - case FUNCTION: - case IF: - case ARRAY: - case BREAK: - case LIST: - case PRINT: - case ECHO: - case INCLUDE: - case REQUIRE: - case INCLUDE_ONCE: - case REQUIRE_ONCE: - case GLOBAL: - case DEFINE: - case STATIC: - case CONTINUE: - case DO: - case FOR: - case NEW: - case NULL: - case RETURN: - case SWITCH: - case TRUE: - case FALSE: - case WHILE: - case FOREACH: - case AT: - case BANG: - case TILDE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - case LBRACE: - case SEMICOLON: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PHPSTARTSHORT: - case PHPSTARTLONG: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PHPSTARTLONG: - jj_consume_token(PHPSTARTLONG); - break; - case PHPSTARTSHORT: - token = jj_consume_token(PHPSTARTSHORT); - try { - setMarker(fileToParse, - "You should use '' expected"; - errorLevel = ERROR; - errorStart = e.currentToken.sourceStart; - errorEnd = e.currentToken.sourceEnd; - processParseExceptionDebug(e); - } - break; - default: - jj_la1[3] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - - static final public PHPEchoBlock phpEchoBlock() throws ParseException { - final Expression expr; - final PHPEchoBlock echoBlock; - final Token token, token2; - token = jj_consume_token(PHPECHOSTART); - PHPParser.createNewHTMLCode(); - expr = Expression(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case SEMICOLON: - jj_consume_token(SEMICOLON); - break; - default: - jj_la1[4] = jj_gen; - ; - } - token2 = jj_consume_token(PHPEND); - htmlStart = token2.sourceEnd; - - echoBlock = new PHPEchoBlock(expr,token.sourceStart,token2.sourceEnd); - pushOnAstNodes(echoBlock); - {if (true) return echoBlock;} - throw new Error("Missing return statement in function"); - } - - static final public void Php() throws ParseException { - label_2: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case CLASS: - case FUNCTION: - case IF: - case ARRAY: - case BREAK: - case LIST: - case PRINT: - case ECHO: - case INCLUDE: - case REQUIRE: - case INCLUDE_ONCE: - case REQUIRE_ONCE: - case GLOBAL: - case DEFINE: - case STATIC: - case CONTINUE: - case DO: - case FOR: - case NEW: - case NULL: - case RETURN: - case SWITCH: - case TRUE: - case FALSE: - case WHILE: - case FOREACH: - case AT: - case BANG: - case TILDE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - case LBRACE: - case SEMICOLON: - ; - break; - default: - jj_la1[5] = jj_gen; - break label_2; - } - BlockStatement(); - } - } - - static final public ClassDeclaration ClassDeclaration() throws ParseException { - final ClassDeclaration classDeclaration; - Token className = null; - final Token superclassName, token, extendsToken; - String classNameImage = SYNTAX_ERROR_CHAR; - String superclassNameImage = null; - final int classEnd; - token = jj_consume_token(CLASS); - try { - className = jj_consume_token(IDENTIFIER); - classNameImage = className.image; - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected"; - errorLevel = ERROR; - errorStart = token.sourceEnd+1; - errorEnd = token.sourceEnd+1; - processParseExceptionDebug(e); - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case EXTENDS: - extendsToken = jj_consume_token(EXTENDS); - try { - superclassName = jj_consume_token(IDENTIFIER); - superclassNameImage = superclassName.image; - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected"; - errorLevel = ERROR; - errorStart = extendsToken.sourceEnd+1; - errorEnd = extendsToken.sourceEnd+1; - processParseExceptionDebug(e); - superclassNameImage = SYNTAX_ERROR_CHAR; - } - break; - default: - jj_la1[6] = jj_gen; - ; - } - int start, end; - if (className == null) { - start = token.sourceStart; - end = token.sourceEnd; - } else { - start = className.sourceStart; - end = className.sourceEnd; - } - if (superclassNameImage == null) { - - classDeclaration = new ClassDeclaration(currentSegment, - classNameImage, - start, - end); - } else { - classDeclaration = new ClassDeclaration(currentSegment, - classNameImage, - superclassNameImage, - start, - end); - } - currentSegment.add(classDeclaration); - currentSegment = classDeclaration; - classEnd = ClassBody(classDeclaration); - currentSegment = (OutlineableWithChildren) currentSegment.getParent(); - classDeclaration.sourceEnd = classEnd; - pushOnAstNodes(classDeclaration); - {if (true) return classDeclaration;} - throw new Error("Missing return statement in function"); - } - - static final public int ClassBody(final ClassDeclaration classDeclaration) throws ParseException { + final public void PhpBlock() throws ParseException { + final PHPEchoBlock phpEchoBlock; + final Token token,phpEnd; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PHPECHOSTART: + phpEchoBlock = phpEchoBlock(); + pushOnAstNodes(phpEchoBlock); + break; + case PHPSTARTSHORT: + case PHPSTARTLONG: + case PHPEND: + case CLASS: + case FUNCTION: + case IF: + case ARRAY: + case BREAK: + case LIST: + case PRINT: + case ECHO: + case INCLUDE: + case REQUIRE: + case INCLUDE_ONCE: + case REQUIRE_ONCE: + case GLOBAL: + case DEFINE: + case STATIC: + case CONTINUE: + case DO: + case FOR: + case NEW: + case NULL: + case RETURN: + case SWITCH: + case TRUE: + case FALSE: + case WHILE: + case FOREACH: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + case LBRACE: + case SEMICOLON: + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PHPSTARTSHORT: + case PHPSTARTLONG: + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PHPSTARTLONG: + jj_consume_token(PHPSTARTLONG); + break; + case PHPSTARTSHORT: + token = jj_consume_token(PHPSTARTSHORT); + try { + setMarker(fileToParse, + "You should use '' expected"; + errorLevel = ERROR; + errorStart = e.currentToken.sourceStart; + errorEnd = e.currentToken.sourceEnd; + processParseExceptionDebug(e); + } + break; + default: + jj_la1[3] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + + final public PHPEchoBlock phpEchoBlock() throws ParseException { + final Expression expr; + final PHPEchoBlock echoBlock; + final Token token, token2; + token = jj_consume_token(PHPECHOSTART); + createNewHTMLCode(); + expr = Expression(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case SEMICOLON: + jj_consume_token(SEMICOLON); + break; + default: + jj_la1[4] = jj_gen; + ; + } + token2 = jj_consume_token(PHPEND); + htmlStart = token2.sourceEnd; + + echoBlock = new PHPEchoBlock(expr,token.sourceStart,token2.sourceEnd); + pushOnAstNodes(echoBlock); + {if (true) return echoBlock;} + throw new Error("Missing return statement in function"); + } + + final public void Php() throws ParseException { + label_2: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case CLASS: + case FUNCTION: + case IF: + case ARRAY: + case BREAK: + case LIST: + case PRINT: + case ECHO: + case INCLUDE: + case REQUIRE: + case INCLUDE_ONCE: + case REQUIRE_ONCE: + case GLOBAL: + case DEFINE: + case STATIC: + case CONTINUE: + case DO: + case FOR: + case NEW: + case NULL: + case RETURN: + case SWITCH: + case TRUE: + case FALSE: + case WHILE: + case FOREACH: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + case LBRACE: + case SEMICOLON: + ; + break; + default: + jj_la1[5] = jj_gen; + break label_2; + } + BlockStatement(); + } + } + + final public ClassDeclaration ClassDeclaration() throws ParseException { + final ClassDeclaration classDeclaration; + Token className = null; + final Token superclassName, token, extendsToken; + String classNameImage = SYNTAX_ERROR_CHAR; + String superclassNameImage = null; + final int classEnd; + token = jj_consume_token(CLASS); + try { + className = jj_consume_token(IDENTIFIER); + classNameImage = className.image; + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected"; + errorLevel = ERROR; + errorStart = token.sourceEnd+1; + errorEnd = token.sourceEnd+1; + processParseExceptionDebug(e); + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case EXTENDS: + extendsToken = jj_consume_token(EXTENDS); + try { + superclassName = jj_consume_token(IDENTIFIER); + superclassNameImage = superclassName.image; + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected"; + errorLevel = ERROR; + errorStart = extendsToken.sourceEnd+1; + errorEnd = extendsToken.sourceEnd+1; + processParseExceptionDebug(e); + superclassNameImage = SYNTAX_ERROR_CHAR; + } + break; + default: + jj_la1[6] = jj_gen; + ; + } + int start, end; + if (className == null) { + start = token.sourceStart; + end = token.sourceEnd; + } else { + start = className.sourceStart; + end = className.sourceEnd; + } + if (superclassNameImage == null) { + + classDeclaration = new ClassDeclaration(currentSegment, + classNameImage, + start, + end); + } else { + classDeclaration = new ClassDeclaration(currentSegment, + classNameImage, + superclassNameImage, + start, + end); + } + currentSegment.add(classDeclaration); + currentSegment = classDeclaration; + classEnd = ClassBody(classDeclaration); + currentSegment = (OutlineableWithChildren) currentSegment.getParent(); + classDeclaration.sourceEnd = classEnd; + pushOnAstNodes(classDeclaration); + {if (true) return classDeclaration;} + throw new Error("Missing return statement in function"); + } + + final public int ClassBody(final ClassDeclaration classDeclaration) throws ParseException { Token token; - try { - jj_consume_token(LBRACE); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image + "'. '{' expected"; - errorLevel = ERROR; - errorStart = e.currentToken.sourceStart; - errorEnd = e.currentToken.sourceEnd; - processParseExceptionDebug(e); - } - label_3: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case FUNCTION: - case VAR: - ; - break; - default: - jj_la1[7] = jj_gen; - break label_3; - } - ClassBodyDeclaration(classDeclaration); - } - try { - token = jj_consume_token(RBRACE); - {if (true) return token.sourceEnd;} - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. 'var', 'function' or '}' expected"; - errorLevel = ERROR; - errorStart = e.currentToken.sourceStart; - errorEnd = e.currentToken.sourceEnd; - processParseExceptionDebug(e); - {if (true) return PHPParser.token.sourceEnd;} - } - throw new Error("Missing return statement in function"); - } + try { + jj_consume_token(LBRACE); + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image + "'. '{' expected"; + errorLevel = ERROR; + errorStart = e.currentToken.sourceStart; + errorEnd = e.currentToken.sourceEnd; + processParseExceptionDebug(e); + } + label_3: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case FUNCTION: + case VAR: + ; + break; + default: + jj_la1[7] = jj_gen; + break label_3; + } + ClassBodyDeclaration(classDeclaration); + } + try { + token = jj_consume_token(RBRACE); + {if (true) return token.sourceEnd;} + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. 'var', 'function' or '}' expected"; + errorLevel = ERROR; + errorStart = e.currentToken.sourceStart; + errorEnd = e.currentToken.sourceEnd; + processParseExceptionDebug(e); + {if (true) return this.token.sourceEnd;} + } + throw new Error("Missing return statement in function"); + } /** * A class can contain only methods and fields. */ - static final public void ClassBodyDeclaration(final ClassDeclaration classDeclaration) throws ParseException { - final MethodDeclaration method; - final FieldDeclaration field; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case FUNCTION: - method = MethodDeclaration(); - method.analyzeCode(); - classDeclaration.addMethod(method); - break; - case VAR: - field = FieldDeclaration(); - classDeclaration.addField(field); - break; - default: - jj_la1[8] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } + final public void ClassBodyDeclaration(final ClassDeclaration classDeclaration) throws ParseException { + final MethodDeclaration method; + final FieldDeclaration field; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case FUNCTION: + method = MethodDeclaration(); + method.analyzeCode(); + classDeclaration.addMethod(method); + break; + case VAR: + field = FieldDeclaration(); + classDeclaration.addField(field); + break; + default: + jj_la1[8] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } /** * A class field declaration : it's var VariableDeclarator() (, VariableDeclarator())*;. * it is only used by ClassBodyDeclaration() */ - static final public FieldDeclaration FieldDeclaration() throws ParseException { - VariableDeclaration variableDeclaration; - final VariableDeclaration[] list; - final ArrayList arrayList = new ArrayList(); - final Token token; - Token token2 = null; - int pos; - token = jj_consume_token(VAR); - variableDeclaration = VariableDeclaratorNoSuffix(); - arrayList.add(variableDeclaration); - pos = variableDeclaration.sourceEnd; - label_4: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case COMMA: - ; - break; - default: - jj_la1[9] = jj_gen; - break label_4; - } - jj_consume_token(COMMA); - variableDeclaration = VariableDeclaratorNoSuffix(); - arrayList.add(variableDeclaration); - outlineInfo.addVariable(variableDeclaration.name()); - pos = variableDeclaration.sourceEnd; - } - try { - token2 = jj_consume_token(SEMICOLON); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration"; - errorLevel = ERROR; - errorStart = pos+1; - errorEnd = pos+1; - processParseExceptionDebug(e); - } - list = new VariableDeclaration[arrayList.size()]; - arrayList.toArray(list); - int end; - if (token2 == null) { - end = list[list.length-1].sourceEnd; - } else { - end = token2.sourceEnd; - } - {if (true) return new FieldDeclaration(list, - token.sourceStart, - end, - currentSegment);} - throw new Error("Missing return statement in function"); - } + final public FieldDeclaration FieldDeclaration() throws ParseException { + VariableDeclaration variableDeclaration; + final VariableDeclaration[] list; + final ArrayList arrayList = new ArrayList(); + final Token token; + Token token2 = null; + int pos; + token = jj_consume_token(VAR); + variableDeclaration = VariableDeclaratorNoSuffix(); + arrayList.add(variableDeclaration); + pos = variableDeclaration.sourceEnd; + label_4: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[9] = jj_gen; + break label_4; + } + jj_consume_token(COMMA); + variableDeclaration = VariableDeclaratorNoSuffix(); + arrayList.add(variableDeclaration); + outlineInfo.addVariable(variableDeclaration.name()); + pos = variableDeclaration.sourceEnd; + } + try { + token2 = jj_consume_token(SEMICOLON); + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration"; + errorLevel = ERROR; + errorStart = pos+1; + errorEnd = pos+1; + processParseExceptionDebug(e); + } + list = new VariableDeclaration[arrayList.size()]; + arrayList.toArray(list); + int end; + if (token2 == null) { + end = list[list.length-1].sourceEnd; + } else { + end = token2.sourceEnd; + } + {if (true) return new FieldDeclaration(list, + token.sourceStart, + end, + currentSegment);} + throw new Error("Missing return statement in function"); + } /** * a strict variable declarator : there cannot be a suffix here. * It will be used by fields and formal parameters */ - static final public VariableDeclaration VariableDeclaratorNoSuffix() throws ParseException { - final Token token, lbrace,rbrace; - Expression expr, initializer = null; - Token assignToken; - Variable variable; - jj_consume_token(DOLLAR); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case IDENTIFIER: - token = jj_consume_token(IDENTIFIER); - variable = new Variable(token.image,token.sourceStart,token.sourceEnd); - break; - case LBRACE: - lbrace = jj_consume_token(LBRACE); - expr = Expression(); - rbrace = jj_consume_token(RBRACE); - variable = new Variable(expr,lbrace.sourceStart,rbrace.sourceEnd); - break; - default: - jj_la1[10] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ASSIGN: - assignToken = jj_consume_token(ASSIGN); - try { - initializer = VariableInitializer(); - } catch (ParseException e) { - errorMessage = "Literal expression expected in variable initializer"; - errorLevel = ERROR; - errorStart = assignToken.sourceEnd +1; - errorEnd = assignToken.sourceEnd +1; - processParseExceptionDebug(e); - } - break; - default: - jj_la1[11] = jj_gen; - ; - } - if (initializer == null) { - {if (true) return new VariableDeclaration(currentSegment, - variable, - variable.sourceStart, - variable.sourceEnd);} - } - {if (true) return new VariableDeclaration(currentSegment, - variable, - initializer, - VariableDeclaration.EQUAL, - variable.sourceStart);} - throw new Error("Missing return statement in function"); - } + final public VariableDeclaration VariableDeclaratorNoSuffix() throws ParseException { + final Token token, lbrace,rbrace; + Expression expr, initializer = null; + Token assignToken; + Variable variable; + jj_consume_token(DOLLAR); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IDENTIFIER: + token = jj_consume_token(IDENTIFIER); + variable = new Variable(token.image,token.sourceStart,token.sourceEnd); + break; + case LBRACE: + lbrace = jj_consume_token(LBRACE); + expr = Expression(); + rbrace = jj_consume_token(RBRACE); + variable = new Variable(expr,lbrace.sourceStart,rbrace.sourceEnd); + break; + default: + jj_la1[10] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ASSIGN: + assignToken = jj_consume_token(ASSIGN); + try { + initializer = VariableInitializer(); + } catch (ParseException e) { + errorMessage = "Literal expression expected in variable initializer"; + errorLevel = ERROR; + errorStart = assignToken.sourceEnd +1; + errorEnd = assignToken.sourceEnd +1; + processParseExceptionDebug(e); + } + break; + default: + jj_la1[11] = jj_gen; + ; + } + if (initializer == null) { + {if (true) return new VariableDeclaration(currentSegment, + variable, + variable.sourceStart, + variable.sourceEnd);} + } + {if (true) return new VariableDeclaration(currentSegment, + variable, + initializer, + VariableDeclaration.EQUAL, + variable.sourceStart);} + throw new Error("Missing return statement in function"); + } /** * this will be used by static statement */ - static final public VariableDeclaration VariableDeclarator() throws ParseException { - final AbstractVariable variable; - Expression initializer = null; - final Token token; - variable = VariableDeclaratorId(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ASSIGN: - token = jj_consume_token(ASSIGN); - try { - initializer = VariableInitializer(); - } catch (ParseException e) { - errorMessage = "Literal expression expected in variable initializer"; - errorLevel = ERROR; - errorStart = token.sourceEnd+1; - errorEnd = token.sourceEnd+1; - processParseExceptionDebug(e); - } - break; - default: - jj_la1[12] = jj_gen; - ; - } - if (initializer == null) { - {if (true) return new VariableDeclaration(currentSegment, - variable, - variable.sourceStart, - variable.sourceEnd);} - } - {if (true) return new VariableDeclaration(currentSegment, - variable, - initializer, - VariableDeclaration.EQUAL, - variable.sourceStart);} - throw new Error("Missing return statement in function"); - } + final public VariableDeclaration VariableDeclarator() throws ParseException { + final AbstractVariable variable; + Expression initializer = null; + final Token token; + variable = VariableDeclaratorId(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ASSIGN: + token = jj_consume_token(ASSIGN); + try { + initializer = VariableInitializer(); + } catch (ParseException e) { + errorMessage = "Literal expression expected in variable initializer"; + errorLevel = ERROR; + errorStart = token.sourceEnd+1; + errorEnd = token.sourceEnd+1; + processParseExceptionDebug(e); + } + break; + default: + jj_la1[12] = jj_gen; + ; + } + if (initializer == null) { + {if (true) return new VariableDeclaration(currentSegment, + variable, + variable.sourceStart, + variable.sourceEnd);} + } + {if (true) return new VariableDeclaration(currentSegment, + variable, + initializer, + VariableDeclaration.EQUAL, + variable.sourceStart);} + throw new Error("Missing return statement in function"); + } /** * A Variable name. * @return the variable name (with suffix) */ - static final public AbstractVariable VariableDeclaratorId() throws ParseException { - final Variable var; - AbstractVariable expression = null; - try { - var = Variable(); - label_5: - while (true) { - if (jj_2_1(2)) { - ; - } else { - break label_5; - } - expression = VariableSuffix(var); - } - if (expression == null) { - {if (true) return var;} - } - {if (true) return expression;} - } catch (ParseException e) { - errorMessage = "'$' expected for variable identifier"; - errorLevel = ERROR; - errorStart = e.currentToken.sourceStart; - errorEnd = e.currentToken.sourceEnd; - {if (true) throw e;} - } - throw new Error("Missing return statement in function"); - } - - static final public Variable Variable() throws ParseException { - Variable variable = null; - final Token token; - token = jj_consume_token(DOLLAR); - variable = Var(); - {if (true) return variable;} - throw new Error("Missing return statement in function"); - } - - static final public Variable Var() throws ParseException { - Variable variable = null; - final Token token,token2; - ConstantIdentifier constant; - Expression expression; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case DOLLAR: - token = jj_consume_token(DOLLAR); - variable = Var(); - {if (true) return new Variable(variable,variable.sourceStart,variable.sourceEnd);} - break; - case LBRACE: - token = jj_consume_token(LBRACE); - expression = Expression(); - token2 = jj_consume_token(RBRACE); - {if (true) return new Variable(expression, - token.sourceStart, - token2.sourceEnd);} - break; - case IDENTIFIER: - token = jj_consume_token(IDENTIFIER); - outlineInfo.addVariable('$' + token.image); - {if (true) return new Variable(token.image,token.sourceStart,token.sourceEnd);} - break; - default: - jj_la1[13] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public Expression VariableInitializer() throws ParseException { - final Expression expr; - final Token token, token2; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case NULL: - case TRUE: - case FALSE: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - expr = Literal(); - {if (true) return expr;} - break; - case MINUS: - token2 = jj_consume_token(MINUS); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case INTEGER_LITERAL: - token = jj_consume_token(INTEGER_LITERAL); - break; - case FLOATING_POINT_LITERAL: - token = jj_consume_token(FLOATING_POINT_LITERAL); - break; - default: - jj_la1[14] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token), - OperatorIds.MINUS, - token2.sourceStart);} - break; - case PLUS: - token2 = jj_consume_token(PLUS); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case INTEGER_LITERAL: - token = jj_consume_token(INTEGER_LITERAL); - break; - case FLOATING_POINT_LITERAL: - token = jj_consume_token(FLOATING_POINT_LITERAL); - break; - default: - jj_la1[15] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token), - OperatorIds.PLUS, - token2.sourceStart);} - break; - case ARRAY: - expr = ArrayDeclarator(); - {if (true) return expr;} - break; - case IDENTIFIER: - token = jj_consume_token(IDENTIFIER); - {if (true) return new ConstantIdentifier(token);} - break; - default: - jj_la1[16] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public ArrayVariableDeclaration ArrayVariable() throws ParseException { + final public AbstractVariable VariableDeclaratorId() throws ParseException { + AbstractVariable var; + try { + var = Variable(); + label_5: + while (true) { + if (jj_2_1(2)) { + ; + } else { + break label_5; + } + var = VariableSuffix(var); + } + {if (true) return var;} + } catch (ParseException e) { + errorMessage = "'$' expected for variable identifier"; + errorLevel = ERROR; + errorStart = e.currentToken.sourceStart; + errorEnd = e.currentToken.sourceEnd; + {if (true) throw e;} + } + throw new Error("Missing return statement in function"); + } + + final public Variable Variable() throws ParseException { + Variable variable = null; + final Token token; + token = jj_consume_token(DOLLAR); + variable = Var(); + {if (true) return variable;} + throw new Error("Missing return statement in function"); + } + + final public Variable Var() throws ParseException { + Variable variable = null; + final Token token,token2; + ConstantIdentifier constant; + Expression expression; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case DOLLAR: + token = jj_consume_token(DOLLAR); + variable = Var(); + {if (true) return new Variable(variable,variable.sourceStart,variable.sourceEnd);} + break; + case LBRACE: + token = jj_consume_token(LBRACE); + expression = Expression(); + token2 = jj_consume_token(RBRACE); + {if (true) return new Variable(expression, + token.sourceStart, + token2.sourceEnd);} + break; + case IDENTIFIER: + token = jj_consume_token(IDENTIFIER); + outlineInfo.addVariable('$' + token.image); + {if (true) return new Variable(token.image,token.sourceStart,token.sourceEnd);} + break; + default: + jj_la1[13] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public Expression VariableInitializer() throws ParseException { + final Expression expr; + final Token token, token2; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case NULL: + case TRUE: + case FALSE: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + expr = Literal(); + {if (true) return expr;} + break; + case MINUS: + token2 = jj_consume_token(MINUS); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INTEGER_LITERAL: + token = jj_consume_token(INTEGER_LITERAL); + break; + case FLOATING_POINT_LITERAL: + token = jj_consume_token(FLOATING_POINT_LITERAL); + break; + default: + jj_la1[14] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token), + OperatorIds.MINUS, + token2.sourceStart);} + break; + case PLUS: + token2 = jj_consume_token(PLUS); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INTEGER_LITERAL: + token = jj_consume_token(INTEGER_LITERAL); + break; + case FLOATING_POINT_LITERAL: + token = jj_consume_token(FLOATING_POINT_LITERAL); + break; + default: + jj_la1[15] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token), + OperatorIds.PLUS, + token2.sourceStart);} + break; + case ARRAY: + expr = ArrayDeclarator(); + {if (true) return expr;} + break; + case IDENTIFIER: + token = jj_consume_token(IDENTIFIER); + {if (true) return new ConstantIdentifier(token);} + break; + default: + jj_la1[16] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public ArrayVariableDeclaration ArrayVariable() throws ParseException { final Expression expr,expr2; - expr = Expression(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAYASSIGN: - jj_consume_token(ARRAYASSIGN); - expr2 = Expression(); - {if (true) return new ArrayVariableDeclaration(expr,expr2);} - break; - default: - jj_la1[17] = jj_gen; - ; - } - {if (true) return new ArrayVariableDeclaration(expr,SimpleCharStream.getPosition());} - throw new Error("Missing return statement in function"); - } - - static final public ArrayVariableDeclaration[] ArrayInitializer() throws ParseException { - ArrayVariableDeclaration expr; - final ArrayList list = new ArrayList(); - jj_consume_token(LPAREN); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case LIST: - case PRINT: - case NEW: - case NULL: - case TRUE: - case FALSE: - case AT: - case BANG: - case TILDE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - expr = ArrayVariable(); - list.add(expr); - label_6: - while (true) { - if (jj_2_2(2)) { - ; - } else { - break label_6; - } - jj_consume_token(COMMA); - expr = ArrayVariable(); - list.add(expr); - } - break; - default: - jj_la1[18] = jj_gen; - ; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case COMMA: - jj_consume_token(COMMA); - list.add(null); - break; - default: - jj_la1[19] = jj_gen; - ; - } - jj_consume_token(RPAREN); - final ArrayVariableDeclaration[] vars = new ArrayVariableDeclaration[list.size()]; - list.toArray(vars); - {if (true) return vars;} - throw new Error("Missing return statement in function"); - } + expr = Expression(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAYASSIGN: + jj_consume_token(ARRAYASSIGN); + expr2 = Expression(); + {if (true) return new ArrayVariableDeclaration(expr,expr2);} + break; + default: + jj_la1[17] = jj_gen; + ; + } + {if (true) return new ArrayVariableDeclaration(expr,jj_input_stream.getPosition());} + throw new Error("Missing return statement in function"); + } + + final public ArrayVariableDeclaration[] ArrayInitializer() throws ParseException { + ArrayVariableDeclaration expr; + final ArrayList list = new ArrayList(); + jj_consume_token(LPAREN); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + expr = ArrayVariable(); + list.add(expr); + label_6: + while (true) { + if (jj_2_2(2)) { + ; + } else { + break label_6; + } + jj_consume_token(COMMA); + expr = ArrayVariable(); + list.add(expr); + } + break; + default: + jj_la1[18] = jj_gen; + ; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + jj_consume_token(COMMA); + list.add(null); + break; + default: + jj_la1[19] = jj_gen; + ; + } + jj_consume_token(RPAREN); + final ArrayVariableDeclaration[] vars = new ArrayVariableDeclaration[list.size()]; + list.toArray(vars); + {if (true) return vars;} + throw new Error("Missing return statement in function"); + } /** * A Method Declaration. * function MetodDeclarator() Block() */ - static final public MethodDeclaration MethodDeclaration() throws ParseException { - final MethodDeclaration functionDeclaration; - final Block block; - final OutlineableWithChildren seg = currentSegment; - final Token token; - token = jj_consume_token(FUNCTION); - try { - functionDeclaration = MethodDeclarator(token.sourceStart); - outlineInfo.addVariable(functionDeclaration.name); - } catch (ParseException e) { - if (errorMessage != null) {if (true) throw e;} - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected"; - errorLevel = ERROR; - errorStart = e.currentToken.sourceStart; - errorEnd = e.currentToken.sourceEnd; - {if (true) throw e;} - } - currentSegment = functionDeclaration; - block = Block(); - functionDeclaration.statements = block.statements; - currentSegment = seg; - {if (true) return functionDeclaration;} - throw new Error("Missing return statement in function"); - } + final public MethodDeclaration MethodDeclaration() throws ParseException { + final MethodDeclaration functionDeclaration; + final Block block; + final OutlineableWithChildren seg = currentSegment; + final Token token; + token = jj_consume_token(FUNCTION); + try { + functionDeclaration = MethodDeclarator(token.sourceStart); + outlineInfo.addVariable(functionDeclaration.name); + } catch (ParseException e) { + if (errorMessage != null) {if (true) throw e;} + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected"; + errorLevel = ERROR; + errorStart = e.currentToken.sourceStart; + errorEnd = e.currentToken.sourceEnd; + {if (true) throw e;} + } + currentSegment = functionDeclaration; + block = Block(); + functionDeclaration.statements = block.statements; + currentSegment = seg; + {if (true) return functionDeclaration;} + throw new Error("Missing return statement in function"); + } /** * A MethodDeclarator. * [&] IDENTIFIER(parameters ...). * @return a function description for the outline */ - static final public MethodDeclaration MethodDeclarator(final int start) throws ParseException { - Token identifier = null; - Token reference = null; - final ArrayList formalParameters = new ArrayList(); - String identifierChar = SYNTAX_ERROR_CHAR; - int end = start; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BIT_AND: - reference = jj_consume_token(BIT_AND); - end = reference.sourceEnd; - break; - default: - jj_la1[20] = jj_gen; - ; - } - try { - identifier = jj_consume_token(IDENTIFIER); - identifierChar = identifier.image; - end = identifier.sourceEnd; - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected"; - errorLevel = ERROR; - errorStart = e.currentToken.sourceEnd; - errorEnd = e.currentToken.next.sourceStart; - processParseExceptionDebug(e); - } - end = FormalParameters(formalParameters); - int nameStart, nameEnd; - if (identifier == null) { - if (reference == null) { - nameStart = start + 9; - nameEnd = start + 10; - } else { - nameStart = reference.sourceEnd + 1; - nameEnd = reference.sourceEnd + 2; - } - } else { - nameStart = identifier.sourceStart; - nameEnd = identifier.sourceEnd; - } - {if (true) return new MethodDeclaration(currentSegment, - identifierChar, - formalParameters, - reference != null, - nameStart, - nameEnd, - start, - end);} - throw new Error("Missing return statement in function"); - } + final public MethodDeclaration MethodDeclarator(final int start) throws ParseException { + Token identifier = null; + Token reference = null; + final ArrayList formalParameters = new ArrayList(); + String identifierChar = SYNTAX_ERROR_CHAR; + int end = start; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BIT_AND: + reference = jj_consume_token(BIT_AND); + end = reference.sourceEnd; + break; + default: + jj_la1[20] = jj_gen; + ; + } + try { + identifier = jj_consume_token(IDENTIFIER); + identifierChar = identifier.image; + end = identifier.sourceEnd; + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected"; + errorLevel = ERROR; + errorStart = e.currentToken.sourceEnd; + errorEnd = e.currentToken.next.sourceStart; + processParseExceptionDebug(e); + } + end = FormalParameters(formalParameters); + int nameStart, nameEnd; + if (identifier == null) { + if (reference == null) { + nameStart = start + 9; + nameEnd = start + 10; + } else { + nameStart = reference.sourceEnd + 1; + nameEnd = reference.sourceEnd + 2; + } + } else { + nameStart = identifier.sourceStart; + nameEnd = identifier.sourceEnd; + } + {if (true) return new MethodDeclaration(currentSegment, + identifierChar, + formalParameters, + reference != null, + nameStart, + nameEnd, + start, + end);} + throw new Error("Missing return statement in function"); + } /** * FormalParameters follows method identifier. * (FormalParameter()) */ - static final public int FormalParameters(final ArrayList parameters) throws ParseException { - VariableDeclaration var; - final Token token; - Token tok = PHPParser.token; - int end = tok.sourceEnd; - try { - tok = jj_consume_token(LPAREN); - end = tok.sourceEnd; - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier"; - errorLevel = ERROR; - errorStart = e.currentToken.next.sourceStart; - errorEnd = e.currentToken.next.sourceEnd; - processParseExceptionDebug(e); - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BIT_AND: - case DOLLAR: - var = FormalParameter(); - parameters.add(var);end = var.sourceEnd; - label_7: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case COMMA: - ; - break; - default: - jj_la1[21] = jj_gen; - break label_7; - } - jj_consume_token(COMMA); - var = FormalParameter(); - parameters.add(var);end = var.sourceEnd; - } - break; - default: - jj_la1[22] = jj_gen; - ; - } - try { - token = jj_consume_token(RPAREN); - end = token.sourceEnd; - } catch (ParseException e) { - errorMessage = "')' expected"; - errorLevel = ERROR; - errorStart = e.currentToken.next.sourceStart; - errorEnd = e.currentToken.next.sourceEnd; - processParseExceptionDebug(e); - } - {if (true) return end;} - throw new Error("Missing return statement in function"); - } + final public int FormalParameters(final ArrayList parameters) throws ParseException { + VariableDeclaration var; + final Token token; + Token tok = this.token; + int end = tok.sourceEnd; + try { + tok = jj_consume_token(LPAREN); + end = tok.sourceEnd; + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier"; + errorLevel = ERROR; + errorStart = e.currentToken.next.sourceStart; + errorEnd = e.currentToken.next.sourceEnd; + processParseExceptionDebug(e); + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BIT_AND: + case DOLLAR: + var = FormalParameter(); + parameters.add(var);end = var.sourceEnd; + label_7: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[21] = jj_gen; + break label_7; + } + jj_consume_token(COMMA); + var = FormalParameter(); + parameters.add(var);end = var.sourceEnd; + } + break; + default: + jj_la1[22] = jj_gen; + ; + } + try { + token = jj_consume_token(RPAREN); + end = token.sourceEnd; + } catch (ParseException e) { + errorMessage = "')' expected"; + errorLevel = ERROR; + errorStart = e.currentToken.next.sourceStart; + errorEnd = e.currentToken.next.sourceEnd; + processParseExceptionDebug(e); + } + {if (true) return end;} + throw new Error("Missing return statement in function"); + } /** * A formal parameter. * $varname[=value] (,$varname[=value]) */ - static final public VariableDeclaration FormalParameter() throws ParseException { - final VariableDeclaration variableDeclaration; - Token token = null; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BIT_AND: - token = jj_consume_token(BIT_AND); - break; - default: - jj_la1[23] = jj_gen; - ; - } - variableDeclaration = VariableDeclaratorNoSuffix(); - outlineInfo.addVariable('$'+variableDeclaration.name()); - if (token != null) { - variableDeclaration.setReference(true); - } - {if (true) return variableDeclaration;} - throw new Error("Missing return statement in function"); - } - - static final public ConstantIdentifier Type() throws ParseException { + final public VariableDeclaration FormalParameter() throws ParseException { + final VariableDeclaration variableDeclaration; + Token token = null; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BIT_AND: + token = jj_consume_token(BIT_AND); + break; + default: + jj_la1[23] = jj_gen; + ; + } + variableDeclaration = VariableDeclaratorNoSuffix(); + outlineInfo.addVariable('$'+variableDeclaration.name()); + if (token != null) { + variableDeclaration.setReference(true); + } + {if (true) return variableDeclaration;} + throw new Error("Missing return statement in function"); + } + + final public ConstantIdentifier Type() throws ParseException { final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case STRING: - token = jj_consume_token(STRING); - {if (true) return new ConstantIdentifier(token);} - break; - case BOOL: - token = jj_consume_token(BOOL); - {if (true) return new ConstantIdentifier(token);} - break; - case BOOLEAN: - token = jj_consume_token(BOOLEAN); - {if (true) return new ConstantIdentifier(token);} - break; - case REAL: - token = jj_consume_token(REAL); - {if (true) return new ConstantIdentifier(token);} - break; - case DOUBLE: - token = jj_consume_token(DOUBLE); - {if (true) return new ConstantIdentifier(token);} - break; - case FLOAT: - token = jj_consume_token(FLOAT); - {if (true) return new ConstantIdentifier(token);} - break; - case INT: - token = jj_consume_token(INT); - {if (true) return new ConstantIdentifier(token);} - break; - case INTEGER: - token = jj_consume_token(INTEGER); - {if (true) return new ConstantIdentifier(token);} - break; - case OBJECT: - token = jj_consume_token(OBJECT); - {if (true) return new ConstantIdentifier(token);} - break; - default: - jj_la1[24] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public Expression Expression() throws ParseException { - final Expression expr; - Expression initializer = null; - int assignOperator = -1; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case NEW: - case NULL: - case TRUE: - case FALSE: - case AT: - case BANG: - case TILDE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - expr = ConditionalExpression(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ASSIGN: - case PLUSASSIGN: - case MINUSASSIGN: - case STARASSIGN: - case SLASHASSIGN: - case ANDASSIGN: - case ORASSIGN: - case XORASSIGN: - case DOTASSIGN: - case REMASSIGN: - case TILDEEQUAL: - case LSHIFTASSIGN: - case RSIGNEDSHIFTASSIGN: - assignOperator = AssignmentOperator(); - try { - initializer = Expression(); - } catch (ParseException e) { - if (errorMessage != null) { - {if (true) throw e;} - } - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; - errorLevel = ERROR; - errorEnd = SimpleCharStream.getPosition(); - {if (true) throw e;} - } - break; - default: - jj_la1[25] = jj_gen; - ; - } - if (assignOperator != -1) {// todo : change this, very very bad :( - if (expr instanceof AbstractVariable) { - {if (true) return new VariableDeclaration(currentSegment, - (AbstractVariable) expr, - initializer, - expr.sourceStart, - initializer.sourceEnd);} - } - String varName = expr.toStringExpression().substring(1); - {if (true) return new VariableDeclaration(currentSegment, - new Variable(varName, - expr.sourceStart, - expr.sourceEnd), - expr.sourceStart, - initializer.sourceEnd);} - } - {if (true) return expr;} - break; - case LIST: - case PRINT: - expr = ExpressionWBang(); - {if (true) return expr;} - break; - default: - jj_la1[26] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public Expression ExpressionWBang() throws ParseException { - final Expression expr; - final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BANG: - token = jj_consume_token(BANG); - expr = ExpressionWBang(); - {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,token.sourceStart);} - break; - case LIST: - case PRINT: - expr = ExpressionNoBang(); - {if (true) return expr;} - break; - default: - jj_la1[27] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public Expression ExpressionNoBang() throws ParseException { - Expression expr; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LIST: - expr = ListExpression(); - {if (true) return expr;} - break; - case PRINT: - expr = PrintExpression(); - {if (true) return expr;} - break; - default: - jj_la1[28] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STRING: + token = jj_consume_token(STRING); + {if (true) return new ConstantIdentifier(token);} + break; + case BOOL: + token = jj_consume_token(BOOL); + {if (true) return new ConstantIdentifier(token);} + break; + case BOOLEAN: + token = jj_consume_token(BOOLEAN); + {if (true) return new ConstantIdentifier(token);} + break; + case REAL: + token = jj_consume_token(REAL); + {if (true) return new ConstantIdentifier(token);} + break; + case DOUBLE: + token = jj_consume_token(DOUBLE); + {if (true) return new ConstantIdentifier(token);} + break; + case FLOAT: + token = jj_consume_token(FLOAT); + {if (true) return new ConstantIdentifier(token);} + break; + case INT: + token = jj_consume_token(INT); + {if (true) return new ConstantIdentifier(token);} + break; + case INTEGER: + token = jj_consume_token(INTEGER); + {if (true) return new ConstantIdentifier(token);} + break; + case OBJECT: + token = jj_consume_token(OBJECT); + {if (true) return new ConstantIdentifier(token);} + break; + default: + jj_la1[24] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public Expression Expression() throws ParseException { + final Expression expr; + Expression initializer = null; + int assignOperator = -1; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case NEW: + case NULL: + case TRUE: + case FALSE: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + expr = ConditionalExpression(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ASSIGN: + case PLUSASSIGN: + case MINUSASSIGN: + case STARASSIGN: + case SLASHASSIGN: + case ANDASSIGN: + case ORASSIGN: + case XORASSIGN: + case DOTASSIGN: + case REMASSIGN: + case TILDEEQUAL: + case LSHIFTASSIGN: + case RSIGNEDSHIFTASSIGN: + assignOperator = AssignmentOperator(); + try { + initializer = Expression(); + } catch (ParseException e) { + if (errorMessage != null) { + {if (true) throw e;} + } + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; + errorLevel = ERROR; + errorEnd = jj_input_stream.getPosition(); + {if (true) throw e;} + } + break; + default: + jj_la1[25] = jj_gen; + ; + } + if (assignOperator != -1) {// todo : change this, very very bad :( + if (expr instanceof AbstractVariable) { + {if (true) return new VariableDeclaration(currentSegment, + (AbstractVariable) expr, + initializer, + expr.sourceStart, + initializer.sourceEnd);} + } + String varName = expr.toStringExpression().substring(1); + {if (true) return new VariableDeclaration(currentSegment, + new Variable(varName, + expr.sourceStart, + expr.sourceEnd), + expr.sourceStart, + initializer.sourceEnd);} + } + {if (true) return expr;} + break; + case LIST: + case PRINT: + expr = ExpressionWBang(); + {if (true) return expr;} + break; + default: + jj_la1[26] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public Expression ExpressionWBang() throws ParseException { + final Expression expr; + final Token token; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BANG: + token = jj_consume_token(BANG); + expr = ExpressionWBang(); + {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,token.sourceStart);} + break; + case LIST: + case PRINT: + expr = ExpressionNoBang(); + {if (true) return expr;} + break; + default: + jj_la1[27] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public Expression ExpressionNoBang() throws ParseException { + Expression expr; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LIST: + expr = ListExpression(); + {if (true) return expr;} + break; + case PRINT: + expr = PrintExpression(); + {if (true) return expr;} + break; + default: + jj_la1[28] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } /** * Any assignement operator. * @return the assignement operator id */ - static final public int AssignmentOperator() throws ParseException { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ASSIGN: - jj_consume_token(ASSIGN); - {if (true) return VariableDeclaration.EQUAL;} - break; - case STARASSIGN: - jj_consume_token(STARASSIGN); - {if (true) return VariableDeclaration.STAR_EQUAL;} - break; - case SLASHASSIGN: - jj_consume_token(SLASHASSIGN); - {if (true) return VariableDeclaration.SLASH_EQUAL;} - break; - case REMASSIGN: - jj_consume_token(REMASSIGN); - {if (true) return VariableDeclaration.REM_EQUAL;} - break; - case PLUSASSIGN: - jj_consume_token(PLUSASSIGN); - {if (true) return VariableDeclaration.PLUS_EQUAL;} - break; - case MINUSASSIGN: - jj_consume_token(MINUSASSIGN); - {if (true) return VariableDeclaration.MINUS_EQUAL;} - break; - case LSHIFTASSIGN: - jj_consume_token(LSHIFTASSIGN); - {if (true) return VariableDeclaration.LSHIFT_EQUAL;} - break; - case RSIGNEDSHIFTASSIGN: - jj_consume_token(RSIGNEDSHIFTASSIGN); - {if (true) return VariableDeclaration.RSIGNEDSHIFT_EQUAL;} - break; - case ANDASSIGN: - jj_consume_token(ANDASSIGN); - {if (true) return VariableDeclaration.AND_EQUAL;} - break; - case XORASSIGN: - jj_consume_token(XORASSIGN); - {if (true) return VariableDeclaration.XOR_EQUAL;} - break; - case ORASSIGN: - jj_consume_token(ORASSIGN); - {if (true) return VariableDeclaration.OR_EQUAL;} - break; - case DOTASSIGN: - jj_consume_token(DOTASSIGN); - {if (true) return VariableDeclaration.DOT_EQUAL;} - break; - case TILDEEQUAL: - jj_consume_token(TILDEEQUAL); - {if (true) return VariableDeclaration.TILDE_EQUAL;} - break; - default: - jj_la1[29] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public Expression ConditionalExpression() throws ParseException { - final Expression expr; - Expression expr2 = null; - Expression expr3 = null; - expr = ConditionalOrExpression(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case HOOK: - jj_consume_token(HOOK); - expr2 = Expression(); - jj_consume_token(COLON); - expr3 = ConditionalExpression(); - break; - default: - jj_la1[30] = jj_gen; - ; - } - if (expr3 == null) { - {if (true) return expr;} - } - {if (true) return new ConditionalExpression(expr,expr2,expr3);} - throw new Error("Missing return statement in function"); - } - - static final public Expression ConditionalOrExpression() throws ParseException { - Expression expr,expr2; - int operator; - expr = ConditionalAndExpression(); - label_8: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case OR_OR: - case _ORL: - ; - break; - default: - jj_la1[31] = jj_gen; - break label_8; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case OR_OR: - jj_consume_token(OR_OR); - operator = OperatorIds.OR_OR; - break; - case _ORL: - jj_consume_token(_ORL); - operator = OperatorIds.ORL; - break; - default: - jj_la1[32] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr2 = ConditionalAndExpression(); - expr = new BinaryExpression(expr,expr2,operator); - } - {if (true) return expr;} - throw new Error("Missing return statement in function"); - } - - static final public Expression ConditionalAndExpression() throws ParseException { - Expression expr,expr2; - int operator; - expr = ConcatExpression(); - label_9: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case AND_AND: - case _ANDL: - ; - break; - default: - jj_la1[33] = jj_gen; - break label_9; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case AND_AND: - jj_consume_token(AND_AND); - operator = OperatorIds.AND_AND; - break; - case _ANDL: - jj_consume_token(_ANDL); - operator = OperatorIds.ANDL; - break; - default: - jj_la1[34] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr2 = ConcatExpression(); - expr = new BinaryExpression(expr,expr2,operator); - } - {if (true) return expr;} - throw new Error("Missing return statement in function"); - } - - static final public Expression ConcatExpression() throws ParseException { - Expression expr,expr2; - expr = InclusiveOrExpression(); - label_10: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case DOT: - ; - break; - default: - jj_la1[35] = jj_gen; - break label_10; - } - jj_consume_token(DOT); - expr2 = InclusiveOrExpression(); - expr = new BinaryExpression(expr,expr2,OperatorIds.DOT); - } - {if (true) return expr;} - throw new Error("Missing return statement in function"); - } - - static final public Expression InclusiveOrExpression() throws ParseException { - Expression expr,expr2; - expr = ExclusiveOrExpression(); - label_11: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BIT_OR: - ; - break; - default: - jj_la1[36] = jj_gen; - break label_11; - } - jj_consume_token(BIT_OR); - expr2 = ExclusiveOrExpression(); - expr = new BinaryExpression(expr,expr2,OperatorIds.OR); - } - {if (true) return expr;} - throw new Error("Missing return statement in function"); - } - - static final public Expression ExclusiveOrExpression() throws ParseException { - Expression expr,expr2; - expr = AndExpression(); - label_12: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case XOR: - ; - break; - default: - jj_la1[37] = jj_gen; - break label_12; - } - jj_consume_token(XOR); - expr2 = AndExpression(); - expr = new BinaryExpression(expr,expr2,OperatorIds.XOR); - } - {if (true) return expr;} - throw new Error("Missing return statement in function"); - } - - static final public Expression AndExpression() throws ParseException { - Expression expr,expr2; - expr = EqualityExpression(); - label_13: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BIT_AND: - ; - break; - default: - jj_la1[38] = jj_gen; - break label_13; - } - jj_consume_token(BIT_AND); - expr2 = EqualityExpression(); - expr = new BinaryExpression(expr,expr2,OperatorIds.AND); - } - {if (true) return expr;} - throw new Error("Missing return statement in function"); - } - - static final public Expression EqualityExpression() throws ParseException { - Expression expr,expr2; - int operator; - Token token; - expr = RelationalExpression(); - label_14: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case EQUAL_EQUAL: - case NOT_EQUAL: - case DIF: - case BANGDOUBLEEQUAL: - case TRIPLEEQUAL: - ; - break; - default: - jj_la1[39] = jj_gen; - break label_14; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case EQUAL_EQUAL: - token = jj_consume_token(EQUAL_EQUAL); - operator = OperatorIds.EQUAL_EQUAL; - break; - case DIF: - token = jj_consume_token(DIF); - operator = OperatorIds.DIF; - break; - case NOT_EQUAL: - token = jj_consume_token(NOT_EQUAL); - operator = OperatorIds.DIF; - break; - case BANGDOUBLEEQUAL: - token = jj_consume_token(BANGDOUBLEEQUAL); - operator = OperatorIds.BANG_EQUAL_EQUAL; - break; - case TRIPLEEQUAL: - token = jj_consume_token(TRIPLEEQUAL); - operator = OperatorIds.EQUAL_EQUAL_EQUAL; - break; - default: - jj_la1[40] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - try { - expr2 = RelationalExpression(); - } catch (ParseException e) { - if (errorMessage != null) { - {if (true) throw e;} - } - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; - errorLevel = ERROR; - errorStart = token.sourceEnd +1; - errorEnd = token.sourceEnd +1; - expr2 = new ConstantIdentifier(SYNTAX_ERROR_CHAR,token.sourceEnd +1,token.sourceEnd +1); - processParseExceptionDebug(e); - } - expr = new BinaryExpression(expr,expr2,operator); - } - {if (true) return expr;} - throw new Error("Missing return statement in function"); - } - - static final public Expression RelationalExpression() throws ParseException { - Expression expr,expr2; - int operator; - expr = ShiftExpression(); - label_15: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case GT: - case LT: - case LE: - case GE: - ; - break; - default: - jj_la1[41] = jj_gen; - break label_15; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LT: - jj_consume_token(LT); - operator = OperatorIds.LESS; - break; - case GT: - jj_consume_token(GT); - operator = OperatorIds.GREATER; - break; - case LE: - jj_consume_token(LE); - operator = OperatorIds.LESS_EQUAL; - break; - case GE: - jj_consume_token(GE); - operator = OperatorIds.GREATER_EQUAL; - break; - default: - jj_la1[42] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr2 = ShiftExpression(); - expr = new BinaryExpression(expr,expr2,operator); - } - {if (true) return expr;} - throw new Error("Missing return statement in function"); - } - - static final public Expression ShiftExpression() throws ParseException { - Expression expr,expr2; - int operator; - expr = AdditiveExpression(); - label_16: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LSHIFT: - case RSIGNEDSHIFT: - case RUNSIGNEDSHIFT: - ; - break; - default: - jj_la1[43] = jj_gen; - break label_16; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LSHIFT: - jj_consume_token(LSHIFT); - operator = OperatorIds.LEFT_SHIFT; - break; - case RSIGNEDSHIFT: - jj_consume_token(RSIGNEDSHIFT); - operator = OperatorIds.RIGHT_SHIFT; - break; - case RUNSIGNEDSHIFT: - jj_consume_token(RUNSIGNEDSHIFT); - operator = OperatorIds.UNSIGNED_RIGHT_SHIFT; - break; - default: - jj_la1[44] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr2 = AdditiveExpression(); - expr = new BinaryExpression(expr,expr2,operator); - } - {if (true) return expr;} - throw new Error("Missing return statement in function"); - } - - static final public Expression AdditiveExpression() throws ParseException { - Expression expr,expr2; - int operator; - expr = MultiplicativeExpression(); - label_17: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PLUS: - case MINUS: - ; - break; - default: - jj_la1[45] = jj_gen; - break label_17; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PLUS: - jj_consume_token(PLUS); - operator = OperatorIds.PLUS; - break; - case MINUS: - jj_consume_token(MINUS); - operator = OperatorIds.MINUS; - break; - default: - jj_la1[46] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr2 = MultiplicativeExpression(); - expr = new BinaryExpression(expr,expr2,operator); - } - {if (true) return expr;} - throw new Error("Missing return statement in function"); - } - - static final public Expression MultiplicativeExpression() throws ParseException { - Expression expr,expr2; - int operator; - try { - expr = UnaryExpression(); - } catch (ParseException e) { - if (errorMessage != null) {if (true) throw e;} - errorMessage = "unexpected token '"+e.currentToken.next.image+'\''; - errorLevel = ERROR; - errorStart = PHPParser.token.sourceStart; - errorEnd = PHPParser.token.sourceEnd; - {if (true) throw e;} - } - label_18: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case STAR: - case SLASH: - case REMAINDER: - ; - break; - default: - jj_la1[47] = jj_gen; - break label_18; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case STAR: - jj_consume_token(STAR); - operator = OperatorIds.MULTIPLY; - break; - case SLASH: - jj_consume_token(SLASH); - operator = OperatorIds.DIVIDE; - break; - case REMAINDER: - jj_consume_token(REMAINDER); - operator = OperatorIds.REMAINDER; - break; - default: - jj_la1[48] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr2 = UnaryExpression(); - expr = new BinaryExpression(expr,expr2,operator); - } - {if (true) return expr;} - throw new Error("Missing return statement in function"); - } + final public int AssignmentOperator() throws ParseException { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ASSIGN: + jj_consume_token(ASSIGN); + {if (true) return VariableDeclaration.EQUAL;} + break; + case STARASSIGN: + jj_consume_token(STARASSIGN); + {if (true) return VariableDeclaration.STAR_EQUAL;} + break; + case SLASHASSIGN: + jj_consume_token(SLASHASSIGN); + {if (true) return VariableDeclaration.SLASH_EQUAL;} + break; + case REMASSIGN: + jj_consume_token(REMASSIGN); + {if (true) return VariableDeclaration.REM_EQUAL;} + break; + case PLUSASSIGN: + jj_consume_token(PLUSASSIGN); + {if (true) return VariableDeclaration.PLUS_EQUAL;} + break; + case MINUSASSIGN: + jj_consume_token(MINUSASSIGN); + {if (true) return VariableDeclaration.MINUS_EQUAL;} + break; + case LSHIFTASSIGN: + jj_consume_token(LSHIFTASSIGN); + {if (true) return VariableDeclaration.LSHIFT_EQUAL;} + break; + case RSIGNEDSHIFTASSIGN: + jj_consume_token(RSIGNEDSHIFTASSIGN); + {if (true) return VariableDeclaration.RSIGNEDSHIFT_EQUAL;} + break; + case ANDASSIGN: + jj_consume_token(ANDASSIGN); + {if (true) return VariableDeclaration.AND_EQUAL;} + break; + case XORASSIGN: + jj_consume_token(XORASSIGN); + {if (true) return VariableDeclaration.XOR_EQUAL;} + break; + case ORASSIGN: + jj_consume_token(ORASSIGN); + {if (true) return VariableDeclaration.OR_EQUAL;} + break; + case DOTASSIGN: + jj_consume_token(DOTASSIGN); + {if (true) return VariableDeclaration.DOT_EQUAL;} + break; + case TILDEEQUAL: + jj_consume_token(TILDEEQUAL); + {if (true) return VariableDeclaration.TILDE_EQUAL;} + break; + default: + jj_la1[29] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public Expression ConditionalExpression() throws ParseException { + final Expression expr; + Expression expr2 = null; + Expression expr3 = null; + expr = ConditionalOrExpression(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case HOOK: + jj_consume_token(HOOK); + expr2 = Expression(); + jj_consume_token(COLON); + expr3 = ConditionalExpression(); + break; + default: + jj_la1[30] = jj_gen; + ; + } + if (expr3 == null) { + {if (true) return expr;} + } + {if (true) return new ConditionalExpression(expr,expr2,expr3);} + throw new Error("Missing return statement in function"); + } + + final public Expression ConditionalOrExpression() throws ParseException { + Expression expr,expr2; + int operator; + expr = ConditionalAndExpression(); + label_8: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case OR_OR: + case _ORL: + ; + break; + default: + jj_la1[31] = jj_gen; + break label_8; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case OR_OR: + jj_consume_token(OR_OR); + operator = OperatorIds.OR_OR; + break; + case _ORL: + jj_consume_token(_ORL); + operator = OperatorIds.ORL; + break; + default: + jj_la1[32] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + expr2 = ConditionalAndExpression(); + expr = new BinaryExpression(expr,expr2,operator); + } + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } + + final public Expression ConditionalAndExpression() throws ParseException { + Expression expr,expr2; + int operator; + expr = ConcatExpression(); + label_9: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case AND_AND: + case _ANDL: + ; + break; + default: + jj_la1[33] = jj_gen; + break label_9; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case AND_AND: + jj_consume_token(AND_AND); + operator = OperatorIds.AND_AND; + break; + case _ANDL: + jj_consume_token(_ANDL); + operator = OperatorIds.ANDL; + break; + default: + jj_la1[34] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + expr2 = ConcatExpression(); + expr = new BinaryExpression(expr,expr2,operator); + } + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } + + final public Expression ConcatExpression() throws ParseException { + Expression expr,expr2; + expr = InclusiveOrExpression(); + label_10: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case DOT: + ; + break; + default: + jj_la1[35] = jj_gen; + break label_10; + } + jj_consume_token(DOT); + expr2 = InclusiveOrExpression(); + expr = new BinaryExpression(expr,expr2,OperatorIds.DOT); + } + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } + + final public Expression InclusiveOrExpression() throws ParseException { + Expression expr,expr2; + expr = ExclusiveOrExpression(); + label_11: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BIT_OR: + ; + break; + default: + jj_la1[36] = jj_gen; + break label_11; + } + jj_consume_token(BIT_OR); + expr2 = ExclusiveOrExpression(); + expr = new BinaryExpression(expr,expr2,OperatorIds.OR); + } + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } + + final public Expression ExclusiveOrExpression() throws ParseException { + Expression expr,expr2; + expr = AndExpression(); + label_12: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case XOR: + ; + break; + default: + jj_la1[37] = jj_gen; + break label_12; + } + jj_consume_token(XOR); + expr2 = AndExpression(); + expr = new BinaryExpression(expr,expr2,OperatorIds.XOR); + } + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } + + final public Expression AndExpression() throws ParseException { + Expression expr,expr2; + expr = EqualityExpression(); + label_13: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BIT_AND: + ; + break; + default: + jj_la1[38] = jj_gen; + break label_13; + } + jj_consume_token(BIT_AND); + expr2 = EqualityExpression(); + expr = new BinaryExpression(expr,expr2,OperatorIds.AND); + } + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } + + final public Expression EqualityExpression() throws ParseException { + Expression expr,expr2; + int operator; + Token token; + expr = RelationalExpression(); + label_14: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case EQUAL_EQUAL: + case NOT_EQUAL: + case DIF: + case BANGDOUBLEEQUAL: + case TRIPLEEQUAL: + ; + break; + default: + jj_la1[39] = jj_gen; + break label_14; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case EQUAL_EQUAL: + token = jj_consume_token(EQUAL_EQUAL); + operator = OperatorIds.EQUAL_EQUAL; + break; + case DIF: + token = jj_consume_token(DIF); + operator = OperatorIds.DIF; + break; + case NOT_EQUAL: + token = jj_consume_token(NOT_EQUAL); + operator = OperatorIds.DIF; + break; + case BANGDOUBLEEQUAL: + token = jj_consume_token(BANGDOUBLEEQUAL); + operator = OperatorIds.BANG_EQUAL_EQUAL; + break; + case TRIPLEEQUAL: + token = jj_consume_token(TRIPLEEQUAL); + operator = OperatorIds.EQUAL_EQUAL_EQUAL; + break; + default: + jj_la1[40] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + try { + expr2 = RelationalExpression(); + } catch (ParseException e) { + if (errorMessage != null) { + {if (true) throw e;} + } + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; + errorLevel = ERROR; + errorStart = token.sourceEnd +1; + errorEnd = token.sourceEnd +1; + expr2 = new ConstantIdentifier(SYNTAX_ERROR_CHAR,token.sourceEnd +1,token.sourceEnd +1); + processParseExceptionDebug(e); + } + expr = new BinaryExpression(expr,expr2,operator); + } + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } + + final public Expression RelationalExpression() throws ParseException { + Expression expr,expr2; + int operator; + expr = ShiftExpression(); + label_15: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case GT: + case LT: + case LE: + case GE: + ; + break; + default: + jj_la1[41] = jj_gen; + break label_15; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LT: + jj_consume_token(LT); + operator = OperatorIds.LESS; + break; + case GT: + jj_consume_token(GT); + operator = OperatorIds.GREATER; + break; + case LE: + jj_consume_token(LE); + operator = OperatorIds.LESS_EQUAL; + break; + case GE: + jj_consume_token(GE); + operator = OperatorIds.GREATER_EQUAL; + break; + default: + jj_la1[42] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + expr2 = ShiftExpression(); + expr = new BinaryExpression(expr,expr2,operator); + } + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } + + final public Expression ShiftExpression() throws ParseException { + Expression expr,expr2; + int operator; + expr = AdditiveExpression(); + label_16: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LSHIFT: + case RSIGNEDSHIFT: + case RUNSIGNEDSHIFT: + ; + break; + default: + jj_la1[43] = jj_gen; + break label_16; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LSHIFT: + jj_consume_token(LSHIFT); + operator = OperatorIds.LEFT_SHIFT; + break; + case RSIGNEDSHIFT: + jj_consume_token(RSIGNEDSHIFT); + operator = OperatorIds.RIGHT_SHIFT; + break; + case RUNSIGNEDSHIFT: + jj_consume_token(RUNSIGNEDSHIFT); + operator = OperatorIds.UNSIGNED_RIGHT_SHIFT; + break; + default: + jj_la1[44] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + expr2 = AdditiveExpression(); + expr = new BinaryExpression(expr,expr2,operator); + } + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } + + final public Expression AdditiveExpression() throws ParseException { + Expression expr,expr2; + int operator; + expr = MultiplicativeExpression(); + label_17: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PLUS: + case MINUS: + ; + break; + default: + jj_la1[45] = jj_gen; + break label_17; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PLUS: + jj_consume_token(PLUS); + operator = OperatorIds.PLUS; + break; + case MINUS: + jj_consume_token(MINUS); + operator = OperatorIds.MINUS; + break; + default: + jj_la1[46] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + expr2 = MultiplicativeExpression(); + expr = new BinaryExpression(expr,expr2,operator); + } + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } + + final public Expression MultiplicativeExpression() throws ParseException { + Expression expr,expr2; + int operator; + try { + expr = UnaryExpression(); + } catch (ParseException e) { + if (errorMessage != null) {if (true) throw e;} + errorMessage = "unexpected token '"+e.currentToken.next.image+'\''; + errorLevel = ERROR; + errorStart = this.token.sourceStart; + errorEnd = this.token.sourceEnd; + {if (true) throw e;} + } + label_18: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STAR: + case SLASH: + case REMAINDER: + ; + break; + default: + jj_la1[47] = jj_gen; + break label_18; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STAR: + jj_consume_token(STAR); + operator = OperatorIds.MULTIPLY; + break; + case SLASH: + jj_consume_token(SLASH); + operator = OperatorIds.DIVIDE; + break; + case REMAINDER: + jj_consume_token(REMAINDER); + operator = OperatorIds.REMAINDER; + break; + default: + jj_la1[48] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + expr2 = UnaryExpression(); + expr = new BinaryExpression(expr,expr2,operator); + } + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } /** * An unary expression starting with @, & or nothing */ - static final public Expression UnaryExpression() throws ParseException { - final Expression expr; - /* expr = UnaryExpressionNoPrefix() //why did I had that ? - {return new PrefixedUnaryExpression(expr,OperatorIds.AND,pos);} - | */ - expr = AtNotTildeUnaryExpression(); - {if (true) return expr;} - throw new Error("Missing return statement in function"); - } - - static final public Expression AtNotTildeUnaryExpression() throws ParseException { - final Expression expr; - final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case AT: - token = jj_consume_token(AT); - expr = AtNotTildeUnaryExpression(); - {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,token.sourceStart);} - break; - case TILDE: - token = jj_consume_token(TILDE); - expr = AtNotTildeUnaryExpression(); - {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.TWIDDLE,token.sourceStart);} - break; - case BANG: - token = jj_consume_token(BANG); - expr = AtNotUnaryExpression(); - {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,token.sourceStart);} - break; - case ARRAY: - case NEW: - case NULL: - case TRUE: - case FALSE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - expr = UnaryExpressionNoPrefix(); - {if (true) return expr;} - break; - default: - jj_la1[49] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } + final public Expression UnaryExpression() throws ParseException { + final Expression expr; + /* expr = UnaryExpressionNoPrefix() //why did I had that ? + {return new PrefixedUnaryExpression(expr,OperatorIds.AND,pos);} + | */ + expr = AtNotTildeUnaryExpression(); + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } + + final public Expression AtNotTildeUnaryExpression() throws ParseException { + final Expression expr; + final Token token; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case AT: + token = jj_consume_token(AT); + expr = AtNotTildeUnaryExpression(); + {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,token.sourceStart);} + break; + case TILDE: + token = jj_consume_token(TILDE); + expr = AtNotTildeUnaryExpression(); + {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.TWIDDLE,token.sourceStart);} + break; + case BANG: + token = jj_consume_token(BANG); + expr = AtNotUnaryExpression(); + {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,token.sourceStart);} + break; + case ARRAY: + case NEW: + case NULL: + case TRUE: + case FALSE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + expr = UnaryExpressionNoPrefix(); + {if (true) return expr;} + break; + default: + jj_la1[49] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } /** * An expression prefixed (or not) by one or more @ and !. * @return the expression */ - static final public Expression AtNotUnaryExpression() throws ParseException { - final Expression expr; - final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case AT: - token = jj_consume_token(AT); - expr = AtNotUnaryExpression(); - {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,token.sourceStart);} - break; - case BANG: - token = jj_consume_token(BANG); - expr = AtNotUnaryExpression(); - {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,token.sourceStart);} - break; - case ARRAY: - case NEW: - case NULL: - case TRUE: - case FALSE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - expr = UnaryExpressionNoPrefix(); - {if (true) return expr;} - break; - default: - jj_la1[50] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public Expression UnaryExpressionNoPrefix() throws ParseException { - final Expression expr; - final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PLUS: - token = jj_consume_token(PLUS); - expr = AtNotTildeUnaryExpression(); - {if (true) return new PrefixedUnaryExpression(expr, - OperatorIds.PLUS, - token.sourceStart);} - break; - case MINUS: - token = jj_consume_token(MINUS); - expr = AtNotTildeUnaryExpression(); - {if (true) return new PrefixedUnaryExpression(expr, - OperatorIds.MINUS, - token.sourceStart);} - break; - case PLUS_PLUS: - case MINUS_MINUS: - expr = PreIncDecExpression(); - {if (true) return expr;} - break; - case ARRAY: - case NEW: - case NULL: - case TRUE: - case FALSE: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - expr = UnaryExpressionNotPlusMinus(); - {if (true) return expr;} - break; - default: - jj_la1[51] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public Expression PreIncDecExpression() throws ParseException { + final public Expression AtNotUnaryExpression() throws ParseException { + final Expression expr; + final Token token; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case AT: + token = jj_consume_token(AT); + expr = AtNotUnaryExpression(); + {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,token.sourceStart);} + break; + case BANG: + token = jj_consume_token(BANG); + expr = AtNotUnaryExpression(); + {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,token.sourceStart);} + break; + case ARRAY: + case NEW: + case NULL: + case TRUE: + case FALSE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + expr = UnaryExpressionNoPrefix(); + {if (true) return expr;} + break; + default: + jj_la1[50] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public Expression UnaryExpressionNoPrefix() throws ParseException { + final Expression expr; + final Token token; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PLUS: + token = jj_consume_token(PLUS); + expr = AtNotTildeUnaryExpression(); + {if (true) return new PrefixedUnaryExpression(expr, + OperatorIds.PLUS, + token.sourceStart);} + break; + case MINUS: + token = jj_consume_token(MINUS); + expr = AtNotTildeUnaryExpression(); + {if (true) return new PrefixedUnaryExpression(expr, + OperatorIds.MINUS, + token.sourceStart);} + break; + case PLUS_PLUS: + case MINUS_MINUS: + expr = PreIncDecExpression(); + {if (true) return expr;} + break; + case ARRAY: + case NEW: + case NULL: + case TRUE: + case FALSE: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + expr = UnaryExpressionNotPlusMinus(); + {if (true) return expr;} + break; + default: + jj_la1[51] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public Expression PreIncDecExpression() throws ParseException { final Expression expr; final int operator; final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PLUS_PLUS: - token = jj_consume_token(PLUS_PLUS); - operator = OperatorIds.PLUS_PLUS; - break; - case MINUS_MINUS: - token = jj_consume_token(MINUS_MINUS); - operator = OperatorIds.MINUS_MINUS; - break; - default: - jj_la1[52] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr = PrimaryExpression(); - {if (true) return new PrefixedUnaryExpression(expr,operator,token.sourceStart);} - throw new Error("Missing return statement in function"); - } - - static final public Expression UnaryExpressionNotPlusMinus() throws ParseException { - final Expression expr; - if (jj_2_3(2147483647)) { - expr = CastExpression(); - {if (true) return expr;} - } else { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case NEW: - case BIT_AND: - case DOLLAR: - case IDENTIFIER: - expr = PostfixExpression(); - {if (true) return expr;} - break; - case NULL: - case TRUE: - case FALSE: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - expr = Literal(); - {if (true) return expr;} - break; - case LPAREN: - jj_consume_token(LPAREN); - expr = Expression(); - try { - jj_consume_token(RPAREN); - } catch (ParseException e) { - errorMessage = "')' expected"; - errorLevel = ERROR; - errorStart = expr.sourceEnd +1; - errorEnd = expr.sourceEnd +1; - processParseExceptionDebug(e); - } - {if (true) return expr;} - break; - default: - jj_la1[53] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - throw new Error("Missing return statement in function"); - } - - static final public CastExpression CastExpression() throws ParseException { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PLUS_PLUS: + token = jj_consume_token(PLUS_PLUS); + operator = OperatorIds.PLUS_PLUS; + break; + case MINUS_MINUS: + token = jj_consume_token(MINUS_MINUS); + operator = OperatorIds.MINUS_MINUS; + break; + default: + jj_la1[52] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + expr = PrimaryExpression(); + {if (true) return new PrefixedUnaryExpression(expr,operator,token.sourceStart);} + throw new Error("Missing return statement in function"); + } + + final public Expression UnaryExpressionNotPlusMinus() throws ParseException { + final Expression expr; + if (jj_2_3(2147483647)) { + expr = CastExpression(); + {if (true) return expr;} + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case NEW: + case BIT_AND: + case DOLLAR: + case IDENTIFIER: + expr = PostfixExpression(); + {if (true) return expr;} + break; + case NULL: + case TRUE: + case FALSE: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + expr = Literal(); + {if (true) return expr;} + break; + case LPAREN: + jj_consume_token(LPAREN); + expr = Expression(); + try { + jj_consume_token(RPAREN); + } catch (ParseException e) { + errorMessage = "')' expected"; + errorLevel = ERROR; + errorStart = expr.sourceEnd +1; + errorEnd = expr.sourceEnd +1; + processParseExceptionDebug(e); + } + {if (true) return expr;} + break; + default: + jj_la1[53] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + + final public CastExpression CastExpression() throws ParseException { final ConstantIdentifier type; final Expression expr; final Token token,token1; - token1 = jj_consume_token(LPAREN); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case STRING: - case OBJECT: - case BOOL: - case BOOLEAN: - case REAL: - case DOUBLE: - case FLOAT: - case INT: - case INTEGER: - type = Type(); - break; - case ARRAY: - token = jj_consume_token(ARRAY); - type = new ConstantIdentifier(token); - break; - default: - jj_la1[54] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - jj_consume_token(RPAREN); - expr = UnaryExpression(); - {if (true) return new CastExpression(type,expr,token1.sourceStart,expr.sourceEnd);} - throw new Error("Missing return statement in function"); - } - - static final public Expression PostfixExpression() throws ParseException { - final Expression expr; - int operator = -1; - Token token = null; - expr = PrimaryExpression(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PLUS_PLUS: - case MINUS_MINUS: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PLUS_PLUS: - token = jj_consume_token(PLUS_PLUS); - operator = OperatorIds.PLUS_PLUS; - break; - case MINUS_MINUS: - token = jj_consume_token(MINUS_MINUS); - operator = OperatorIds.MINUS_MINUS; - break; - default: - jj_la1[55] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - break; - default: - jj_la1[56] = jj_gen; - ; - } - if (operator == -1) { - {if (true) return expr;} - } - {if (true) return new PostfixedUnaryExpression(expr,operator,token.sourceEnd);} - throw new Error("Missing return statement in function"); - } - - static final public Expression PrimaryExpression() throws ParseException { - Expression expr; - Token token = null; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case NEW: - case BIT_AND: - case DOLLAR: - case IDENTIFIER: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BIT_AND: - token = jj_consume_token(BIT_AND); - break; - default: - jj_la1[57] = jj_gen; - ; - } - expr = refPrimaryExpression(token); - {if (true) return expr;} - break; - case ARRAY: - expr = ArrayDeclarator(); - {if (true) return expr;} - break; - default: - jj_la1[58] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public Expression refPrimaryExpression(final Token reference) throws ParseException { - Expression expr; - Expression expr2 = null; - final Token identifier; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case IDENTIFIER: - identifier = jj_consume_token(IDENTIFIER); - expr = new ConstantIdentifier(identifier); - label_19: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case STATICCLASSACCESS: - ; - break; - default: - jj_la1[59] = jj_gen; - break label_19; - } - jj_consume_token(STATICCLASSACCESS); - expr2 = ClassIdentifier(); - expr = new ClassAccess(expr, - expr2, - ClassAccess.STATIC); - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LPAREN: - expr2 = Arguments(expr); - break; - default: - jj_la1[60] = jj_gen; - ; - } - if (expr2 == null) { - if (reference != null) { - ParseException e = generateParseException(); - errorMessage = "you cannot use a constant by reference"; - errorLevel = ERROR; - errorStart = reference.sourceStart; - errorEnd = reference.sourceEnd; - processParseExceptionDebug(e); - } - {if (true) return expr;} - } - {if (true) return expr2;} - break; - case DOLLAR: - expr = VariableDeclaratorId(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LPAREN: - expr = Arguments(expr); - break; - default: - jj_la1[61] = jj_gen; - ; - } - {if (true) return expr;} - break; - case NEW: - token = jj_consume_token(NEW); - expr = ClassIdentifier(); - int start; - if (reference == null) { - start = token.sourceStart; - } else { - start = reference.sourceStart; - } - expr = new ClassInstantiation(expr, - reference != null, - start); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LPAREN: - expr = Arguments(expr); - break; - default: - jj_la1[62] = jj_gen; - ; - } - {if (true) return expr;} - break; - default: - jj_la1[63] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } + token1 = jj_consume_token(LPAREN); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STRING: + case OBJECT: + case BOOL: + case BOOLEAN: + case REAL: + case DOUBLE: + case FLOAT: + case INT: + case INTEGER: + type = Type(); + break; + case ARRAY: + token = jj_consume_token(ARRAY); + type = new ConstantIdentifier(token); + break; + default: + jj_la1[54] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(RPAREN); + expr = UnaryExpression(); + {if (true) return new CastExpression(type,expr,token1.sourceStart,expr.sourceEnd);} + throw new Error("Missing return statement in function"); + } + + final public Expression PostfixExpression() throws ParseException { + final Expression expr; + int operator = -1; + Token token = null; + expr = PrimaryExpression(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PLUS_PLUS: + case MINUS_MINUS: + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PLUS_PLUS: + token = jj_consume_token(PLUS_PLUS); + operator = OperatorIds.PLUS_PLUS; + break; + case MINUS_MINUS: + token = jj_consume_token(MINUS_MINUS); + operator = OperatorIds.MINUS_MINUS; + break; + default: + jj_la1[55] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + break; + default: + jj_la1[56] = jj_gen; + ; + } + if (operator == -1) { + {if (true) return expr;} + } + {if (true) return new PostfixedUnaryExpression(expr,operator,token.sourceEnd);} + throw new Error("Missing return statement in function"); + } + + final public Expression PrimaryExpression() throws ParseException { + Expression expr; + Token token = null; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case NEW: + case BIT_AND: + case DOLLAR: + case IDENTIFIER: + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BIT_AND: + token = jj_consume_token(BIT_AND); + break; + default: + jj_la1[57] = jj_gen; + ; + } + expr = refPrimaryExpression(token); + {if (true) return expr;} + break; + case ARRAY: + expr = ArrayDeclarator(); + {if (true) return expr;} + break; + default: + jj_la1[58] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public Expression refPrimaryExpression(final Token reference) throws ParseException { + Expression expr; + Expression expr2 = null; + final Token identifier; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IDENTIFIER: + identifier = jj_consume_token(IDENTIFIER); + expr = new ConstantIdentifier(identifier); + label_19: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STATICCLASSACCESS: + ; + break; + default: + jj_la1[59] = jj_gen; + break label_19; + } + jj_consume_token(STATICCLASSACCESS); + expr2 = ClassIdentifier(); + expr = new ClassAccess(expr, + expr2, + ClassAccess.STATIC); + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LPAREN: + expr2 = Arguments(expr); + break; + default: + jj_la1[60] = jj_gen; + ; + } + if (expr2 == null) { + if (reference != null) { + ParseException e = generateParseException(); + errorMessage = "you cannot use a constant by reference"; + errorLevel = ERROR; + errorStart = reference.sourceStart; + errorEnd = reference.sourceEnd; + processParseExceptionDebug(e); + } + {if (true) return expr;} + } + {if (true) return expr2;} + break; + case DOLLAR: + expr = VariableDeclaratorId(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LPAREN: + expr = Arguments(expr); + break; + default: + jj_la1[61] = jj_gen; + ; + } + {if (true) return expr;} + break; + case NEW: + token = jj_consume_token(NEW); + expr = ClassIdentifier(); + int start; + if (reference == null) { + start = token.sourceStart; + } else { + start = reference.sourceStart; + } + expr = new ClassInstantiation(expr, + reference != null, + start); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LPAREN: + expr = Arguments(expr); + break; + default: + jj_la1[62] = jj_gen; + ; + } + {if (true) return expr;} + break; + default: + jj_la1[63] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } /** * An array declarator. * array(vars) * @return an array */ - static final public ArrayInitializer ArrayDeclarator() throws ParseException { - final ArrayVariableDeclaration[] vars; - final Token token; - token = jj_consume_token(ARRAY); - vars = ArrayInitializer(); - {if (true) return new ArrayInitializer(vars, - token.sourceStart, - PHPParser.token.sourceEnd);} - throw new Error("Missing return statement in function"); - } - - static final public Expression ClassIdentifier() throws ParseException { - final Expression expr; - final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case IDENTIFIER: - token = jj_consume_token(IDENTIFIER); - {if (true) return new ConstantIdentifier(token);} - break; - case STRING: - case OBJECT: - case BOOL: - case BOOLEAN: - case REAL: - case DOUBLE: - case FLOAT: - case INT: - case INTEGER: - expr = Type(); - {if (true) return expr;} - break; - case DOLLAR: - expr = VariableDeclaratorId(); - {if (true) return expr;} - break; - default: - jj_la1[64] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } + final public ArrayInitializer ArrayDeclarator() throws ParseException { + final ArrayVariableDeclaration[] vars; + final Token token; + token = jj_consume_token(ARRAY); + vars = ArrayInitializer(); + {if (true) return new ArrayInitializer(vars, + token.sourceStart, + this.token.sourceEnd);} + throw new Error("Missing return statement in function"); + } + + final public Expression ClassIdentifier() throws ParseException { + final Expression expr; + final Token token; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IDENTIFIER: + token = jj_consume_token(IDENTIFIER); + {if (true) return new ConstantIdentifier(token);} + break; + case STRING: + case OBJECT: + case BOOL: + case BOOLEAN: + case REAL: + case DOUBLE: + case FLOAT: + case INT: + case INTEGER: + expr = Type(); + {if (true) return expr;} + break; + case DOLLAR: + expr = VariableDeclaratorId(); + {if (true) return expr;} + break; + default: + jj_la1[64] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } /** * Used by Variabledeclaratorid and primarysuffix */ - static final public AbstractVariable VariableSuffix(final AbstractVariable prefix) throws ParseException { - Expression expression = null; - final Token classAccessToken,lbrace,rbrace; - Token token; - int pos; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case CLASSACCESS: - classAccessToken = jj_consume_token(CLASSACCESS); - try { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LBRACE: - lbrace = jj_consume_token(LBRACE); - expression = Expression(); - rbrace = jj_consume_token(RBRACE); - expression = new Variable(expression, - lbrace.sourceStart, - rbrace.sourceEnd); - break; - case IDENTIFIER: - token = jj_consume_token(IDENTIFIER); - expression = new ConstantIdentifier(token.image,token.sourceStart,token.sourceEnd); - break; - case DOLLAR: - expression = Variable(); - break; - default: - jj_la1[65] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected"; - errorLevel = ERROR; - errorStart = classAccessToken.sourceEnd +1; - errorEnd = classAccessToken.sourceEnd +1; - processParseExceptionDebug(e); - } - {if (true) return new ClassAccess(prefix, - expression, - ClassAccess.NORMAL);} - break; - case LBRACKET: - token = jj_consume_token(LBRACKET); - pos = token.sourceEnd+1; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case LIST: - case PRINT: - case NEW: - case NULL: - case TRUE: - case FALSE: - case STRING: - case OBJECT: - case BOOL: - case BOOLEAN: - case REAL: - case DOUBLE: - case FLOAT: - case INT: - case INTEGER: - case AT: - case BANG: - case TILDE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case LIST: - case PRINT: - case NEW: - case NULL: - case TRUE: - case FALSE: - case AT: - case BANG: - case TILDE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - expression = Expression(); - pos = expression.sourceEnd+1; - break; - case STRING: - case OBJECT: - case BOOL: - case BOOLEAN: - case REAL: - case DOUBLE: - case FLOAT: - case INT: - case INTEGER: - expression = Type(); - pos = expression.sourceEnd+1; - break; - default: - jj_la1[66] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - break; - default: - jj_la1[67] = jj_gen; - ; - } - try { - token = jj_consume_token(RBRACKET); - pos = token.sourceEnd; - } catch (ParseException e) { - errorMessage = "']' expected"; - errorLevel = ERROR; - errorStart = pos; - errorEnd = pos; - processParseExceptionDebug(e); - } - {if (true) return new ArrayDeclarator(prefix,expression,pos);} - break; - case LBRACE: - token = jj_consume_token(LBRACE); - pos = token.sourceEnd+1; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case LIST: - case PRINT: - case NEW: - case NULL: - case TRUE: - case FALSE: - case STRING: - case OBJECT: - case BOOL: - case BOOLEAN: - case REAL: - case DOUBLE: - case FLOAT: - case INT: - case INTEGER: - case AT: - case BANG: - case TILDE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case LIST: - case PRINT: - case NEW: - case NULL: - case TRUE: - case FALSE: - case AT: - case BANG: - case TILDE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - expression = Expression(); - pos = expression.sourceEnd+1; - break; - case STRING: - case OBJECT: - case BOOL: - case BOOLEAN: - case REAL: - case DOUBLE: - case FLOAT: - case INT: - case INTEGER: - expression = Type(); - pos = expression.sourceEnd+1; - break; - default: - jj_la1[68] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - break; - default: - jj_la1[69] = jj_gen; - ; - } - try { - token = jj_consume_token(RBRACE); - pos = token.sourceEnd; - } catch (ParseException e) { - errorMessage = "']' expected"; - errorLevel = ERROR; - errorStart = pos; - errorEnd = pos; - processParseExceptionDebug(e); - } - {if (true) return new ArrayDeclarator(prefix,expression,pos);} - break; - default: - jj_la1[70] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public Literal Literal() throws ParseException { - final Token token; - StringLiteral literal; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case INTEGER_LITERAL: - token = jj_consume_token(INTEGER_LITERAL); - {if (true) return new NumberLiteral(token);} - break; - case FLOATING_POINT_LITERAL: - token = jj_consume_token(FLOATING_POINT_LITERAL); - {if (true) return new NumberLiteral(token);} - break; - case STRING_LITERAL: - token = jj_consume_token(STRING_LITERAL); - {if (true) return new StringLiteral(token);} - break; - case TRUE: - token = jj_consume_token(TRUE); - {if (true) return new TrueLiteral(token);} - break; - case FALSE: - token = jj_consume_token(FALSE); - {if (true) return new FalseLiteral(token);} - break; - case NULL: - token = jj_consume_token(NULL); - {if (true) return new NullLiteral(token);} - break; - case DOUBLEQUOTE: - literal = evaluableString(); - {if (true) return literal;} - break; - default: - jj_la1[71] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public StringLiteral evaluableString() throws ParseException { - ArrayList list = new ArrayList(); - Token start,end; - Token token,lbrace,rbrace; - AbstractVariable var; - Expression expr; - start = jj_consume_token(DOUBLEQUOTE); - label_20: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case DOLLARS: - ; - break; - default: - jj_la1[72] = jj_gen; - break label_20; - } - jj_consume_token(DOLLARS); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case IDENTIFIER: - token = jj_consume_token(IDENTIFIER); - list.add(new Variable(token.image, - token.sourceStart, - token.sourceEnd)); - break; - case LBRACE1: - lbrace = jj_consume_token(LBRACE1); - token = jj_consume_token(ID); - list.add(new Variable(token.image, - token.sourceStart, - token.sourceEnd)); - rbrace = jj_consume_token(RBRACE1); - break; - default: - jj_la1[73] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - end = jj_consume_token(DOUBLEQUOTE2); - AbstractVariable[] vars = new AbstractVariable[list.size()]; - list.toArray(vars); - {if (true) return new StringLiteral(SimpleCharStream.currentBuffer.substring(start.sourceEnd,end.sourceStart), - start.sourceStart, - end.sourceEnd, - vars);} - throw new Error("Missing return statement in function"); - } - - static final public FunctionCall Arguments(final Expression func) throws ParseException { + final public AbstractVariable VariableSuffix(final AbstractVariable prefix) throws ParseException { + Expression expression = null; + final Token classAccessToken,lbrace,rbrace; + Token token; + int pos; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case CLASSACCESS: + classAccessToken = jj_consume_token(CLASSACCESS); + try { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACE: + lbrace = jj_consume_token(LBRACE); + expression = Expression(); + rbrace = jj_consume_token(RBRACE); + expression = new Variable(expression, + lbrace.sourceStart, + rbrace.sourceEnd); + break; + case IDENTIFIER: + token = jj_consume_token(IDENTIFIER); + expression = new ConstantIdentifier(token.image,token.sourceStart,token.sourceEnd); + break; + case DOLLAR: + expression = Variable(); + break; + default: + jj_la1[65] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected"; + errorLevel = ERROR; + errorStart = classAccessToken.sourceEnd +1; + errorEnd = classAccessToken.sourceEnd +1; + processParseExceptionDebug(e); + } + {if (true) return new ClassAccess(prefix, + expression, + ClassAccess.NORMAL);} + break; + case LBRACKET: + token = jj_consume_token(LBRACKET); + pos = token.sourceEnd+1; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case STRING: + case OBJECT: + case BOOL: + case BOOLEAN: + case REAL: + case DOUBLE: + case FLOAT: + case INT: + case INTEGER: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + expression = Expression(); + pos = expression.sourceEnd+1; + break; + case STRING: + case OBJECT: + case BOOL: + case BOOLEAN: + case REAL: + case DOUBLE: + case FLOAT: + case INT: + case INTEGER: + expression = Type(); + pos = expression.sourceEnd+1; + break; + default: + jj_la1[66] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + break; + default: + jj_la1[67] = jj_gen; + ; + } + try { + token = jj_consume_token(RBRACKET); + pos = token.sourceEnd; + } catch (ParseException e) { + errorMessage = "']' expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + } + {if (true) return new ArrayDeclarator(prefix,expression,pos);} + break; + case LBRACE: + token = jj_consume_token(LBRACE); + pos = token.sourceEnd+1; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case STRING: + case OBJECT: + case BOOL: + case BOOLEAN: + case REAL: + case DOUBLE: + case FLOAT: + case INT: + case INTEGER: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + expression = Expression(); + pos = expression.sourceEnd+1; + break; + case STRING: + case OBJECT: + case BOOL: + case BOOLEAN: + case REAL: + case DOUBLE: + case FLOAT: + case INT: + case INTEGER: + expression = Type(); + pos = expression.sourceEnd+1; + break; + default: + jj_la1[68] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + break; + default: + jj_la1[69] = jj_gen; + ; + } + try { + token = jj_consume_token(RBRACE); + pos = token.sourceEnd; + } catch (ParseException e) { + errorMessage = "']' expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + } + {if (true) return new ArrayDeclarator(prefix,expression,pos);} + break; + default: + jj_la1[70] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public Literal Literal() throws ParseException { + final Token token; + StringLiteral literal; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INTEGER_LITERAL: + token = jj_consume_token(INTEGER_LITERAL); + {if (true) return new NumberLiteral(token);} + break; + case FLOATING_POINT_LITERAL: + token = jj_consume_token(FLOATING_POINT_LITERAL); + {if (true) return new NumberLiteral(token);} + break; + case STRING_LITERAL: + token = jj_consume_token(STRING_LITERAL); + {if (true) return new StringLiteral(token);} + break; + case TRUE: + token = jj_consume_token(TRUE); + {if (true) return new TrueLiteral(token);} + break; + case FALSE: + token = jj_consume_token(FALSE); + {if (true) return new FalseLiteral(token);} + break; + case NULL: + token = jj_consume_token(NULL); + {if (true) return new NullLiteral(token);} + break; + case DOUBLEQUOTE: + literal = evaluableString(); + {if (true) return literal;} + break; + default: + jj_la1[71] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public StringLiteral evaluableString() throws ParseException { + ArrayList list = new ArrayList(); + Token start,end; + Token token,lbrace,rbrace; + AbstractVariable var; + Expression expr; + start = jj_consume_token(DOUBLEQUOTE); + label_20: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case DOLLARS: + ; + break; + default: + jj_la1[72] = jj_gen; + break label_20; + } + jj_consume_token(DOLLARS); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IDENTIFIER: + token = jj_consume_token(IDENTIFIER); + list.add(new Variable(token.image, + token.sourceStart, + token.sourceEnd)); + break; + case LBRACE1: + lbrace = jj_consume_token(LBRACE1); + token = jj_consume_token(ID); + list.add(new Variable(token.image, + token.sourceStart, + token.sourceEnd)); + rbrace = jj_consume_token(RBRACE1); + break; + default: + jj_la1[73] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + end = jj_consume_token(DOUBLEQUOTE2); + AbstractVariable[] vars = new AbstractVariable[list.size()]; + list.toArray(vars); + {if (true) return new StringLiteral(jj_input_stream.getCurrentBuffer().substring(start.sourceEnd,end.sourceStart), + start.sourceStart, + end.sourceEnd, + vars);} + throw new Error("Missing return statement in function"); + } + + final public FunctionCall Arguments(final Expression func) throws ParseException { Expression[] args = null; final Token token,lparen; - lparen = jj_consume_token(LPAREN); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case LIST: - case PRINT: - case NEW: - case NULL: - case TRUE: - case FALSE: - case AT: - case BANG: - case TILDE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - args = ArgumentList(); - break; - default: - jj_la1[74] = jj_gen; - ; - } - try { - token = jj_consume_token(RPAREN); - {if (true) return new FunctionCall(func,args,token.sourceEnd);} - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list"; - errorLevel = ERROR; - if (args == null) { - errorStart = lparen.sourceEnd+1; - errorEnd = lparen.sourceEnd+2; - } else { - errorStart = args[args.length-1].sourceEnd+1; - errorEnd = args[args.length-1].sourceEnd+2; - } - processParseExceptionDebug(e); - } - int sourceEnd = (args == null && args.length != 0) ? lparen.sourceEnd+1 : args[args.length-1].sourceEnd; - {if (true) return new FunctionCall(func,args,sourceEnd);} - throw new Error("Missing return statement in function"); - } + lparen = jj_consume_token(LPAREN); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + args = ArgumentList(); + break; + default: + jj_la1[74] = jj_gen; + ; + } + try { + token = jj_consume_token(RPAREN); + {if (true) return new FunctionCall(func,args,token.sourceEnd);} + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list"; + errorLevel = ERROR; + if (args == null) { + errorStart = lparen.sourceEnd+1; + errorEnd = lparen.sourceEnd+2; + } else { + errorStart = args[args.length-1].sourceEnd+1; + errorEnd = args[args.length-1].sourceEnd+2; + } + processParseExceptionDebug(e); + } + int sourceEnd = (args == null && args.length != 0) ? lparen.sourceEnd+1 : args[args.length-1].sourceEnd; + {if (true) return new FunctionCall(func,args,sourceEnd);} + throw new Error("Missing return statement in function"); + } /** * An argument list is a list of arguments separated by comma : * argumentDeclaration() (, argumentDeclaration)* * @return an array of arguments */ - static final public Expression[] ArgumentList() throws ParseException { + final public Expression[] ArgumentList() throws ParseException { Expression arg; final ArrayList list = new ArrayList(); int pos; Token token; - arg = Expression(); - list.add(arg);pos = arg.sourceEnd; - label_21: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case COMMA: - ; - break; - default: - jj_la1[75] = jj_gen; - break label_21; - } - token = jj_consume_token(COMMA); - pos = token.sourceEnd; - try { - arg = Expression(); - list.add(arg); - pos = arg.sourceEnd; - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list"; - errorLevel = ERROR; - errorStart = pos+1; - errorEnd = pos+1; - processParseException(e); - } - } - final Expression[] arguments = new Expression[list.size()]; - list.toArray(arguments); - {if (true) return arguments;} - throw new Error("Missing return statement in function"); - } + arg = Expression(); + list.add(arg);pos = arg.sourceEnd; + label_21: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[75] = jj_gen; + break label_21; + } + token = jj_consume_token(COMMA); + pos = token.sourceEnd; + try { + arg = Expression(); + list.add(arg); + pos = arg.sourceEnd; + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list"; + errorLevel = ERROR; + errorStart = pos+1; + errorEnd = pos+1; + processParseException(e); + } + } + final Expression[] arguments = new Expression[list.size()]; + list.toArray(arguments); + {if (true) return arguments;} + throw new Error("Missing return statement in function"); + } /** * A Statement without break. * @return a statement */ - static final public Statement StatementNoBreak() throws ParseException { - final Statement statement; - Token token = null; - if (jj_2_4(2)) { - statement = expressionStatement(); - {if (true) return statement;} - } else { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case IDENTIFIER: - statement = LabeledStatement(); - {if (true) return statement;} - break; - case LBRACE: - statement = Block(); - {if (true) return statement;} - break; - case SEMICOLON: - statement = EmptyStatement(); - {if (true) return statement;} - break; - case SWITCH: - statement = SwitchStatement(); - {if (true) return statement;} - break; - case IF: - statement = IfStatement(); - {if (true) return statement;} - break; - case WHILE: - statement = WhileStatement(); - {if (true) return statement;} - break; - case DO: - statement = DoStatement(); - {if (true) return statement;} - break; - case FOR: - statement = ForStatement(); - {if (true) return statement;} - break; - case FOREACH: - statement = ForeachStatement(); - {if (true) return statement;} - break; - case CONTINUE: - statement = ContinueStatement(); - {if (true) return statement;} - break; - case RETURN: - statement = ReturnStatement(); - {if (true) return statement;} - break; - case ECHO: - statement = EchoStatement(); - {if (true) return statement;} - break; - case INCLUDE: - case REQUIRE: - case INCLUDE_ONCE: - case REQUIRE_ONCE: - case AT: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case AT: - token = jj_consume_token(AT); - break; - default: - jj_la1[76] = jj_gen; - ; - } - statement = IncludeStatement(); - if (token != null) { - ((InclusionStatement)statement).silent = true; - statement.sourceStart = token.sourceStart; - } - {if (true) return statement;} - break; - case STATIC: - statement = StaticStatement(); - {if (true) return statement;} - break; - case GLOBAL: - statement = GlobalStatement(); - {if (true) return statement;} - break; - case DEFINE: - statement = defineStatement(); - currentSegment.add((Outlineable)statement);{if (true) return statement;} - break; - default: - jj_la1[77] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - throw new Error("Missing return statement in function"); - } + final public Statement StatementNoBreak() throws ParseException { + final Statement statement; + Token token = null; + if (jj_2_4(2)) { + statement = expressionStatement(); + {if (true) return statement;} + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IDENTIFIER: + statement = LabeledStatement(); + {if (true) return statement;} + break; + case LBRACE: + statement = Block(); + {if (true) return statement;} + break; + case SEMICOLON: + statement = EmptyStatement(); + {if (true) return statement;} + break; + case SWITCH: + statement = SwitchStatement(); + {if (true) return statement;} + break; + case IF: + statement = IfStatement(); + {if (true) return statement;} + break; + case WHILE: + statement = WhileStatement(); + {if (true) return statement;} + break; + case DO: + statement = DoStatement(); + {if (true) return statement;} + break; + case FOR: + statement = ForStatement(); + {if (true) return statement;} + break; + case FOREACH: + statement = ForeachStatement(); + {if (true) return statement;} + break; + case CONTINUE: + statement = ContinueStatement(); + {if (true) return statement;} + break; + case RETURN: + statement = ReturnStatement(); + {if (true) return statement;} + break; + case ECHO: + statement = EchoStatement(); + {if (true) return statement;} + break; + case INCLUDE: + case REQUIRE: + case INCLUDE_ONCE: + case REQUIRE_ONCE: + case AT: + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case AT: + token = jj_consume_token(AT); + break; + default: + jj_la1[76] = jj_gen; + ; + } + statement = IncludeStatement(); + if (token != null) { + ((InclusionStatement)statement).silent = true; + statement.sourceStart = token.sourceStart; + } + {if (true) return statement;} + break; + case STATIC: + statement = StaticStatement(); + {if (true) return statement;} + break; + case GLOBAL: + statement = GlobalStatement(); + {if (true) return statement;} + break; + case DEFINE: + statement = defineStatement(); + currentSegment.add((Outlineable)statement);{if (true) return statement;} + break; + default: + jj_la1[77] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } /** * A statement expression. * expression ; * @return an expression */ - static final public Statement expressionStatement() throws ParseException { - final Statement statement; - final Token token; - statement = Expression(); - try { - token = jj_consume_token(SEMICOLON); - statement.sourceEnd = token.sourceEnd; - } catch (ParseException e) { - if (e.currentToken.next.kind != PHPParserConstants.PHPEND) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected"; - errorLevel = ERROR; - errorStart = statement.sourceEnd+1; - errorEnd = statement.sourceEnd+1; - processParseExceptionDebug(e); - } - } - {if (true) return statement;} - throw new Error("Missing return statement in function"); - } - - static final public Define defineStatement() throws ParseException { - Expression defineName,defineValue; - final Token defineToken; - Token token; - int pos; - defineToken = jj_consume_token(DEFINE); - pos = defineToken.sourceEnd+1; - try { - token = jj_consume_token(LPAREN); - pos = token.sourceEnd+1; - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected"; - errorLevel = ERROR; - errorStart = pos; - errorEnd = pos; - processParseExceptionDebug(e); - } - try { - defineName = Expression(); - pos = defineName.sourceEnd+1; - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; - errorLevel = ERROR; - errorStart = pos; - errorEnd = pos; - processParseExceptionDebug(e); - defineName = new StringLiteral(SYNTAX_ERROR_CHAR,pos,pos); - } - try { - token = jj_consume_token(COMMA); - pos = defineName.sourceEnd+1; - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected"; - errorLevel = ERROR; - errorStart = pos; - errorEnd = pos; - processParseExceptionDebug(e); - } - try { - defineValue = Expression(); - pos = defineValue.sourceEnd+1; - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; - errorLevel = ERROR; - errorStart = pos; - errorEnd = pos; - processParseExceptionDebug(e); - defineValue = new StringLiteral(SYNTAX_ERROR_CHAR,pos,pos); - } - try { - token = jj_consume_token(RPAREN); - pos = token.sourceEnd+1; - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected"; - errorLevel = ERROR; - errorStart = pos; - errorEnd = pos; - processParseExceptionDebug(e); - } - {if (true) return new Define(currentSegment, - defineName, - defineValue, - defineToken.sourceStart, - pos);} - throw new Error("Missing return statement in function"); - } + final public Statement expressionStatement() throws ParseException { + final Statement statement; + final Token token; + statement = Expression(); + try { + token = jj_consume_token(SEMICOLON); + statement.sourceEnd = token.sourceEnd; + } catch (ParseException e) { + if (e.currentToken.next.kind != PHPParserConstants.PHPEND) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected"; + errorLevel = ERROR; + errorStart = statement.sourceEnd+1; + errorEnd = statement.sourceEnd+1; + processParseExceptionDebug(e); + } + } + {if (true) return statement;} + throw new Error("Missing return statement in function"); + } + + final public Define defineStatement() throws ParseException { + Expression defineName,defineValue; + final Token defineToken; + Token token; + int pos; + defineToken = jj_consume_token(DEFINE); + pos = defineToken.sourceEnd+1; + try { + token = jj_consume_token(LPAREN); + pos = token.sourceEnd+1; + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + } + try { + defineName = Expression(); + pos = defineName.sourceEnd+1; + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + defineName = new StringLiteral(SYNTAX_ERROR_CHAR,pos,pos); + } + try { + token = jj_consume_token(COMMA); + pos = defineName.sourceEnd+1; + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + } + try { + defineValue = Expression(); + pos = defineValue.sourceEnd+1; + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + defineValue = new StringLiteral(SYNTAX_ERROR_CHAR,pos,pos); + } + try { + token = jj_consume_token(RPAREN); + pos = token.sourceEnd+1; + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + } + {if (true) return new Define(currentSegment, + defineName, + defineValue, + defineToken.sourceStart, + pos);} + throw new Error("Missing return statement in function"); + } /** * A Normal statement. */ - static final public Statement Statement() throws ParseException { - final Statement statement; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case IF: - case ARRAY: - case LIST: - case PRINT: - case ECHO: - case INCLUDE: - case REQUIRE: - case INCLUDE_ONCE: - case REQUIRE_ONCE: - case GLOBAL: - case DEFINE: - case STATIC: - case CONTINUE: - case DO: - case FOR: - case NEW: - case NULL: - case RETURN: - case SWITCH: - case TRUE: - case FALSE: - case WHILE: - case FOREACH: - case AT: - case BANG: - case TILDE: - case PLUS_PLUS: - case MINUS_MINUS: - case PLUS: - case MINUS: - case BIT_AND: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case DOUBLEQUOTE: - case DOLLAR: - case IDENTIFIER: - case LPAREN: - case LBRACE: - case SEMICOLON: - statement = StatementNoBreak(); - {if (true) return statement;} - break; - case BREAK: - statement = BreakStatement(); - {if (true) return statement;} - break; - default: - jj_la1[78] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } + final public Statement Statement() throws ParseException { + final Statement statement; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IF: + case ARRAY: + case LIST: + case PRINT: + case ECHO: + case INCLUDE: + case REQUIRE: + case INCLUDE_ONCE: + case REQUIRE_ONCE: + case GLOBAL: + case DEFINE: + case STATIC: + case CONTINUE: + case DO: + case FOR: + case NEW: + case NULL: + case RETURN: + case SWITCH: + case TRUE: + case FALSE: + case WHILE: + case FOREACH: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + case LBRACE: + case SEMICOLON: + statement = StatementNoBreak(); + {if (true) return statement;} + break; + case BREAK: + statement = BreakStatement(); + {if (true) return statement;} + break; + default: + jj_la1[78] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } /** * An html block inside a php syntax. */ - static final public HTMLBlock htmlBlock() throws ParseException { - final int startIndex = nodePtr; - final AstNode[] blockNodes; - final int nbNodes; - final Token phpEnd; - phpEnd = jj_consume_token(PHPEND); - htmlStart = phpEnd.sourceEnd; - label_22: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PHPECHOSTART: - ; - break; - default: - jj_la1[79] = jj_gen; - break label_22; - } - phpEchoBlock(); - } - try { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PHPSTARTLONG: - jj_consume_token(PHPSTARTLONG); - break; - case PHPSTARTSHORT: - jj_consume_token(PHPSTARTSHORT); - break; - default: - jj_la1[80] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - PHPParser.createNewHTMLCode(); - } catch (ParseException e) { - errorMessage = "unexpected end of file , ' 100) { - jj_gc = 0; - for (int i = 0; i < jj_2_rtns.length; i++) { - JJCalls c = jj_2_rtns[i]; - while (c != null) { - if (c.gen < jj_gen) c.first = null; - c = c.next; - } - } - } - return token; - } - token = oldToken; - jj_kind = kind; - throw generateParseException(); - } - - static final private boolean jj_scan_token(int kind) { - if (jj_scanpos == jj_lastpos) { - jj_la--; - if (jj_scanpos.next == null) { - jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); - } else { - jj_lastpos = jj_scanpos = jj_scanpos.next; - } - } else { - jj_scanpos = jj_scanpos.next; - } - if (jj_rescan) { - int i = 0; Token tok = token; - while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } - if (tok != null) jj_add_error_token(kind, i); - } - return (jj_scanpos.kind != kind); - } - - static final public Token getNextToken() { - if (token.next != null) token = token.next; - else token = token.next = token_source.getNextToken(); - jj_ntk = -1; - jj_gen++; - return token; - } - - static final public Token getToken(int index) { - Token t = lookingAhead ? jj_scanpos : token; - for (int i = 0; i < index; i++) { - if (t.next != null) t = t.next; - else t = t.next = token_source.getNextToken(); - } - return t; - } - - static final private int jj_ntk() { - if ((jj_nt=token.next) == null) - return (jj_ntk = (token.next=token_source.getNextToken()).kind); - else - return (jj_ntk = jj_nt.kind); - } - - static private java.util.Vector jj_expentries = new java.util.Vector(); - static private int[] jj_expentry; - static private int jj_kind = -1; - static private int[] jj_lasttokens = new int[100]; - static private int jj_endpos; - - static private void jj_add_error_token(int kind, int pos) { - if (pos >= 100) return; - if (pos == jj_endpos + 1) { - jj_lasttokens[jj_endpos++] = kind; - } else if (jj_endpos != 0) { - jj_expentry = new int[jj_endpos]; - for (int i = 0; i < jj_endpos; i++) { - jj_expentry[i] = jj_lasttokens[i]; - } - boolean exists = false; - for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) { - int[] oldentry = (int[])(enum.nextElement()); - if (oldentry.length == jj_expentry.length) { - exists = true; - for (int i = 0; i < jj_expentry.length; i++) { - if (oldentry[i] != jj_expentry[i]) { - exists = false; - break; - } - } - if (exists) break; - } - } - if (!exists) jj_expentries.addElement(jj_expentry); - if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; - } - } - - static public ParseException generateParseException() { - jj_expentries.removeAllElements(); - boolean[] la1tokens = new boolean[160]; - for (int i = 0; i < 160; i++) { - la1tokens[i] = false; - } - if (jj_kind >= 0) { - la1tokens[jj_kind] = true; - jj_kind = -1; - } - for (int i = 0; i < 128; i++) { - if (jj_la1[i] == jj_gen) { - for (int j = 0; j < 32; j++) { - if ((jj_la1_0[i] & (1< jj_gen) { - jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; - switch (i) { - case 0: jj_3_1(); break; - case 1: jj_3_2(); break; - case 2: jj_3_3(); break; - case 3: jj_3_4(); break; - case 4: jj_3_5(); break; - } - } - p = p.next; - } while (p != null); - } - jj_rescan = false; - } - - static final private void jj_save(int index, int xla) { - JJCalls p = jj_2_rtns[index]; - while (p.gen > jj_gen) { - if (p.next == null) { p = p.next = new JJCalls(); break; } - p = p.next; - } - p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla; - } - - static final class JJCalls { - int gen; - Token first; - int arg; - JJCalls next; - } - + token = jj_consume_token(FOR); + try { + jj_consume_token(LPAREN); + } catch (ParseException e) { + errorMessage = "'(' expected after 'for' keyword"; + errorLevel = ERROR; + errorStart = token.sourceEnd; + errorEnd = token.sourceEnd +1; + processParseExceptionDebug(e); + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + initializations = ForInit(); + break; + default: + jj_la1[119] = jj_gen; + ; + } + jj_consume_token(SEMICOLON); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + condition = Expression(); + break; + default: + jj_la1[120] = jj_gen; + ; + } + jj_consume_token(SEMICOLON); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + increments = StatementExpressionList(); + break; + default: + jj_la1[121] = jj_gen; + ; + } + jj_consume_token(RPAREN); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IF: + case ARRAY: + case BREAK: + case LIST: + case PRINT: + case ECHO: + case INCLUDE: + case REQUIRE: + case INCLUDE_ONCE: + case REQUIRE_ONCE: + case GLOBAL: + case DEFINE: + case STATIC: + case CONTINUE: + case DO: + case FOR: + case NEW: + case NULL: + case RETURN: + case SWITCH: + case TRUE: + case FALSE: + case WHILE: + case FOREACH: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + case LBRACE: + case SEMICOLON: + action = Statement(); + {if (true) return new ForStatement(initializations, + condition, + increments, + action, + token.sourceStart, + action.sourceEnd);} + break; + case COLON: + tokenColon = jj_consume_token(COLON); + pos = tokenColon.sourceEnd+1; + label_38: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IF: + case ARRAY: + case BREAK: + case LIST: + case PRINT: + case ECHO: + case INCLUDE: + case REQUIRE: + case INCLUDE_ONCE: + case REQUIRE_ONCE: + case GLOBAL: + case DEFINE: + case STATIC: + case CONTINUE: + case DO: + case FOR: + case NEW: + case NULL: + case RETURN: + case SWITCH: + case TRUE: + case FALSE: + case WHILE: + case FOREACH: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + case LBRACE: + case SEMICOLON: + ; + break; + default: + jj_la1[122] = jj_gen; + break label_38; + } + action = Statement(); + list.add(action);pos = action.sourceEnd+1; + } + try { + setMarker(fileToParse, + "Ugly syntax detected, you should for () {...} instead of for (): ... endfor;", + token.sourceStart, + token.sourceEnd, + INFO, + "Line " + token.beginLine); + } catch (CoreException e) { + PHPeclipsePlugin.log(e); + } + try { + tokenEndFor = jj_consume_token(ENDFOR); + pos = tokenEndFor.sourceEnd+1; + } catch (ParseException e) { + errorMessage = "'endfor' expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + } + try { + token2 = jj_consume_token(SEMICOLON); + pos = token2.sourceEnd+1; + } catch (ParseException e) { + errorMessage = "';' expected after 'endfor' keyword"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + } + final Statement[] stmtsArray = new Statement[list.size()]; + list.toArray(stmtsArray); + {if (true) return new ForStatement(initializations, + condition, + increments, + new Block(stmtsArray, + stmtsArray[0].sourceStart, + stmtsArray[stmtsArray.length-1].sourceEnd), + token.sourceStart, + pos);} + break; + default: + jj_la1[123] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public Expression[] ForInit() throws ParseException { + final Expression[] exprs; + if (jj_2_5(2147483647)) { + exprs = LocalVariableDeclaration(); + {if (true) return exprs;} + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + exprs = StatementExpressionList(); + {if (true) return exprs;} + break; + default: + jj_la1[124] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + + final public Expression[] StatementExpressionList() throws ParseException { + final ArrayList list = new ArrayList(); + final Expression expr; + expr = Expression(); + list.add(expr); + label_39: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[125] = jj_gen; + break label_39; + } + jj_consume_token(COMMA); + Expression(); + list.add(expr); + } + final Expression[] exprsArray = new Expression[list.size()]; + list.toArray(exprsArray); + {if (true) return exprsArray;} + throw new Error("Missing return statement in function"); + } + + final public Continue ContinueStatement() throws ParseException { + Expression expr = null; + final Token token; + Token token2 = null; + token = jj_consume_token(CONTINUE); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + expr = Expression(); + break; + default: + jj_la1[126] = jj_gen; + ; + } + try { + token2 = jj_consume_token(SEMICOLON); + } catch (ParseException e) { + errorMessage = "';' expected after 'continue' statement"; + errorLevel = ERROR; + if (expr == null) { + errorStart = token.sourceEnd+1; + errorEnd = token.sourceEnd+1; + } else { + errorStart = expr.sourceEnd+1; + errorEnd = expr.sourceEnd+1; + } + processParseExceptionDebug(e); + } + if (token2 == null) { + if (expr == null) { + {if (true) return new Continue(expr,token.sourceStart,token.sourceEnd);} + } + {if (true) return new Continue(expr,token.sourceStart,expr.sourceEnd);} + } + {if (true) return new Continue(expr,token.sourceStart,token2.sourceEnd);} + throw new Error("Missing return statement in function"); + } + + final public ReturnStatement ReturnStatement() throws ParseException { + Expression expr = null; + final Token token; + Token token2 = null; + token = jj_consume_token(RETURN); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOUBLEQUOTE: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + expr = Expression(); + break; + default: + jj_la1[127] = jj_gen; + ; + } + try { + token2 = jj_consume_token(SEMICOLON); + } catch (ParseException e) { + errorMessage = "';' expected after 'return' statement"; + errorLevel = ERROR; + if (expr == null) { + errorStart = token.sourceEnd+1; + errorEnd = token.sourceEnd+1; + } else { + errorStart = expr.sourceEnd+1; + errorEnd = expr.sourceEnd+1; + } + processParseExceptionDebug(e); + } + if (token2 == null) { + if (expr == null) { + {if (true) return new ReturnStatement(expr,token.sourceStart,token.sourceEnd);} + } + {if (true) return new ReturnStatement(expr,token.sourceStart,expr.sourceEnd);} + } + {if (true) return new ReturnStatement(expr,token.sourceStart,token2.sourceEnd);} + throw new Error("Missing return statement in function"); + } + + final private boolean jj_2_1(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_1(); + jj_save(0, xla); + return retval; + } + + final private boolean jj_2_2(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_2(); + jj_save(1, xla); + return retval; + } + + final private boolean jj_2_3(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_3(); + jj_save(2, xla); + return retval; + } + + final private boolean jj_2_4(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_4(); + jj_save(3, xla); + return retval; + } + + final private boolean jj_2_5(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_5(); + jj_save(4, xla); + return retval; + } + + final private boolean jj_3R_210() { + if (jj_3R_116()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_209() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_109() { + if (jj_3R_114()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_115()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_208() { + if (jj_scan_token(IDENTIFIER)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_203() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_208()) { + jj_scanpos = xsp; + if (jj_3R_209()) { + jj_scanpos = xsp; + if (jj_3R_210()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_110() { + if (jj_scan_token(BIT_OR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_109()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_103() { + if (jj_3R_109()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_110()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_188() { + if (jj_scan_token(ARRAY)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_198()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_132() { + if (jj_scan_token(IDENTIFIER)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_106() { + if (jj_scan_token(DOT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_103()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_131() { + if (jj_scan_token(LBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_97() { + if (jj_3R_103()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_106()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_204() { + if (jj_3R_207()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_122() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_130()) { + jj_scanpos = xsp; + if (jj_3R_131()) { + jj_scanpos = xsp; + if (jj_3R_132()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_130() { + if (jj_scan_token(DOLLAR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_122()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_108() { + if (jj_scan_token(_ANDL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_107() { + if (jj_scan_token(AND_AND)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_100() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_107()) { + jj_scanpos = xsp; + if (jj_3R_108()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_97()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_81() { + if (jj_3R_97()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_100()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_79() { + if (jj_scan_token(HOOK)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(COLON)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_73()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_195() { + if (jj_scan_token(NEW)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_203()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_204()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_68() { + if (jj_scan_token(DOLLAR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_122()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_202() { + if (jj_3R_207()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_194() { + if (jj_3R_116()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_202()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_102() { + if (jj_scan_token(_ORL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_101() { + if (jj_scan_token(OR_OR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_83() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_101()) { + jj_scanpos = xsp; + if (jj_3R_102()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_81()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_1() { + if (jj_3R_40()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_201() { + if (jj_3R_207()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_76() { + if (jj_3R_81()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_83()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_51() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_200() { + if (jj_scan_token(STATICCLASSACCESS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_203()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_116() { + if (jj_3R_68()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_1()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_45() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_51()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_193() { + if (jj_scan_token(IDENTIFIER)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_200()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + xsp = jj_scanpos; + if (jj_3R_201()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_187() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_193()) { + jj_scanpos = xsp; + if (jj_3R_194()) { + jj_scanpos = xsp; + if (jj_3R_195()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_73() { + if (jj_3R_76()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_79()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_178() { + if (jj_3R_188()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_5() { + if (jj_3R_45()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_186() { + if (jj_scan_token(BIT_AND)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_96() { + if (jj_scan_token(TILDEEQUAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_95() { + if (jj_scan_token(DOTASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_173() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_177()) { + jj_scanpos = xsp; + if (jj_3R_178()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_177() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_186()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_187()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_94() { + if (jj_scan_token(ORASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_93() { + if (jj_scan_token(XORASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_92() { + if (jj_scan_token(ANDASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_91() { + if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_90() { + if (jj_scan_token(LSHIFTASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_89() { + if (jj_scan_token(MINUSASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_88() { + if (jj_scan_token(PLUSASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_87() { + if (jj_scan_token(REMASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_86() { + if (jj_scan_token(SLASHASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_85() { + if (jj_scan_token(STARASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_84() { + if (jj_scan_token(ASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_80() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_84()) { + jj_scanpos = xsp; + if (jj_3R_85()) { + jj_scanpos = xsp; + if (jj_3R_86()) { + jj_scanpos = xsp; + if (jj_3R_87()) { + jj_scanpos = xsp; + if (jj_3R_88()) { + jj_scanpos = xsp; + if (jj_3R_89()) { + jj_scanpos = xsp; + if (jj_3R_90()) { + jj_scanpos = xsp; + if (jj_3R_91()) { + jj_scanpos = xsp; + if (jj_3R_92()) { + jj_scanpos = xsp; + if (jj_3R_93()) { + jj_scanpos = xsp; + if (jj_3R_94()) { + jj_scanpos = xsp; + if (jj_3R_95()) { + jj_scanpos = xsp; + if (jj_3R_96()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_197() { + if (jj_scan_token(MINUS_MINUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_196() { + if (jj_scan_token(PLUS_PLUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_191() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_196()) { + jj_scanpos = xsp; + if (jj_3R_197()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_175() { + if (jj_3R_173()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_191()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_99() { + if (jj_3R_105()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_98() { + if (jj_3R_104()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_82() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_98()) { + jj_scanpos = xsp; + if (jj_3R_99()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_190() { + if (jj_scan_token(ARRAY)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_189() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_78() { + if (jj_3R_82()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_43() { + if (jj_scan_token(ARRAY)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_77() { + if (jj_scan_token(BANG)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_74()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_74() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_77()) { + jj_scanpos = xsp; + if (jj_3R_78()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_174() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_189()) { + jj_scanpos = xsp; + if (jj_3R_190()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_144()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_42() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_58() { + if (jj_3R_74()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_3() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_42()) { + jj_scanpos = xsp; + if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_172() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_171() { + if (jj_3R_176()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_170() { + if (jj_3R_175()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_166() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_169()) { + jj_scanpos = xsp; + if (jj_3R_170()) { + jj_scanpos = xsp; + if (jj_3R_171()) { + jj_scanpos = xsp; + if (jj_3R_172()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_169() { + if (jj_3R_174()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_44() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(SEMICOLON)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_168() { + if (jj_scan_token(MINUS_MINUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_167() { + if (jj_scan_token(PLUS_PLUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_75() { + if (jj_3R_80()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_165() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_167()) { + jj_scanpos = xsp; + if (jj_3R_168()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_173()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_49() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_57()) { + jj_scanpos = xsp; + if (jj_3R_58()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_57() { + if (jj_3R_73()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_75()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_67() { + if (jj_scan_token(OBJECT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_161() { + if (jj_3R_166()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_66() { + if (jj_scan_token(INTEGER)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_65() { + if (jj_scan_token(INT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_64() { + if (jj_scan_token(FLOAT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_160() { + if (jj_3R_165()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_63() { + if (jj_scan_token(DOUBLE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_62() { + if (jj_scan_token(REAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_61() { + if (jj_scan_token(BOOLEAN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_60() { + if (jj_scan_token(BOOL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_159() { + if (jj_scan_token(MINUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_148()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_50() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_59()) { + jj_scanpos = xsp; + if (jj_3R_60()) { + jj_scanpos = xsp; + if (jj_3R_61()) { + jj_scanpos = xsp; + if (jj_3R_62()) { + jj_scanpos = xsp; + if (jj_3R_63()) { + jj_scanpos = xsp; + if (jj_3R_64()) { + jj_scanpos = xsp; + if (jj_3R_65()) { + jj_scanpos = xsp; + if (jj_3R_66()) { + jj_scanpos = xsp; + if (jj_3R_67()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_59() { + if (jj_scan_token(STRING)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_156() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_158()) { + jj_scanpos = xsp; + if (jj_3R_159()) { + jj_scanpos = xsp; + if (jj_3R_160()) { + jj_scanpos = xsp; + if (jj_3R_161()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_158() { + if (jj_scan_token(PLUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_148()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_4() { + if (jj_3R_44()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_164() { + if (jj_3R_156()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_163() { + if (jj_scan_token(BANG)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_157()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_157() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_162()) { + jj_scanpos = xsp; + if (jj_3R_163()) { + jj_scanpos = xsp; + if (jj_3R_164()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_162() { + if (jj_scan_token(AT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_157()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_155() { + if (jj_3R_156()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_216() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_154() { + if (jj_scan_token(BANG)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_157()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_215() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_216()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_153() { + if (jj_scan_token(TILDE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_148()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_148() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_152()) { + jj_scanpos = xsp; + if (jj_3R_153()) { + jj_scanpos = xsp; + if (jj_3R_154()) { + jj_scanpos = xsp; + if (jj_3R_155()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_152() { + if (jj_scan_token(AT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_148()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_213() { + if (jj_3R_215()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_144() { + if (jj_3R_148()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_151() { + if (jj_scan_token(REMAINDER)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_150() { + if (jj_scan_token(SLASH)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_149() { + if (jj_scan_token(STAR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_207() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_213()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_145() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_149()) { + jj_scanpos = xsp; + if (jj_3R_150()) { + jj_scanpos = xsp; + if (jj_3R_151()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_144()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_139() { + if (jj_3R_144()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_145()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_212() { + if (jj_scan_token(LBRACE1)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(ID)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACE1)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_147() { + if (jj_scan_token(MINUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_211() { + if (jj_scan_token(IDENTIFIER)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_146() { + if (jj_scan_token(PLUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_140() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_146()) { + jj_scanpos = xsp; + if (jj_3R_147()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_139()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_199() { + if (jj_scan_token(DOLLARS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_211()) { + jj_scanpos = xsp; + if (jj_3R_212()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_133() { + if (jj_3R_139()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_140()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_192() { + if (jj_scan_token(DOUBLEQUOTE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_199()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + if (jj_scan_token(DOUBLEQUOTE2)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_113() { + if (jj_scan_token(ASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_143() { + if (jj_scan_token(RUNSIGNEDSHIFT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_142() { + if (jj_scan_token(RSIGNEDSHIFT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_141() { + if (jj_scan_token(LSHIFT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_185() { + if (jj_3R_192()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_184() { + if (jj_scan_token(NULL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_134() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_141()) { + jj_scanpos = xsp; + if (jj_3R_142()) { + jj_scanpos = xsp; + if (jj_3R_143()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_133()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_183() { + if (jj_scan_token(FALSE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_182() { + if (jj_scan_token(TRUE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_123() { + if (jj_3R_133()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_134()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_181() { + if (jj_scan_token(STRING_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_180() { + if (jj_scan_token(FLOATING_POINT_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_117() { + if (jj_3R_116()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_179() { + if (jj_scan_token(INTEGER_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_176() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_179()) { + jj_scanpos = xsp; + if (jj_3R_180()) { + jj_scanpos = xsp; + if (jj_3R_181()) { + jj_scanpos = xsp; + if (jj_3R_182()) { + jj_scanpos = xsp; + if (jj_3R_183()) { + jj_scanpos = xsp; + if (jj_3R_184()) { + jj_scanpos = xsp; + if (jj_3R_185()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_138() { + if (jj_scan_token(GE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_137() { + if (jj_scan_token(LE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_136() { + if (jj_scan_token(GT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_112() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_117()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_135() { + if (jj_scan_token(LT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_124() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_135()) { + jj_scanpos = xsp; + if (jj_3R_136()) { + jj_scanpos = xsp; + if (jj_3R_137()) { + jj_scanpos = xsp; + if (jj_3R_138()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_123()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_120() { + if (jj_3R_123()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_124()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_111() { + if (jj_3R_116()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_72() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_71() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_56() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_71()) { + jj_scanpos = xsp; + if (jj_3R_72()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_48() { + if (jj_scan_token(LBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_56()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_104() { + if (jj_scan_token(LIST)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_111()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + while (true) { + xsp = jj_scanpos; + if (jj_3R_112()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + xsp = jj_scanpos; + if (jj_3R_113()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_206() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_70() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_2() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_41()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_55() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_69()) { + jj_scanpos = xsp; + if (jj_3R_70()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_69() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_205() { + if (jj_3R_41()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_2()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_47() { + if (jj_scan_token(LBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_55()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_129() { + if (jj_scan_token(TRIPLEEQUAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_128() { + if (jj_scan_token(BANGDOUBLEEQUAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_127() { + if (jj_scan_token(NOT_EQUAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_126() { + if (jj_scan_token(DIF)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_105() { + if (jj_scan_token(PRINT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_198() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_205()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + xsp = jj_scanpos; + if (jj_3R_206()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_125() { + if (jj_scan_token(EQUAL_EQUAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_54() { + if (jj_3R_68()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_121() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_125()) { + jj_scanpos = xsp; + if (jj_3R_126()) { + jj_scanpos = xsp; + if (jj_3R_127()) { + jj_scanpos = xsp; + if (jj_3R_128()) { + jj_scanpos = xsp; + if (jj_3R_129()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_120()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_53() { + if (jj_scan_token(IDENTIFIER)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_118() { + if (jj_3R_120()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_121()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_214() { + if (jj_scan_token(ARRAYASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_52() { + if (jj_scan_token(LBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_41() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_214()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_119() { + if (jj_scan_token(BIT_AND)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_118()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_46() { + if (jj_scan_token(CLASSACCESS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_52()) { + jj_scanpos = xsp; + if (jj_3R_53()) { + jj_scanpos = xsp; + if (jj_3R_54()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_40() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_46()) { + jj_scanpos = xsp; + if (jj_3R_47()) { + jj_scanpos = xsp; + if (jj_3R_48()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_114() { + if (jj_3R_118()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_119()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_115() { + if (jj_scan_token(XOR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_114()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + public PHPParserTokenManager token_source; + SimpleCharStream jj_input_stream; + public Token token, jj_nt; + private int jj_ntk; + private Token jj_scanpos, jj_lastpos; + private int jj_la; + public boolean lookingAhead = false; + private boolean jj_semLA; + private int jj_gen; + final private int[] jj_la1 = new int[128]; + static private int[] jj_la1_0; + static private int[] jj_la1_1; + static private int[] jj_la1_2; + static private int[] jj_la1_3; + static private int[] jj_la1_4; + static { + jj_la1_0(); + jj_la1_1(); + jj_la1_2(); + jj_la1_3(); + jj_la1_4(); + } + private static void jj_la1_0() { + jj_la1_0 = new int[] {0x5800001e,0x6,0x6,0x5800001e,0x0,0x58000000,0x0,0x30000000,0x30000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x40000000,0x8,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x58000010,0x58000010,0x58000000,0x58000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x58000010,0x58000010,0x0,0x0,0x40000010,0x40000010,0x80000000,0x0,0x40000010,0x80000000,0x0,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000000,0x40000000,0x0,0x0,0x0,0x40000000,0x40000000,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_1() { + jj_la1_1 = new int[] {0xd7541ffe,0x0,0x0,0xd7541ffe,0x0,0xd7541ffe,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc2000002,0x8000,0xc300001a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc300001a,0x18,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc3000002,0xc3000002,0xc3000002,0x0,0xc3000002,0x2,0x0,0x0,0x0,0x1000002,0x4000,0x0,0x0,0x0,0x1000000,0x0,0x0,0xc300001a,0xc300001a,0xc300001a,0xc300001a,0x2000,0xc2000000,0x0,0x0,0xc300001a,0x0,0x0,0x14541fe0,0xd7541ffe,0x0,0x0,0x3c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffa,0x0,0x0,0x0,0x0,0x1000002,0x0,0x90000,0x90000,0xd7541ffe,0xd7541ffe,0x90000,0xc300001a,0xd7541ffe,0xd7541ffe,0x0,0x1,0xd7541ffe,0x0,0x1,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xc300001a,0xc300001a,0xc300001a,0xd7541ffe,0xd7541ffe,0xc300001a,0x0,0xc300001a,0xc300001a,}; + } + private static void jj_la1_2() { + jj_la1_2 = new int[] {0x27870021,0x0,0x0,0x27870021,0x0,0x27870021,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x0,0x27870000,0x0,0x20000000,0x0,0x20000000,0x20000000,0xff80,0x0,0x27870000,0x20000,0x0,0x0,0x80000,0x200000,0x200000,0x400000,0x400000,0x0,0x40000000,0x80000000,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x6000000,0x18000000,0x18000000,0x27870000,0x27830000,0x27800000,0x1800000,0x20000000,0xff80,0x1800000,0x1800000,0x20000000,0x20000000,0x0,0x0,0x0,0x0,0x0,0xff80,0x0,0x2787ff80,0x2787ff80,0x2787ff80,0x2787ff80,0x0,0x0,0x0,0x0,0x27870000,0x0,0x10000,0x10021,0x27870021,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x27870021,0x27870021,0x27870021,0x27870021,0x0,0x0,0x1800000,0x1800000,0x21800000,0x100000,0x0,0x0,0x27870021,0x27870021,0x0,0x27870000,0x27870021,0x27870021,0x0,0x0,0x27870021,0x0,0x0,0x27970021,0x27870021,0x27870021,0x27870021,0x27870021,0x27870021,0x27970021,0x27870000,0x27870000,0x27870000,0x27870021,0x27970021,0x27870000,0x0,0x27870000,0x27870000,}; + } + private static void jj_la1_3() { + jj_la1_3 = new int[] {0x18011440,0x0,0x0,0x18011440,0x0,0x18011440,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x18000000,0x440,0x440,0x10011440,0x0,0x18011440,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0x18011440,0x0,0x0,0x0,0x0,0x10,0x10,0x20,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe,0xe,0x0,0x0,0x1,0x1,0x18011440,0x18011440,0x18011440,0x0,0x18011440,0x0,0x0,0x0,0x0,0x18000000,0x0,0x0,0x0,0x0,0x18000000,0x18000000,0x18000000,0x18011440,0x18011440,0x18011440,0x18011440,0x0,0x11440,0x20000,0x10080000,0x18011440,0x0,0x0,0x10000000,0x18011440,0x0,0x0,0x0,0x8000000,0x0,0x8000000,0x0,0x0,0x0,0x0,0x18011440,0x18011440,0x18011440,0x18011440,0x0,0x0,0x0,0x0,0x18000000,0x0,0x0,0x0,0x18011440,0x18011440,0x0,0x18011440,0x18011440,0x18011440,0x0,0x0,0x18011440,0x0,0x0,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x0,0x18011440,0x18011440,}; + } + private static void jj_la1_4() { + jj_la1_4 = new int[] {0x8a,0x0,0x0,0x8a,0x80,0x8a,0x0,0x0,0x0,0x100,0x8,0x80000,0x80000,0x8,0x0,0x0,0x0,0x0,0x2,0x100,0x0,0x100,0x0,0x0,0x0,0xfff80000,0x2,0x0,0x0,0xfff80000,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x79000,0x79000,0x6c00,0x6c00,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x2,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x2,0x2,0x0,0x0,0x8,0x2,0x2,0x2,0x2,0x28,0x0,0x0,0x0,0x2,0x100,0x0,0x88,0x8a,0x0,0x0,0x0,0x0,0x100,0x0,0x80000,0x100,0x100,0x100,0x8a,0x8a,0x8a,0x8a,0x100,0x80000,0x0,0x0,0x0,0x8,0x0,0x0,0x8a,0x8a,0x0,0x2,0x8a,0x8a,0x0,0x0,0x8a,0x0,0x0,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x2,0x2,0x2,0x8a,0x8a,0x2,0x100,0x2,0x2,}; + } + final private JJCalls[] jj_2_rtns = new JJCalls[5]; + private boolean jj_rescan = false; + private int jj_gc = 0; + + public PHPParser(java.io.InputStream stream) { + jj_input_stream = new SimpleCharStream(stream, 1, 1); + token_source = new PHPParserTokenManager(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 128; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public void ReInit(java.io.InputStream stream) { + jj_input_stream.ReInit(stream, 1, 1); + token_source.ReInit(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 128; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public PHPParser(java.io.Reader stream) { + jj_input_stream = new SimpleCharStream(stream, 1, 1); + token_source = new PHPParserTokenManager(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 128; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public void ReInit(java.io.Reader stream) { + jj_input_stream.ReInit(stream, 1, 1); + token_source.ReInit(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 128; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public PHPParser(PHPParserTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 128; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public void ReInit(PHPParserTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 128; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + final private Token jj_consume_token(int kind) throws ParseException { + Token oldToken; + if ((oldToken = token).next != null) token = token.next; + else token = token.next = token_source.getNextToken(); + jj_ntk = -1; + if (token.kind == kind) { + jj_gen++; + if (++jj_gc > 100) { + jj_gc = 0; + for (int i = 0; i < jj_2_rtns.length; i++) { + JJCalls c = jj_2_rtns[i]; + while (c != null) { + if (c.gen < jj_gen) c.first = null; + c = c.next; + } + } + } + return token; + } + token = oldToken; + jj_kind = kind; + throw generateParseException(); + } + + final private boolean jj_scan_token(int kind) { + if (jj_scanpos == jj_lastpos) { + jj_la--; + if (jj_scanpos.next == null) { + jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); + } else { + jj_lastpos = jj_scanpos = jj_scanpos.next; + } + } else { + jj_scanpos = jj_scanpos.next; + } + if (jj_rescan) { + int i = 0; Token tok = token; + while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } + if (tok != null) jj_add_error_token(kind, i); + } + return (jj_scanpos.kind != kind); + } + + final public Token getNextToken() { + if (token.next != null) token = token.next; + else token = token.next = token_source.getNextToken(); + jj_ntk = -1; + jj_gen++; + return token; + } + + final public Token getToken(int index) { + Token t = lookingAhead ? jj_scanpos : token; + for (int i = 0; i < index; i++) { + if (t.next != null) t = t.next; + else t = t.next = token_source.getNextToken(); + } + return t; + } + + final private int jj_ntk() { + if ((jj_nt=token.next) == null) + return (jj_ntk = (token.next=token_source.getNextToken()).kind); + else + return (jj_ntk = jj_nt.kind); + } + + private java.util.Vector jj_expentries = new java.util.Vector(); + private int[] jj_expentry; + private int jj_kind = -1; + private int[] jj_lasttokens = new int[100]; + private int jj_endpos; + + private void jj_add_error_token(int kind, int pos) { + if (pos >= 100) return; + if (pos == jj_endpos + 1) { + jj_lasttokens[jj_endpos++] = kind; + } else if (jj_endpos != 0) { + jj_expentry = new int[jj_endpos]; + for (int i = 0; i < jj_endpos; i++) { + jj_expentry[i] = jj_lasttokens[i]; + } + boolean exists = false; + for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) { + int[] oldentry = (int[])(enum.nextElement()); + if (oldentry.length == jj_expentry.length) { + exists = true; + for (int i = 0; i < jj_expentry.length; i++) { + if (oldentry[i] != jj_expentry[i]) { + exists = false; + break; + } + } + if (exists) break; + } + } + if (!exists) jj_expentries.addElement(jj_expentry); + if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; + } + } + + public ParseException generateParseException() { + jj_expentries.removeAllElements(); + boolean[] la1tokens = new boolean[160]; + for (int i = 0; i < 160; i++) { + la1tokens[i] = false; + } + if (jj_kind >= 0) { + la1tokens[jj_kind] = true; + jj_kind = -1; + } + for (int i = 0; i < 128; i++) { + if (jj_la1[i] == jj_gen) { + for (int j = 0; j < 32; j++) { + if ((jj_la1_0[i] & (1< jj_gen) { + jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; + switch (i) { + case 0: jj_3_1(); break; + case 1: jj_3_2(); break; + case 2: jj_3_3(); break; + case 3: jj_3_4(); break; + case 4: jj_3_5(); break; + } + } + p = p.next; + } while (p != null); + } + jj_rescan = false; + } + + final private void jj_save(int index, int xla) { + JJCalls p = jj_2_rtns[index]; + while (p.gen > jj_gen) { + if (p.next == null) { p = p.next = new JJCalls(); break; } + p = p.next; + } + p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla; + } + + static final class JJCalls { + int gen; + Token first; + int arg; + JJCalls next; + } }