diff --git a/.classpath b/.classpath deleted file mode 100644 index 5877484d..00000000 --- a/.classpath +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/.gitignore b/.gitignore index 98b5964b..edec9626 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,13 @@ bin *.jar *.war *.ear + +# IDEs +.classpath +*.iml +.idea/ +/target/ +.DS_Store +.project +.settings/ +/target/ diff --git a/.idea/libraries/lib.xml b/.idea/libraries/lib.xml deleted file mode 100644 index 6a9ec091..00000000 --- a/.idea/libraries/lib.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.project b/.project deleted file mode 100644 index 792f8088..00000000 --- a/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - JavaCompilerCore - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index a698e596..00000000 --- a/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/classes/classes.iml b/classes/classes.iml deleted file mode 100644 index 8021953e..00000000 --- a/classes/classes.iml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/doc.iml b/doc/doc.iml deleted file mode 100644 index 8021953e..00000000 --- a/doc/doc.iml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/lib/annotations-2.0.1.jar b/lib/annotations-2.0.1.jar deleted file mode 100644 index 8a0204fc..00000000 Binary files a/lib/annotations-2.0.1.jar and /dev/null differ diff --git a/lib/antlr-complete.jar b/lib/antlr-complete.jar deleted file mode 100755 index 8203e15e..00000000 Binary files a/lib/antlr-complete.jar and /dev/null differ diff --git a/lib/bcel-6.1-SNAPSHOT-sources.jar b/lib/bcel-6.1-SNAPSHOT-sources.jar deleted file mode 100644 index 6b1fdda0..00000000 Binary files a/lib/bcel-6.1-SNAPSHOT-sources.jar and /dev/null differ diff --git a/lib/bcel-6.1-SNAPSHOT.jar b/lib/bcel-6.1-SNAPSHOT.jar deleted file mode 100644 index 3b5306fb..00000000 Binary files a/lib/bcel-6.1-SNAPSHOT.jar and /dev/null differ diff --git a/lib/cloning.jar b/lib/cloning.jar deleted file mode 100644 index d5618426..00000000 Binary files a/lib/cloning.jar and /dev/null differ diff --git a/lib/commons-bcel6-6.0-SNAPSHOT.jar b/lib/commons-bcel6-6.0-SNAPSHOT.jar deleted file mode 100644 index 1512826c..00000000 Binary files a/lib/commons-bcel6-6.0-SNAPSHOT.jar and /dev/null differ diff --git a/lib/guava-10.0.1.jar b/lib/guava-10.0.1.jar deleted file mode 100644 index d107c0f3..00000000 Binary files a/lib/guava-10.0.1.jar and /dev/null differ diff --git a/lib/guava-15.0.jar b/lib/guava-15.0.jar deleted file mode 100644 index eb9ef8ad..00000000 Binary files a/lib/guava-15.0.jar and /dev/null differ diff --git a/lib/javassist-3.19.0-GA.jar b/lib/javassist-3.19.0-GA.jar deleted file mode 100644 index 7ac42641..00000000 Binary files a/lib/javassist-3.19.0-GA.jar and /dev/null differ diff --git a/lib/junit-4.0.jar b/lib/junit-4.0.jar deleted file mode 100755 index b2040692..00000000 Binary files a/lib/junit-4.0.jar and /dev/null differ diff --git a/lib/log4j-1.2.12.jar b/lib/log4j-1.2.12.jar deleted file mode 100755 index 9b5a7200..00000000 Binary files a/lib/log4j-1.2.12.jar and /dev/null differ diff --git a/lib/reflections-0.9.10-javadoc.jar b/lib/reflections-0.9.10-javadoc.jar deleted file mode 100644 index d0186c09..00000000 Binary files a/lib/reflections-0.9.10-javadoc.jar and /dev/null differ diff --git a/lib/reflections-0.9.10-sources.jar b/lib/reflections-0.9.10-sources.jar deleted file mode 100644 index 8412a624..00000000 Binary files a/lib/reflections-0.9.10-sources.jar and /dev/null differ diff --git a/lib/reflections-0.9.10.jar b/lib/reflections-0.9.10.jar deleted file mode 100644 index c2556418..00000000 Binary files a/lib/reflections-0.9.10.jar and /dev/null differ diff --git a/pom.xml b/pom.xml index dc087c61..af770407 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,7 @@ target target/classes - ${project.artifactId}-${project.version} + ${artifactId}-${version} target/test-classes src/ test/ diff --git a/src/JavaCompilerCore1.iml b/src/JavaCompilerCore1.iml deleted file mode 100644 index b107a2dd..00000000 --- a/src/JavaCompilerCore1.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/de/dhbwstuttgart/.DS_Store b/src/de/dhbwstuttgart/.DS_Store new file mode 100644 index 00000000..f20299e8 Binary files /dev/null and b/src/de/dhbwstuttgart/.DS_Store differ diff --git a/src/de/dhbwstuttgart/bytecode/BytecodeGen.java b/src/de/dhbwstuttgart/bytecode/BytecodeGen.java new file mode 100644 index 00000000..6f7acd64 --- /dev/null +++ b/src/de/dhbwstuttgart/bytecode/BytecodeGen.java @@ -0,0 +1,366 @@ +package de.dhbwstuttgart.bytecode; + +import java.util.HashMap; +import java.util.Iterator; + +import de.dhbwstuttgart.syntaxtree.statement.*; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; + +import de.dhbwstuttgart.parser.SyntaxTreeGenerator.AssignToLocal; +import de.dhbwstuttgart.syntaxtree.*; +import de.dhbwstuttgart.syntaxtree.statement.literal.Literal; +import de.dhbwstuttgart.syntaxtree.statement.literal.Null; +import de.dhbwstuttgart.syntaxtree.type.ExtendsWildcardType; +import de.dhbwstuttgart.syntaxtree.type.GenericRefType; +import de.dhbwstuttgart.syntaxtree.type.RefType; +import de.dhbwstuttgart.syntaxtree.type.SuperWildcardType; +import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; +import de.dhbwstuttgart.typeinference.result.ResultSet; + +public class BytecodeGen implements ASTVisitor { + + ClassWriter cw =new ClassWriter(ClassWriter.COMPUTE_FRAMES|ClassWriter.COMPUTE_MAXS); +// String methDesc; + + String type; + + String className; + private boolean isInterface; + private ResultSet resultSet; + private int indexOfFirstParam = 0; + + // stores parameter, local vars and the next index on the local variable table, which use for aload_i, astore_i,... + HashMap paramsAndLocals = new HashMap<>(); + byte[] bytecode; + HashMap classFiles; + + public BytecodeGen(HashMap classFiles, ResultSet resultSet) { + this.classFiles = classFiles; + this.resultSet = resultSet; + } + + @Override + public void visit(SourceFile sourceFile) { + for(ClassOrInterface cl : sourceFile.getClasses()) { + isInterface = (cl.getModifiers()&512)==512; + System.out.println("IS Interface = "+"modifiers= "+cl.getModifiers()+" ->"+(cl.getModifiers()&512) + isInterface); + BytecodeGen classGen = new BytecodeGen(classFiles, resultSet); + cl.accept(classGen); + classGen.writeClass(cl.getClassName().toString()); + } + } + + private void writeClass(String name) { + bytecode = cw.toByteArray(); + classFiles.put(name, bytecode); + + } + + public HashMap getClassFiles() { + return classFiles; + } + @Override + public void visit(ClassOrInterface classOrInterface) { + className = classOrInterface.getClassName().toString(); + // access flages?? + cw.visit(Opcodes.V1_8, classOrInterface.getModifiers()+Opcodes.ACC_SUPER, classOrInterface.getClassName().toString() + , null, classOrInterface.getSuperClass().toString().replace(".", "/"), null); + + // for each field in the class + for(Field f : classOrInterface.getFieldDecl()) { + System.out.println("get Fields"); + System.out.println(f.getName()); + f.accept(this); + } + + for(Constructor c : classOrInterface.getConstructors()) { + c.accept(this); + } + + for(Method m : classOrInterface.getMethods()) { + m.accept(this); + } + cw.visitSource(classOrInterface.getClassName().toString()+".jav", null); + } + + @Override + public void visit(Constructor field) { + Descriptor desc = new Descriptor(field, resultSet); + MethodVisitor mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "", desc.getDesc(), null, null); + mv.visitCode(); + System.out.println("-----Constructor-----"); + BytecodeGenMethod gen = new BytecodeGenMethod(className,resultSet,field, mv,paramsAndLocals,desc.getDesc(),cw,isInterface); + + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + @Override + public void visit(Method method) { + // TODO: check if the method is static => if static then the first param will be stored in pos 0 + // else it will be stored in pos 1 and this will be stored in pos 0 + method.getParameterList().accept(this); + Descriptor methDesc = new Descriptor(method,resultSet); + System.out.println("-----Method-----"); + MethodVisitor mv = cw.visitMethod(Opcodes.ACC_PUBLIC, method.getName(), methDesc.getDesc(), null, null); + mv.visitCode(); + + BytecodeGenMethod gen = new BytecodeGenMethod(className,resultSet,method, mv,paramsAndLocals,methDesc.getDesc(),cw,isInterface); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + @Override + public void visit(ParameterList formalParameters) { + paramsAndLocals = new HashMap<>(); + Iterator itr = formalParameters.iterator(); + int i = 1; + while(itr.hasNext()) { + FormalParameter fp = itr.next(); + paramsAndLocals.put(fp.getName(), i); + fp.accept(this); + i++; + } + } + + @Override + public void visit(FormalParameter formalParameter) { + formalParameter.getType().accept(this); + } + + @Override + public void visit(RefType refType) { + type = "L"+refType.toString()+";"; + } + + @Override + public void visit(SuperWildcardType superWildcardType) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(TypePlaceholder typePlaceholder) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(ExtendsWildcardType extendsWildcardType) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(GenericRefType genericRefType) { + // TODO Auto-generated method stub + + } + + // ?? + @Override + public void visit(FieldVar fieldVar) { + System.out.println("in fieldvar"); +// cw.newField(fieldVar.receiver.toString(), fieldVar.fieldVarName.toString(), fieldVar.getType().toString()); + FieldVisitor fv = cw.visitField(Opcodes.ACC_PRIVATE, fieldVar.fieldVarName, "L"+fieldVar.getType()+";", null, null); + fv.visitEnd(); + } + + // access flages?? modifiers + @Override + public void visit(Field field) { + System.out.println("in field"); + FieldVisitor fv = cw.visitField(Opcodes.ACC_PRIVATE, field.getName(), "L"+field.getType().toString().replace(".", "/")+";", null, null); + fv.visitEnd(); + } + + @Override + public void visit(LambdaExpression lambdaExpression) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(Assign assign) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(Binary binary) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(Block block) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(CastExpr castExpr) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(EmptyStmt emptyStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(ForStmt forStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(IfStmt ifStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(InstanceOf instanceOf) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(LocalVar localVar) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(LocalVarDecl localVarDecl) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(MethodCall methodCall) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(NewClass methodCall) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(NewArray newArray) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(Return aReturn) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(ReturnVoid aReturn) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(StaticClassName staticClassName) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(Super aSuper) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(This aThis) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(UnaryPlus unaryPlus) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(WhileStmt whileStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(DoStmt whileStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(Null aNull) { + // TODO Auto-generated method stub + + } + // ??? + @Override + public void visit(Literal literal) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(ArgumentList argumentList) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(GenericTypeVar genericTypeVar) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(GenericDeclarationList genericTypeVars) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(AssignToField assignLeftSide) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(AssignToLocal assignLeftSide) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(SuperCall superCall) { + + } + + @Override + public void visit(ExpressionReceiver expressionReceiver) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java b/src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java new file mode 100644 index 00000000..c2acaba0 --- /dev/null +++ b/src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java @@ -0,0 +1,417 @@ +package de.dhbwstuttgart.bytecode; + +import java.lang.invoke.CallSite; +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; + +import de.dhbwstuttgart.syntaxtree.statement.*; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.Handle; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; + +import de.dhbwstuttgart.parser.SyntaxTreeGenerator.AssignToLocal; +import de.dhbwstuttgart.syntaxtree.FormalParameter; +import de.dhbwstuttgart.syntaxtree.Method; +import de.dhbwstuttgart.syntaxtree.StatementVisitor; +import de.dhbwstuttgart.syntaxtree.statement.literal.Literal; +import de.dhbwstuttgart.syntaxtree.statement.literal.Null; +import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; +import de.dhbwstuttgart.typeinference.result.ResultSet; + +public class BytecodeGenMethod implements StatementVisitor{ + + private Method m; + private MethodVisitor mv; + private HashMap paramsAndLocals = new HashMap<>(); + private String desc; + private String className; + private int lamCounter; + private ClassWriter cw; + private ResultSet resultSet; + private boolean isInterface; + + //for tests ** + private String fieldName; + private String fieldDesc; + private Expression rightSideTemp; + private String where; + private boolean isRightSideALambda = false; + private KindOfLambda kindOfLambda; + + private ArrayList varsFunInterface; + + public BytecodeGenMethod(String className,ResultSet resultSet, Method m, MethodVisitor mv, HashMap paramsAndLocals, + String desc, ClassWriter cw, boolean isInterface) { + + this.where = "<<<<<< NORMAL METHOD >>>>>>"; + + this.className = className; + this.resultSet = resultSet; + this.m = m; + this.mv = mv; + this.paramsAndLocals = paramsAndLocals; + this.desc = desc; + this.cw = cw; + this.isInterface = isInterface; + this.lamCounter = -1; + + this.varsFunInterface = new ArrayList<>(); + System.out.println("PARAMS = "+this.paramsAndLocals.size()); + this.m.block.accept(this); + System.out.println("PARAMS = "+this.paramsAndLocals.size()); + for(int i = 0; i(); + + Iterator itr = lambdaExpression.params.iterator(); + int i = indexOfFirstParamLam; + while(itr.hasNext()) { + FormalParameter fp = itr.next(); + this.paramsAndLocals.put(fp.getName(), i); + i++; + } + lambdaExpression.methodBody.accept(this); + } + + private String getResolvedType(RefTypeOrTPHOrWildcardOrGeneric type) { + return resultSet.resolveType(type).resolvedType.toString().replace(".", "/"); + } + + + @Override + public void visit(Block block) { + for(Statement stmt : block.getStatements()) { + System.out.println(where); + System.out.println("Stmt : " + stmt.toString()); + stmt.accept(this); + System.out.println("--------------------------\n"); + } + } + + @Override + public void visit(SuperCall superCall) { + superCall.receiver.accept(this); + superCall.arglist.accept(this); +// mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", superCall.name, desc,false); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, Type.getInternalName(Object.class), superCall.name, desc,isInterface); + } + + // ?? + @Override + public void visit(LocalVar localVar) { + System.out.println("in Local Var: " + localVar.name); + mv.visitVarInsn(Opcodes.ALOAD, paramsAndLocals.get(localVar.name)); + } + // ?? + @Override + public void visit(LocalVarDecl localVarDecl) { +// Integer i; +// paramsAndLocals.put(localVarDecl.getName(), paramsAndLocals.size()+1); + System.out.println("In localVarDecl :: "+localVarDecl.getName()); + } + + @Override + public void visit(Assign assign) { + System.out.println("Assign : \nright = "+assign.rightSide + "\nLeft = " + assign.lefSide); + + // if the right side is a lambda => the left side must be a functional interface + if(assign.rightSide.getClass().equals(LambdaExpression.class)) { + isRightSideALambda = true; + }else { + isRightSideALambda = false; + } + + System.out.println("\t isRight Side lambda: " + isRightSideALambda); + if(assign.lefSide.getClass().equals(AssignToField.class)) { + // load_0, ldc or .. then putfield + this.rightSideTemp = assign.rightSide; + assign.lefSide.accept(this); + }else { + assign.rightSide.accept(this); + assign.lefSide.accept(this); + } + + + + } + + @Override + public void visit(Binary binary) { + System.out.println("\t++ In Binary: "); + } + + @Override + public void visit(LambdaExpression lambdaExpression) { + System.out.println("\n++ In Lambda: "); + this.lamCounter++; + Descriptor lamDesc = new Descriptor(lambdaExpression, resultSet); + //Call site, which, when invoked, returns an instance of the functional interface to which + //the lambda is being converted + MethodType mt = MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, + MethodType.class, MethodType.class, MethodHandle.class, MethodType.class); + + + Handle bootstrap = new Handle(Opcodes.H_INVOKESTATIC, "java/lang/invoke/LambdaMetafactory", + "metafactory", mt.toMethodDescriptorString(), false); + String methodName = "lambda$new$" + this.lamCounter; + // Type erasure + Type arg1 = Type.getMethodType(lamDesc.getDesc()); + // real Type + Type arg3 = Type.getMethodType(lamDesc.getDesc()); + + int staticOrSpecial=0; + int staticOrInstance=0; + int indexOfFirstParamLam = 0; + this.kindOfLambda = new KindOfLambda(lambdaExpression); + + if(kindOfLambda.isInstanceCapturingLambda()) { + mv.visitVarInsn(Opcodes.ALOAD, 0); + staticOrSpecial = Opcodes.H_INVOKESPECIAL; + indexOfFirstParamLam = 1; + }else { + staticOrSpecial = Opcodes.H_INVOKESTATIC; + staticOrInstance = Opcodes.ACC_STATIC; + } + + // first check if capturing lambda then invokestatic or invokespecial + Handle arg2 = new Handle(staticOrSpecial, this.className, methodName, + arg3.toString(),false); + // Descriptor of functional interface methode + Descriptor fiMethodDesc = new Descriptor(kindOfLambda.getArgumentList(), lambdaExpression.getType(),resultSet); + + // Desc: (this/nothing)TargetType + mv.visitInvokeDynamicInsn("apply", fiMethodDesc.getDesc(), bootstrap, + arg1, arg2,arg3); + + MethodVisitor mvLambdaBody = cw.visitMethod(Opcodes.ACC_PRIVATE+ staticOrInstance + Opcodes.ACC_SYNTHETIC, + methodName, arg3.toString(), null, null); + + new BytecodeGenMethod(lambdaExpression,this.resultSet,mvLambdaBody,arg3.toString(),indexOfFirstParamLam,isInterface); + + mvLambdaBody.visitMaxs(0, 0); + mvLambdaBody.visitEnd(); + cw.visitInnerClass("java/lang/invoke/MethodHandles$Lookup", "java/lang/invoke/MethodHandles", "Lookup", + Opcodes.ACC_PUBLIC + Opcodes.ACC_STATIC + Opcodes.ACC_FINAL); + } + + @Override + public void visit(CastExpr castExpr) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(EmptyStmt emptyStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(FieldVar fieldVar) { + System.out.println("in fieldVar " + fieldVar.fieldVarName + " ** receiver: "+fieldVar.receiver); + + fieldName = fieldVar.fieldVarName; + fieldDesc = "L"+getResolvedType(fieldVar.getType())+";"; + + fieldVar.receiver.accept(this); + // test (if) + if(!fieldVar.receiver.getClass().equals(StaticClassName.class)) { + mv.visitFieldInsn(Opcodes.GETFIELD,getResolvedType(fieldVar.receiver.getType()), + fieldName ,fieldDesc); + } + +// mv.visitFieldInsn(Opcodes.GETSTATIC, fieldVar.receiver.getType().toString().replace(".", "/"), +// fieldVar.fieldVarName, fieldVar.getType().toString()); + } + + @Override + public void visit(ForStmt forStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(IfStmt ifStmt) { + System.out.println("++ IF-Statment: "); + } + + @Override + public void visit(InstanceOf instanceOf) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(MethodCall methodCall) { + System.out.println(" In Methodcall: (" +methodCall.name+")" ); + System.out.print("\t\tMethod-Receiver: "); + if(methodCall.receiver instanceof ExpressionReceiver){ + System.out.print(((ExpressionReceiver) methodCall.receiver).expr + "\n"); + }else{ + System.out.print(((StaticClassName) methodCall.receiver).getType().toString() + "\n"); + } + + methodCall.receiver.accept(this); + methodCall.arglist.accept(this); + + Descriptor mDesc = new Descriptor(methodCall.arglist, methodCall.getType(),resultSet); + + System.out.println("is Vars empty: "+varsFunInterface.isEmpty()); + + // is methodCall.receiver functional Interface)? + if(varsFunInterface.contains(methodCall.receiver.getType())) { + mv.visitMethodInsn(Opcodes.INVOKEINTERFACE, getResolvedType(methodCall.receiver.getType()), + methodCall.name, mDesc.getDesc(), false); + }else { + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, getResolvedType(methodCall.receiver.getType()), + methodCall.name, mDesc.getDesc(), isInterface); + } + // test +// if(!methodCall.getType().toString().equals("V")) { +// mv.visitInsn(Opcodes.POP); +// } + } + + @Override + public void visit(NewClass methodCall) { + System.out.println("In NewClass: "); + System.out.println("\t\tname: " + methodCall.name + " *** " + "Receiver: " + methodCall.receiver); + + mv.visitTypeInsn(Opcodes.NEW, methodCall.name.replace(".", "/")); + mv.visitInsn(Opcodes.DUP); + // creates Descriptor + methodCall.arglist.accept(this); + String d = "("; + for(Expression e : methodCall.arglist.getArguments()) { + d = d + "L"+e.getType().toString().replace(".", "/") + ";"; + } + d += ")V"; + + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, methodCall.name.replace(".", "/"), "", d, isInterface); + } + + @Override + public void visit(NewArray newArray) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(ExpressionReceiver receiver) { + System.out.println(" in Receiver"); + System.out.println(" expr : " + receiver.expr); + receiver.expr.accept(this); + } + + @Override + public void visit(Return aReturn) { + aReturn.retexpr.accept(this); + mv.visitInsn(Opcodes.ARETURN); + } + + @Override + public void visit(ReturnVoid aReturn) { + mv.visitInsn(Opcodes.RETURN); + } + + @Override + public void visit(StaticClassName staticClassName) { + System.out.println("In StaticClassName: "); +// mv.visitMethodInsn(Opcodes.INVOKESTATIC, staticClassName.getType().toString().replace(".", "/"), +// staticClassName.toString(), staticClassName.getType().toString(), false); + mv.visitFieldInsn(Opcodes.GETSTATIC, staticClassName.getType().toString().replace(".", "/"), + fieldName, fieldDesc); + } + + @Override + public void visit(Super aSuper) { + System.out.println(">> In Super: "); + } + + @Override + public void visit(This aThis) { + System.out.println("-> IN This"); + mv.visitVarInsn(Opcodes.ALOAD, 0); + } + + @Override + public void visit(UnaryPlus unaryPlus) { + System.out.println("++ In UnaryPlus: "); + } + + @Override + public void visit(WhileStmt whileStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(DoStmt whileStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(Null aNull) { + mv.visitInsn(Opcodes.ACONST_NULL); + } + + @Override + public void visit(Literal literal) { + // value? + mv.visitLdcInsn(literal.getType().toString()); + } + + @Override + public void visit(ArgumentList argumentList) { + System.out.println("in ArgumentList: "); + for(Expression al : argumentList.getArguments()) { + al.accept(this); + } + System.out.println("out from Argumentlist"); + } + + @Override + public void visit(AssignToField assignLeftSide) { + if(isRightSideALambda) + varsFunInterface.add(assignLeftSide.field.getType()); + // Loads the an object reference from the local variable + // array slot onto the top of the operand stack. + assignLeftSide.field.receiver.accept(this); + this.rightSideTemp.accept(this); + mv.visitFieldInsn(Opcodes.PUTFIELD, assignLeftSide.field.receiver.getType().toString(), + assignLeftSide.field.fieldVarName, assignLeftSide.field.getType().toString()); + } + + @Override + public void visit(AssignToLocal assignLeftSide) { + System.out.println("In Assign To Local: "); + if(isRightSideALambda) + varsFunInterface.add(assignLeftSide.localVar.getType()); + paramsAndLocals.put(assignLeftSide.localVar.name, paramsAndLocals.size()+1); + mv.visitVarInsn(Opcodes.ASTORE, paramsAndLocals.size()); + // Debug::: + + } + +} diff --git a/src/de/dhbwstuttgart/bytecode/ClassFile.java b/src/de/dhbwstuttgart/bytecode/ClassFile.java new file mode 100644 index 00000000..fcbad90b --- /dev/null +++ b/src/de/dhbwstuttgart/bytecode/ClassFile.java @@ -0,0 +1,14 @@ +package de.dhbwstuttgart.bytecode; + +public class ClassFile { + + String name; + byte[] bytecode; + + public ClassFile(String name, byte[] bytecode) { + this.name = name; + this.bytecode = bytecode; + } + + +} diff --git a/src/de/dhbwstuttgart/bytecode/Descriptor.java b/src/de/dhbwstuttgart/bytecode/Descriptor.java new file mode 100644 index 00000000..3b024d71 --- /dev/null +++ b/src/de/dhbwstuttgart/bytecode/Descriptor.java @@ -0,0 +1,112 @@ +package de.dhbwstuttgart.bytecode; + +import java.util.List; +import java.util.Iterator; + +import de.dhbwstuttgart.exceptions.NotImplementedException; +import de.dhbwstuttgart.syntaxtree.Constructor; +import de.dhbwstuttgart.syntaxtree.FormalParameter; +import de.dhbwstuttgart.syntaxtree.Method; +import de.dhbwstuttgart.syntaxtree.statement.ArgumentList; +import de.dhbwstuttgart.syntaxtree.statement.Expression; +import de.dhbwstuttgart.syntaxtree.statement.LambdaExpression; +import de.dhbwstuttgart.syntaxtree.type.*; +import de.dhbwstuttgart.typeinference.result.ResultSet; + +public class Descriptor { + String desc; + + public Descriptor(Method method, ResultSet resultSet) { + desc = "("; + Iterator itr = method.getParameterList().iterator(); + while(itr.hasNext()) { + FormalParameter fp = itr.next(); + desc = desc + "L"+resultSet.resolveType(fp.getType()).resolvedType.acceptTV(new TypeToDescriptor())+ ";"; + } + desc = addReturnType(desc,method.getReturnType(), resultSet); + + + } + + private class TypeToDescriptor implements TypeVisitor{ + + @Override + public String visit(RefType refType) { + return refType.getName().toString().replace(".", "/"); + } + + @Override + public String visit(SuperWildcardType superWildcardType) { + throw new NotImplementedException(); + } + + @Override + public String visit(TypePlaceholder typePlaceholder) { + return typePlaceholder.toString(); + } + + @Override + public String visit(ExtendsWildcardType extendsWildcardType) { + throw new NotImplementedException(); + } + + @Override + public String visit(GenericRefType genericRefType) { + return genericRefType.getParsedName(); + } + } + + private String addReturnType(String desc2, RefTypeOrTPHOrWildcardOrGeneric returnType, ResultSet resultSet) { + System.out.println("DescType = "+returnType.toString()); + if(resultSet.resolveType(returnType).resolvedType.toString().equals("void")){ + desc = desc + ")V"; + }else { + desc = desc + ")" + "L"+resultSet.resolveType(returnType).resolvedType.toString().replace(".", "/")+";"; + } + return desc; + } + + public Descriptor(Constructor constructor, ResultSet resultSet) { + desc = "("; + Iterator itr = constructor.getParameterList().iterator(); + while(itr.hasNext()) { + FormalParameter fp = itr.next(); + desc = desc + "L"+resultSet.resolveType(fp.getType()).resolvedType.toString().replace(".", "/") + ";"; + } + desc = desc + ")V"; + } + + public Descriptor(LambdaExpression lambdaExpr, ResultSet resultSet) { + desc = "("; + Iterator itr = lambdaExpr.params.iterator(); + while(itr.hasNext()) { + FormalParameter fp = itr.next(); + desc = desc + "L"+resultSet.resolveType(fp.getType()).resolvedType.toString().replace(".", "/") + ";"; + } + desc = addReturnType(desc, lambdaExpr.getReturnType(), resultSet); + } + + public Descriptor(ArgumentList argList, RefTypeOrTPHOrWildcardOrGeneric returnType, ResultSet resultSet) { + desc = "("; + for(Expression e : argList.getArguments()) { + desc = desc + "L"+resultSet.resolveType(e.getType()).resolvedType.toString().replace(".", "/") + ";"; + } + desc = addReturnType(desc, returnType, resultSet); + + } + + public Descriptor(List argumentList,RefTypeOrTPHOrWildcardOrGeneric returnType ,ResultSet resultSet) { + desc = "("; + Iterator itr = argumentList.iterator(); + while(itr.hasNext()) { + RefTypeOrTPHOrWildcardOrGeneric rt = itr.next(); + desc = desc + "L"+resultSet.resolveType(rt).resolvedType.toString().replace(".", "/")+";"; + } + desc = desc + ")"+"L"+resultSet.resolveType(returnType).resolvedType.toString().replace(".", "/")+";"; + } + + public String getDesc() { + return this.desc; + } + +} diff --git a/src/de/dhbwstuttgart/bytecode/KindOfLambda.java b/src/de/dhbwstuttgart/bytecode/KindOfLambda.java new file mode 100644 index 00000000..36a28ce6 --- /dev/null +++ b/src/de/dhbwstuttgart/bytecode/KindOfLambda.java @@ -0,0 +1,205 @@ +package de.dhbwstuttgart.bytecode; + +import de.dhbwstuttgart.syntaxtree.statement.*; + +import java.util.ArrayList; +import java.util.List; + +import de.dhbwstuttgart.parser.SyntaxTreeGenerator.AssignToLocal; +import de.dhbwstuttgart.syntaxtree.StatementVisitor; +import de.dhbwstuttgart.syntaxtree.statement.literal.Literal; +import de.dhbwstuttgart.syntaxtree.statement.literal.Null; +import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; + +public class KindOfLambda implements StatementVisitor{ + private boolean isInstanceCapturingLambda = false; + private List argumentList = new ArrayList<>(); + + public KindOfLambda(LambdaExpression lambdaExpression) { + lambdaExpression.methodBody.accept(this); + + } + + public boolean isInstanceCapturingLambda() { + return this.isInstanceCapturingLambda; + } + + public List getArgumentList() { + return argumentList; + } + + @Override + public void visit(ArgumentList argumentList) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(LambdaExpression lambdaExpression) { + + } + + @Override + public void visit(Assign assign) { + assign.rightSide.accept(this); + } + + @Override + public void visit(Binary binary) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(Block block) { + for(Statement stmt : block.getStatements()) { + stmt.accept(this); + } + } + + @Override + public void visit(CastExpr castExpr) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(EmptyStmt emptyStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(FieldVar fieldVar) { + fieldVar.receiver.accept(this); + } + + @Override + public void visit(ForStmt forStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(IfStmt ifStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(InstanceOf instanceOf) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(LocalVar localVar) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(LocalVarDecl localVarDecl) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(MethodCall methodCall) { + methodCall.receiver.accept(this); + } + + @Override + public void visit(NewClass methodCall) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(NewArray newArray) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(ExpressionReceiver receiver) { + receiver.expr.accept(this); + } + + @Override + public void visit(Return aReturn) { + aReturn.retexpr.accept(this); + } + + @Override + public void visit(ReturnVoid aReturn) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(StaticClassName staticClassName) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(Super aSuper) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(This aThis) { + this.isInstanceCapturingLambda = true; + this.argumentList.add(aThis.getType()); + } + + @Override + public void visit(UnaryPlus unaryPlus) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(WhileStmt whileStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(DoStmt whileStmt) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(Null aNull) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(Literal literal) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(AssignToField assignLeftSide) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(AssignToLocal assignLeftSide) { + // TODO Auto-generated method stub + + } + + @Override + public void visit(SuperCall superCall) { + // TODO Auto-generated method stub + + } +} diff --git a/src/de/dhbwstuttgart/bytecode/Test.java b/src/de/dhbwstuttgart/bytecode/Test.java new file mode 100644 index 00000000..333ec41f --- /dev/null +++ b/src/de/dhbwstuttgart/bytecode/Test.java @@ -0,0 +1,150 @@ +package de.dhbwstuttgart.bytecode; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.lang.invoke.CallSite; +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodType; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; + +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.Handle; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; + + +public class Test { + private static final String rootDirectory = System.getProperty("user.dir") + "/bin/de/dhbwstuttgart/bytecode/"; + + protected static ClassLoader getClassLoader() throws Exception { + File file = new File(rootDirectory); + URL url = file.toURI().toURL(); + URL[] urls = new URL[] { url }; + System.out.println(urls[0]); + return new URLClassLoader(urls); + } + + public static void main(String[] args) { + // Test Lambda + ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS); + cw.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC + Opcodes.ACC_SUPER, "TestClass", null, "java/lang/Object", null); + + cw.visitSource("TestClass.java", null); + + // Create Constructor + MethodVisitor mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "", "()V"); + + // mv.visitMethodInsn(INVOKEDYNAMIC, "#0", "run", "()Ljava/lang/Runnable"); + //Call site, which, when invoked, returns an instance of the functional interface to which + //the lambda is being converted + MethodType mt = MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, + MethodType.class, MethodType.class, MethodHandle.class, MethodType.class); + + Handle bootstrap = new Handle(Opcodes.H_INVOKESTATIC, "java/lang/invoke/LambdaMetafactory", "metafactory", + mt.toMethodDescriptorString()); + Handle arg2 = new Handle(Opcodes.H_INVOKESTATIC, "TestClass", "lambda$0", "()V"); + + mv.visitInvokeDynamicInsn("run", "()Ljava/lang/Runnable;", bootstrap, + Type.getMethodType("()V"), arg2, + Type.getMethodType("()V")); + + mv.visitVarInsn(Opcodes.ASTORE, 1); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEINTERFACE, "java/lang/Runnable", "run", "()V"); + mv.visitInsn(Opcodes.RETURN); + + // creates bridge method, contains lambdas body + MethodVisitor mvl = cw.visitMethod(Opcodes.ACC_PRIVATE + Opcodes.ACC_STATIC + Opcodes.ACC_SYNTHETIC, "lambda$0", + "()V", null, null); + mvl.visitCode(); + mvl.visitFieldInsn(Opcodes.GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;"); + mvl.visitLdcInsn("lambda"); + mvl.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V"); + mvl.visitInsn(Opcodes.RETURN); + mvl.visitMaxs(2, 0); + mvl.visitEnd(); + + mv.visitMaxs(1, 2); + mv.visitEnd(); + + + cw.visitInnerClass("java/lang/invoke/MethodHandles$Lookup", "java/lang/invoke/MethodHandles", "Lookup", + Opcodes.ACC_PUBLIC + Opcodes.ACC_STATIC + Opcodes.ACC_FINAL); + cw.visitEnd(); + + byte[] b = cw.toByteArray(); + + // Test if statement + /* + * ClassWriter cw = new + * ClassWriter(ClassWriter.COMPUTE_FRAMES|ClassWriter.COMPUTE_MAXS); + * + * cw.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC+Opcodes.ACC_SUPER, "TestIf", null, + * "java/lang/Object", null); MethodVisitor mv = + * cw.visitMethod(Opcodes.ACC_PUBLIC, "", "(Ljava/lang/Boolean;)V", null, + * null); mv.visitCode(); + * + * // Label l0 = new Label(); // mv.visitLabel(l0); + * + * mv.visitVarInsn(Opcodes.ALOAD, 0); + * + * mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "", + * "()V"); + * + * // Label l1 = new Label(); // mv.visitLabel(l1); + * mv.visitVarInsn(Opcodes.ALOAD, 1); mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, + * "java/lang/Boolean", "booleanValue", "()Z"); + * + * Label label = new Label(); mv.visitJumpInsn(Opcodes.IFEQ, label); + * + * mv.visitFieldInsn(Opcodes.GETSTATIC, "java/lang/System", "out", + * "Ljava/io/PrintStream;"); mv.visitLdcInsn("1"); + * mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/io/PrintStream", "println", + * "(Ljava/lang/String;)V"); + * + * Label endLabel = new Label(); mv.visitJumpInsn(Opcodes.GOTO, endLabel); + * + * mv.visitLabel(label); mv.visitFieldInsn(Opcodes.GETSTATIC, + * "java/lang/System", "out", "Ljava/io/PrintStream;"); mv.visitLdcInsn("0"); + * mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/io/PrintStream", "println", + * "(Ljava/lang/String;)V"); + * + * + * + * mv.visitLabel(endLabel); mv.visitInsn(Opcodes.RETURN); + * + * // Label l2 = new Label(); // mv.visitLabel(l2); + * + * // mv.visitLocalVariable("this", "LTestIf;", null, l0, l2, 0); // + * mv.visitLocalVariable("b", "Ljava/lang/Boolean;", null, l0, l2, 1); + * mv.visitMaxs(2, 2); mv.visitEnd(); + * + * cw.visitEnd(); byte[] b = cw.toByteArray(); + */ + FileOutputStream output; + + try { + output = new FileOutputStream(new File(System.getProperty("user.dir") + "/testBytecode/TestClass.class")); + output.write(b); + output.close(); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } +} diff --git a/src/de/dhbwstuttgart/bytecode/TestClass.java b/src/de/dhbwstuttgart/bytecode/TestClass.java new file mode 100644 index 00000000..168447af --- /dev/null +++ b/src/de/dhbwstuttgart/bytecode/TestClass.java @@ -0,0 +1,8 @@ +package de.dhbwstuttgart.bytecode; + +public class TestClass { + public TestClass() { + Runnable lam = () -> System.out.println("lambda"); + lam.run(); + } +} diff --git a/src/de/dhbwstuttgart/bytecode/TestFields.java b/src/de/dhbwstuttgart/bytecode/TestFields.java new file mode 100644 index 00000000..652b8d19 --- /dev/null +++ b/src/de/dhbwstuttgart/bytecode/TestFields.java @@ -0,0 +1,59 @@ +package de.dhbwstuttgart.bytecode; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; + +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; + +public class TestFields { + private static final String rootDirectory = System.getProperty("user.dir") + "/bin/de/dhbwstuttgart/bytecode/"; + + public static void main(String[] args) { + // TODO Auto-generated method stub + ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES|ClassWriter.COMPUTE_MAXS); + cw.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC + Opcodes.ACC_SUPER, "TetsF", null, "java/lang/Object", null); + + cw.visitSource("TetsF.java", null); + + FieldVisitor fv = cw.visitField(Opcodes.ACC_PRIVATE, "z", Type.INT_TYPE.getDescriptor(), null, null); + fv.visitEnd(); + + FieldVisitor fvS = cw.visitField(Opcodes.ACC_PUBLIC, "s", "Ljava/lang/String;", null, null); + fvS.visitEnd(); + // Create Constructor + MethodVisitor mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "", "()V", null, null); + mv.visitCode(); + + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "", "()V"); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitLdcInsn(""); + mv.visitFieldInsn(Opcodes.PUTFIELD, "TetsF", "s", "Ljava/lang/String;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(2, 1); + mv.visitEnd(); + + byte[] b = cw.toByteArray(); + + FileOutputStream output; + + try { + output = new FileOutputStream(new File(System.getProperty("user.dir") + "/testBytecode/TetsF.class")); + output.write(b); + output.close(); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + +} diff --git a/src/de/dhbwstuttgart/bytecode/TestIf.java b/src/de/dhbwstuttgart/bytecode/TestIf.java new file mode 100644 index 00000000..36e3c706 --- /dev/null +++ b/src/de/dhbwstuttgart/bytecode/TestIf.java @@ -0,0 +1,11 @@ +package de.dhbwstuttgart.bytecode; + +public class TestIf { + public TestIf(Boolean b) { + if(b) { + System.out.println("1"); + }else { + System.out.println("0"); + } + } +} diff --git a/src/de/dhbwstuttgart/bytecode/TestMeth.java b/src/de/dhbwstuttgart/bytecode/TestMeth.java new file mode 100644 index 00000000..51223ea1 --- /dev/null +++ b/src/de/dhbwstuttgart/bytecode/TestMeth.java @@ -0,0 +1,18 @@ +package de.dhbwstuttgart.bytecode; + +public class TestMeth { + private int z; + public String s; + public TestMeth(int temp) { + this.z = temp; + } + public void m1(int a, int b) { + int y = m2(1,2,3,4); + } + + public int m2(int a, int b, int x, int y) { + Integer c = 55; + Integer g; + return a+b+y+c; + } +} diff --git a/src/de/dhbwstuttgart/bytecode/TetsF.java b/src/de/dhbwstuttgart/bytecode/TetsF.java new file mode 100644 index 00000000..af72a8d3 --- /dev/null +++ b/src/de/dhbwstuttgart/bytecode/TetsF.java @@ -0,0 +1,6 @@ +package de.dhbwstuttgart.bytecode; + +public class TetsF { + private int z; + public String s = ""; +} diff --git a/src/de/dhbwstuttgart/core/ConsoleInterface.java b/src/de/dhbwstuttgart/core/ConsoleInterface.java old mode 100755 new mode 100644 index c86afbe3..77a172bf --- a/src/de/dhbwstuttgart/core/ConsoleInterface.java +++ b/src/de/dhbwstuttgart/core/ConsoleInterface.java @@ -3,16 +3,14 @@ package de.dhbwstuttgart.core; import java.io.File; import java.io.IOException; import java.util.*; +import java.util.stream.Collectors; public class ConsoleInterface { private static final String directory = System.getProperty("user.dir"); public static void main(String[] args) throws IOException, ClassNotFoundException { - - JavaTXCompiler compiler = new JavaTXCompiler(); - for(String arg : Arrays.asList(args)){ - compiler.parse(new File(arg)); - } + List input = Arrays.asList(args).stream().map((s -> new File(s))).collect(Collectors.toList()); + JavaTXCompiler compiler = new JavaTXCompiler(input); compiler.typeInference(); } } diff --git a/src/de/dhbwstuttgart/core/IItemWithOffset.java b/src/de/dhbwstuttgart/core/IItemWithOffset.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/core/JavaTXCompiler.java b/src/de/dhbwstuttgart/core/JavaTXCompiler.java index 8a67fa26..2abd8b9d 100644 --- a/src/de/dhbwstuttgart/core/JavaTXCompiler.java +++ b/src/de/dhbwstuttgart/core/JavaTXCompiler.java @@ -1,11 +1,16 @@ package de.dhbwstuttgart.core; + import de.dhbwstuttgart.environment.CompilationEnvironment; import de.dhbwstuttgart.parser.JavaTXParser; +import de.dhbwstuttgart.parser.scope.GenericsRegistry; import de.dhbwstuttgart.parser.SyntaxTreeGenerator.SyntaxTreeGenerator; import de.dhbwstuttgart.parser.antlr.Java8Parser.CompilationUnitContext; +import de.dhbwstuttgart.parser.scope.JavaClassName; +import de.dhbwstuttgart.parser.scope.JavaClassRegistry; import de.dhbwstuttgart.syntaxtree.ClassOrInterface; import de.dhbwstuttgart.syntaxtree.SourceFile; +import de.dhbwstuttgart.syntaxtree.factory.ASTFactory; import de.dhbwstuttgart.syntaxtree.factory.UnifyTypeFactory; import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; import de.dhbwstuttgart.typeinference.constraints.Constraint; @@ -24,28 +29,73 @@ import java.util.stream.Collectors; public class JavaTXCompiler { - CompilationEnvironment environment; - - protected List sourceFiles = new ArrayList<>(); -/* - public JavaTXCompiler(List sourceFiles){ + final CompilationEnvironment environment; + public final Map sourceFiles = new HashMap<>(); + public JavaTXCompiler(File sourceFile) throws IOException, ClassNotFoundException { + this(Arrays.asList(sourceFile)); } -*/ - public List typeInference(){ - List allClasses = new ArrayList<>(); - for(SourceFile sf : sourceFiles){ + + public JavaTXCompiler(List sources) throws IOException, ClassNotFoundException { + environment = new CompilationEnvironment(sources); + for (File s : sources) { + sourceFiles.put(s, parse(s)); + } + } + + public ConstraintSet getConstraints() throws ClassNotFoundException { + List allClasses = new ArrayList<>();//environment.getAllAvailableClasses(); + for (SourceFile sf : sourceFiles.values()) { allClasses.addAll(sf.getClasses()); } + List importedClasses = new ArrayList<>(); + //Alle Importierten Klassen in allen geparsten Sourcefiles kommen ins FC + for (File forSourceFile : sourceFiles.keySet()) + for (JavaClassName name : sourceFiles.get(forSourceFile).getImports()) { + //TODO: Hier werden imports von eigenen (.jav) Klassen nicht beachtet + ClassOrInterface importedClass = ASTFactory.createClass( + ClassLoader.getSystemClassLoader().loadClass(name.toString())); + importedClasses.add(importedClass); + } + allClasses.addAll(importedClasses); + + return new TYPE(sourceFiles.values(), allClasses).getConstraints(); + } + + public List getAvailableClasses(SourceFile forSourceFile) throws ClassNotFoundException { + List allClasses = new ArrayList<>();//environment.getAllAvailableClasses(); + for (SourceFile sf : sourceFiles.values()) { + allClasses.addAll(sf.getClasses()); + } + List importedClasses = new ArrayList<>(); + for (JavaClassName name : forSourceFile.getImports()) { + //TODO: Hier werden imports von eigenen (.jav) Klassen nicht beachtet + ClassOrInterface importedClass = ASTFactory.createClass( + ClassLoader.getSystemClassLoader().loadClass(name.toString())); + importedClasses.add(importedClass); + allClasses.addAll(importedClasses); + } + return allClasses; + } + + public List typeInference() throws ClassNotFoundException { + List allClasses = new ArrayList<>();//environment.getAllAvailableClasses(); + //Alle Importierten Klassen in allen geparsten Sourcefiles kommen ins FC + for(SourceFile sf : this.sourceFiles.values()) { + //allClasses.addAll(getAvailableClasses(sf)); + allClasses.addAll(sf.getClasses()); + } + + final ConstraintSet cons = getConstraints(); + FiniteClosure finiteClosure = UnifyTypeFactory.generateFC(allClasses); - final ConstraintSet cons = new TYPE(sourceFiles).getConstraints(); ConstraintSet unifyCons = UnifyTypeFactory.convert(cons); TypeUnify unify = new TypeUnify(); Set> results = new HashSet<>(); - for(List> xCons : unifyCons.cartesianProduct()){ + for (List> xCons : unifyCons.cartesianProduct()) { Set xConsSet = new HashSet<>(); - for(Constraint constraint : xCons){ + for (Constraint constraint : xCons) { xConsSet.addAll(constraint); } @@ -56,28 +106,27 @@ public class JavaTXCompiler { } return results.stream().map((unifyPairs -> new ResultSet(UnifyTypeFactory.convert(unifyPairs, generateTPHMap(cons))))).collect(Collectors.toList()); - } + } - private Map generateTPHMap(ConstraintSet constraints){ + private Map generateTPHMap(ConstraintSet constraints) { HashMap ret = new HashMap<>(); - constraints.map((Pair p)->{ - if(p.TA1 instanceof TypePlaceholder){ - ret.put(((TypePlaceholder)p.TA1).getName(), (TypePlaceholder) p.TA1); + constraints.map((Pair p) -> { + if (p.TA1 instanceof TypePlaceholder) { + ret.put(((TypePlaceholder) p.TA1).getName(), (TypePlaceholder) p.TA1); } - if(p.TA2 instanceof TypePlaceholder){ - ret.put(((TypePlaceholder)p.TA2).getName(), (TypePlaceholder) p.TA2); + if (p.TA2 instanceof TypePlaceholder) { + ret.put(((TypePlaceholder) p.TA2).getName(), (TypePlaceholder) p.TA2); } return null; }); return ret; } - public SourceFile parse(File sourceFile) throws IOException, java.lang.ClassNotFoundException { + private SourceFile parse(File sourceFile) throws IOException, java.lang.ClassNotFoundException { CompilationUnitContext tree = JavaTXParser.parse(sourceFile); - SyntaxTreeGenerator generator = new SyntaxTreeGenerator(environment.getRegistry(sourceFile)); - SourceFile ret = generator.convert(tree); - sourceFiles.add(ret); + SyntaxTreeGenerator generator = new SyntaxTreeGenerator(environment.getRegistry(sourceFile), new GenericsRegistry(null)); + SourceFile ret = generator.convert(tree, environment.packageCrawler); return ret; } -} +} \ No newline at end of file diff --git a/src/de/dhbwstuttgart/environment/CompilationEnvironment.java b/src/de/dhbwstuttgart/environment/CompilationEnvironment.java index 416e702b..7044da6b 100644 --- a/src/de/dhbwstuttgart/environment/CompilationEnvironment.java +++ b/src/de/dhbwstuttgart/environment/CompilationEnvironment.java @@ -5,11 +5,11 @@ import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; +import java.util.*; +import de.dhbwstuttgart.syntaxtree.ClassOrInterface; +import de.dhbwstuttgart.syntaxtree.SourceFile; +import de.dhbwstuttgart.syntaxtree.factory.ASTFactory; import org.reflections.Reflections; import org.reflections.scanners.ResourcesScanner; import org.reflections.scanners.SubTypesScanner; @@ -31,27 +31,41 @@ import de.dhbwstuttgart.parser.scope.JavaClassRegistry; */ public class CompilationEnvironment { private final List librarys; - + private final List sourceFiles; + public final PackageCrawler packageCrawler; + /** * Imitiert die Environment beim Aufruf des JavaCompilers auf einer Menge von java-Dateien - * Die Environment enthält automatisch die Java Standard Library + * Die Environment enth�lt automatisch die Java Standard Library * @param sourceFiles die zu kompilierenden Dateien */ public CompilationEnvironment(List sourceFiles) { String bootClassPath = System.getProperty("sun.boot.class.path"); librarys = new ArrayList<>(); - for(String path : bootClassPath.split(";")) { + for(String path : bootClassPath.split(File.pathSeparator)) { try { librarys.add(new URL("file:"+path)); } catch (MalformedURLException e) { new DebugException("Fehler im Classpath auf diesem System"); } } + this.sourceFiles = sourceFiles; + this.packageCrawler = new PackageCrawler(librarys); } public JavaClassRegistry getRegistry(File forSourceFile) throws ClassNotFoundException, IOException { - List allNames = new ArrayList<>(); + Map allNames; CompilationUnitContext tree = JavaTXParser.parse(forSourceFile); - return new JavaClassRegistry(GatherNames.getNames(tree, new PackageCrawler(librarys))); + allNames = GatherNames.getNames(tree, packageCrawler); + return new JavaClassRegistry(allNames); } + + public List getAllAvailableClasses() { + List ret = new ArrayList<>(); + for(Class c : new PackageCrawler(librarys).getAllAvailableClasses()){ + ret.add(ASTFactory.createClass(c)); + } + return ret; + } + } diff --git a/src/de/dhbwstuttgart/environment/PackageCrawler.java b/src/de/dhbwstuttgart/environment/PackageCrawler.java index c1a4aad2..7c63a0b6 100644 --- a/src/de/dhbwstuttgart/environment/PackageCrawler.java +++ b/src/de/dhbwstuttgart/environment/PackageCrawler.java @@ -1,9 +1,7 @@ package de.dhbwstuttgart.environment; import java.net.URL; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; +import java.util.*; import org.reflections.Reflections; import org.reflections.scanners.ResourcesScanner; @@ -12,6 +10,7 @@ import org.reflections.util.ConfigurationBuilder; import org.reflections.util.FilterBuilder; import de.dhbwstuttgart.parser.scope.JavaClassName; +import org.reflections.vfs.SystemDir; /** * Hilft beim Durchsuchen von Packages @@ -53,12 +52,25 @@ public class PackageCrawler { return classes; } - - public List getClassNames(String packageName){ - List nameList = new ArrayList(); + + public Set> getAllAvailableClasses(){ + Reflections reflections = new Reflections(new ConfigurationBuilder() + .setScanners(new SubTypesScanner(false /* don't exclude Object.class */), new ResourcesScanner()) + .setUrls(urls)); + + Set> classes = reflections.getSubTypesOf(Object.class); + + return classes; + } + + public Map getClassNames(String packageName){ + Map nameList = new HashMap<>(); Set> classes = getClassesInPackage(packageName); + if(packageName.equals("java.lang") && ! classes.contains(Object.class)) { + classes.add(Object.class); + } for(Class c : classes){ - nameList.add(c.getName()); + nameList.put(c.getName(), c.getTypeParameters().length); } return nameList; } diff --git a/src/de/dhbwstuttgart/exceptions/TypeinferenceException.java b/src/de/dhbwstuttgart/exceptions/TypeinferenceException.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/GenericsRegistry.java b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/GenericsRegistry.java deleted file mode 100644 index 08212fc9..00000000 --- a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/GenericsRegistry.java +++ /dev/null @@ -1,7 +0,0 @@ -package de.dhbwstuttgart.parser.SyntaxTreeGenerator; - -import java.util.HashMap; - -public class GenericsRegistry extends HashMap { - -} \ No newline at end of file diff --git a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java index de75adb1..f4ada6b2 100644 --- a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java +++ b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java @@ -3,6 +3,7 @@ package de.dhbwstuttgart.parser.SyntaxTreeGenerator; import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.parser.NullToken; import de.dhbwstuttgart.parser.antlr.Java8Parser; +import de.dhbwstuttgart.parser.scope.GenericsRegistry; import de.dhbwstuttgart.parser.scope.JavaClassRegistry; import de.dhbwstuttgart.syntaxtree.*; import de.dhbwstuttgart.syntaxtree.statement.*; @@ -22,6 +23,7 @@ public class StatementGenerator { private JavaClassRegistry reg; private Map localVars; private GenericsRegistry generics; + private String VAR_KEYWORD = "var"; public StatementGenerator(JavaClassRegistry reg, GenericsRegistry generics, Map localVars){ this.reg = reg; @@ -177,6 +179,14 @@ public class StatementGenerator { }else throw new NotImplementedException(); } + public Receiver getReceiver(Expression expr){ + if(expr instanceof StaticClassName){ + return (Receiver) expr; + }else { + return new ExpressionReceiver(expr); + } + } + private Statement convert(Java8Parser.MethodInvocationContext methodInvocationContext) { String name; if(methodInvocationContext.methodName()!=null){ @@ -198,7 +208,7 @@ public class StatementGenerator { }else throw new NotImplementedException(); ArgumentList argumentList = convert(methodInvocationContext.argumentList()); - MethodCall ret = new MethodCall(TypePlaceholder.fresh(methodInvocationContext.getStart()),new Receiver(receiver), name, argumentList, methodInvocationContext.getStart()); + MethodCall ret = new MethodCall(TypePlaceholder.fresh(methodInvocationContext.getStart()), getReceiver(receiver), name, argumentList, methodInvocationContext.getStart()); return ret; } @@ -393,7 +403,7 @@ public class StatementGenerator { throw new NotImplementedException(); } RefTypeOrTPHOrWildcardOrGeneric type; - if(declaration.unannTypeOrAuto().unannType()==null){ + if(declaration.unannTypeOrAuto().unannType().getText().equals(VAR_KEYWORD)){ type = TypePlaceholder.fresh(declaration.getStart()); }else{ type = TypeGenerator.convert(declaration.unannTypeOrAuto().unannType(), reg, generics); @@ -699,7 +709,7 @@ public class StatementGenerator { }else { Java8Parser.MethodInvocation_lf_primaryContext ctxt = e.methodInvocation_lf_primary(); String methodName = ctxt.Identifier().toString(); - return new MethodCall(TypePlaceholder.fresh(e.getStart()), new Receiver(expr), methodName, convert(ctxt.argumentList()), e.getStart()); + return new MethodCall(TypePlaceholder.fresh(e.getStart()), getReceiver(expr), methodName, convert(ctxt.argumentList()), e.getStart()); } } @@ -807,7 +817,7 @@ public class StatementGenerator { } ArgumentList argumentList = convert(methodInvocationContext.argumentList()); - MethodCall ret = new MethodCall(TypePlaceholder.fresh(methodInvocationContext.getStart()), new Receiver(receiver), name, argumentList, methodInvocationContext.getStart()); + MethodCall ret = new MethodCall(TypePlaceholder.fresh(methodInvocationContext.getStart()), getReceiver(receiver), name, argumentList, methodInvocationContext.getStart()); return ret; } diff --git a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java index ce2dddb0..c5b135e6 100644 --- a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java +++ b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java @@ -1,9 +1,13 @@ package de.dhbwstuttgart.parser.SyntaxTreeGenerator; +import de.dhbwstuttgart.environment.PackageCrawler; import de.dhbwstuttgart.exceptions.NotImplementedException; import java.lang.ClassNotFoundException; -import de.dhbwstuttgart.parser.NullToken; + +import de.dhbwstuttgart.exceptions.TypeinferenceException; import de.dhbwstuttgart.parser.antlr.Java8Parser; +import de.dhbwstuttgart.parser.scope.GatherNames; +import de.dhbwstuttgart.parser.scope.GenericsRegistry; import de.dhbwstuttgart.parser.scope.JavaClassName; import de.dhbwstuttgart.parser.scope.JavaClassRegistry; import de.dhbwstuttgart.syntaxtree.*; @@ -12,14 +16,11 @@ import de.dhbwstuttgart.syntaxtree.statement.*; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; -import de.dhbwstuttgart.typecheck.*; -import java.io.File; import java.lang.reflect.Modifier; import java.sql.Ref; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; //import jdk.internal.dynalink.support.TypeConverterFactory; import org.antlr.v4.runtime.CommonToken; @@ -28,12 +29,17 @@ import org.antlr.v4.runtime.tree.TerminalNode; public class SyntaxTreeGenerator{ private JavaClassRegistry reg; + private final GenericsRegistry globalGenerics; private String pkgName = ""; - List imports = new ArrayList(); + Set imports = new HashSet(); List fieldInitializations = new ArrayList<>(); - public SyntaxTreeGenerator(JavaClassRegistry reg){ + public SyntaxTreeGenerator(JavaClassRegistry reg, GenericsRegistry globalGenerics){ + //Die Generics müssen während des Bauens des AST erstellt werden, + // da diese mit der Methode oder Klasse, in welcher sie deklariert werden + // verknüpft sein müssen. Dennoch werden die Namen aller Generics in einer globalen Datenbank benötigt. + this.globalGenerics = globalGenerics; this.reg = reg; } @@ -66,56 +72,10 @@ public class SyntaxTreeGenerator{ return ret; } - public void setImports(Java8Parser.CompilationUnitContext ctx) throws ClassNotFoundException { - List newImports = new ArrayList(); - for(Java8Parser.ImportDeclarationContext importDeclCtx : ctx.importDeclaration()){ - if(importDeclCtx.singleTypeImportDeclaration() != null){ - newImports.add(convertSingleTypeImportDeclaration(importDeclCtx.singleTypeImportDeclaration())); - } - else if(importDeclCtx.typeImportOnDemandDeclaration() != null){ - newImports.add(convertTypeImportOnDemandDeclaration(importDeclCtx.typeImportOnDemandDeclaration())); - } - else if(importDeclCtx.singleStaticImportDeclaration() != null){ - newImports.add(convertSingleStaticImportDeclaration(importDeclCtx.singleStaticImportDeclaration())); - } - else{ - newImports.add(convertStaticImportOnDemandDeclaration(importDeclCtx.staticImportOnDemandDeclaration())); - } - } - this.imports.addAll(newImports); - } - - private JavaClassName convertSingleTypeImportDeclaration(Java8Parser.SingleTypeImportDeclarationContext ctx) throws ClassNotFoundException{ - String typeName = convertTypeName(ctx.typeName()); - JavaClassName ret = reg.getName(typeName); - return ret; - } - - private JavaClassName convertTypeImportOnDemandDeclaration(Java8Parser.TypeImportOnDemandDeclarationContext ctx){ - return null; - } - - private JavaClassName convertSingleStaticImportDeclaration(Java8Parser.SingleStaticImportDeclarationContext ctx){ - return null; - } - - private JavaClassName convertStaticImportOnDemandDeclaration(Java8Parser.StaticImportOnDemandDeclarationContext ctx){ - return null; - } - - private String getPackageFromClass(String cls){ - String ret = ""; - String[] parts = cls.split("\\."); - for(int i = 0; i < parts.length - 1; i++){ - ret = ret + "." + parts[i]; - } - ret = ret.substring(1); - return ret; - } - - public SourceFile convert(Java8Parser.CompilationUnitContext ctx) throws ClassNotFoundException{ + public SourceFile convert(Java8Parser.CompilationUnitContext ctx, PackageCrawler packageCrawler) throws ClassNotFoundException{ List classes = new ArrayList<>(); - this.setImports(ctx); + Map imports = GatherNames.getImports(ctx, packageCrawler); + this.imports = imports.keySet().stream().map(name -> reg.getName(name)).collect(Collectors.toSet()); for(Java8Parser.TypeDeclarationContext typeDecl : ctx.typeDeclaration()){ ClassOrInterface newClass; if(typeDecl.classDeclaration() != null){ @@ -133,7 +93,7 @@ public class SyntaxTreeGenerator{ Java8Parser.MethodHeaderContext header = methodDeclarationContext.methodHeader(); int modifiers = SyntaxTreeGenerator.convert(methodDeclarationContext.methodModifier()); GenericsRegistry localGenerics = createGenerics(methodDeclarationContext.methodHeader().typeParameters(), - parentClass, header.methodDeclarator().Identifier().getText()); + parentClass, header.methodDeclarator().Identifier().getText(), reg, generics); localGenerics.putAll(generics); return convert(modifiers, header, methodDeclarationContext.methodBody(),parentClass, superClass, localGenerics); } @@ -142,7 +102,7 @@ public class SyntaxTreeGenerator{ Java8Parser.MethodHeaderContext header = ctx.methodHeader(); int modifiers = SyntaxTreeGenerator.convertInterfaceModifier(ctx.interfaceMethodModifier()); - GenericsRegistry localGenerics = createGenerics(header.typeParameters(), parentClass, header.methodDeclarator().Identifier().getText()); + GenericsRegistry localGenerics = createGenerics(header.typeParameters(), parentClass, header.methodDeclarator().Identifier().getText(), reg, generics); localGenerics.putAll(generics); return convert(modifiers, header, ctx.methodBody(),parentClass, superClass, localGenerics); @@ -179,13 +139,13 @@ public class SyntaxTreeGenerator{ block = stmtGen.convert(body.block()); } if(parentClass.equals(new JavaClassName(name))){ - return new Constructor(name, retType, modifiers, parameterList, block, gtvDeclarations, header.getStart(), fieldInitializations, superClass); + return new Constructor(modifiers, name, retType, modifiers, parameterList, block, gtvDeclarations, header.getStart(), fieldInitializations); }else{ - return new Method(name, retType, modifiers, parameterList,block, gtvDeclarations, header.getStart()); + return new Method(modifiers, name, retType, modifiers, parameterList,block, gtvDeclarations, header.getStart()); } } - private ClassOrInterface convertClass(Java8Parser.ClassDeclarationContext ctx) { + private ClassOrInterface convertClass(Java8Parser.ClassDeclarationContext ctx) { ClassOrInterface newClass; if(ctx.normalClassDeclaration() != null){ newClass = convertNormal(ctx.normalClassDeclaration()); @@ -196,7 +156,7 @@ public class SyntaxTreeGenerator{ return newClass; } - private ClassOrInterface convertNormal(Java8Parser.NormalClassDeclarationContext ctx){ + private ClassOrInterface convertNormal(Java8Parser.NormalClassDeclarationContext ctx) { int modifiers = 0; if(ctx.classModifier() != null){ for(Java8Parser.ClassModifierContext mod : ctx.classModifier()){ @@ -205,7 +165,7 @@ public class SyntaxTreeGenerator{ } } JavaClassName name = reg.getName(ctx.Identifier().getText()); - GenericsRegistry generics = createGenerics(ctx.typeParameters(), name, ""); + GenericsRegistry generics = createGenerics(ctx.typeParameters(), name, "", reg, new GenericsRegistry(globalGenerics)); Token offset = ctx.getStart(); GenericDeclarationList genericClassParameters; if(ctx.typeParameters() == null){ @@ -217,7 +177,7 @@ public class SyntaxTreeGenerator{ if(ctx.superclass() != null){ superClass = convert(ctx.superclass()); }else{ - superClass = ASTFactory.createObjectClass().getType(); + superClass = new RefType(ASTFactory.createObjectClass().getClassName(), ctx.getStart()); } List fielddecl = convertFields(ctx.classBody(), generics); List methods = convertMethods(ctx.classBody(), name, superClass, generics); @@ -256,16 +216,29 @@ public class SyntaxTreeGenerator{ return ret; } + /** + * http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.8.9 + */ private Constructor generateStandardConstructor(String className, JavaClassName parentClass, RefType superClass, GenericDeclarationList classGenerics, Token offset){ RefType classType = ClassOrInterface.generateTypeOfClass(reg.getName(className), classGenerics, offset); int modifiers = 0; ParameterList params = new ParameterList(new ArrayList<>(), offset); Block block = new Block(new ArrayList<>(), offset); - return new Constructor(className, classType, modifiers, params, block, classGenerics, offset, fieldInitializations, superClass); + return new Constructor(Modifier.PUBLIC, className, classType, modifiers, params, block, classGenerics, offset, fieldInitializations); } private RefType convert(Java8Parser.SuperclassContext superclass) { - throw new NotImplementedException(); + if(superclass.classType().classOrInterfaceType() != null){ + throw new NotImplementedException(); + }else{ + RefTypeOrTPHOrWildcardOrGeneric ret = TypeGenerator.convertTypeName(superclass.classType().Identifier().getText(), superclass.classType().typeArguments(), + superclass.getStart(), reg, globalGenerics); + if(ret instanceof RefType){ + return (RefType) ret; + }else{ + throw new TypeinferenceException(superclass.getText() + " ist kein gültiger Supertyp", superclass.getStart()); + } + } } private List convertMethods(Java8Parser.ClassBodyContext classBodyContext, @@ -406,9 +379,11 @@ public class SyntaxTreeGenerator{ modifiers += newModifier; } } + if(!Modifier.isInterface(modifiers))modifiers += Modifier.INTERFACE; + JavaClassName name = reg.getName(ctx.Identifier().getText()); - GenericsRegistry generics = createGenerics(ctx.typeParameters(), name, ""); + GenericsRegistry generics = createGenerics(ctx.typeParameters(), name, "", reg, new GenericsRegistry(globalGenerics)); GenericDeclarationList genericParams; if(ctx.typeParameters() != null){ @@ -416,7 +391,7 @@ public class SyntaxTreeGenerator{ }else{ genericParams = createEmptyGenericDeclarationList(ctx.Identifier()); } - RefType superClass = ASTFactory.createObjectClass().getType(); + RefType superClass = ASTFactory.createObjectType(); List fields = convertFields(ctx.interfaceBody()); List methods = convertMethods(ctx.interfaceBody(), name, superClass, generics); @@ -434,8 +409,9 @@ public class SyntaxTreeGenerator{ return new GenericDeclarationList(new ArrayList<>(), gtvOffset); } - private GenericsRegistry createGenerics(Java8Parser.TypeParametersContext ctx, JavaClassName parentClass, String parentMethod) { - GenericsRegistry ret = new GenericsRegistry(); + private GenericsRegistry createGenerics(Java8Parser.TypeParametersContext ctx, JavaClassName parentClass, String parentMethod, JavaClassRegistry reg, GenericsRegistry generics) { + GenericsRegistry ret = new GenericsRegistry(this.globalGenerics); + ret.putAll(generics); if(ctx == null || ctx.typeParameterList() == null)return ret; for(Java8Parser.TypeParameterContext tp : ctx.typeParameterList().typeParameter()){ TypeGenerator.convert(tp, parentClass, parentMethod, reg, ret); diff --git a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/TypeGenerator.java b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/TypeGenerator.java index ed46ee0e..d54b682a 100644 --- a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/TypeGenerator.java +++ b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/TypeGenerator.java @@ -2,24 +2,22 @@ package de.dhbwstuttgart.parser.SyntaxTreeGenerator; import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.exceptions.TypeinferenceException; -import de.dhbwstuttgart.parser.NullToken; import de.dhbwstuttgart.parser.antlr.Java8Parser; import de.dhbwstuttgart.parser.scope.GenericTypeName; +import de.dhbwstuttgart.parser.scope.GenericsRegistry; import de.dhbwstuttgart.parser.scope.JavaClassName; import de.dhbwstuttgart.parser.scope.JavaClassRegistry; import de.dhbwstuttgart.syntaxtree.GenericDeclarationList; import de.dhbwstuttgart.syntaxtree.GenericTypeVar; import de.dhbwstuttgart.syntaxtree.factory.ASTFactory; -import de.dhbwstuttgart.syntaxtree.statement.ArgumentList; import de.dhbwstuttgart.syntaxtree.type.GenericRefType; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; -import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; +import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; import org.antlr.v4.runtime.Token; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; public class TypeGenerator { @@ -45,7 +43,7 @@ public class TypeGenerator { throw new NotImplementedException(); }else if(unannTypeContext.unannReferenceType().unannArrayType()!=null){ - System.out.println(unannTypeContext.getText()); + //System.out.println(unannTypeContext.getText()); throw new NotImplementedException(); }else if(unannTypeContext.unannReferenceType().unannTypeVariable()!=null){ @@ -68,6 +66,8 @@ public class TypeGenerator { public static GenericTypeVar convert(Java8Parser.TypeParameterContext typeParameter, JavaClassName parentClass, String parentMethod, JavaClassRegistry reg, GenericsRegistry generics) { String name = typeParameter.Identifier().getText(); + //TODO: Es müssen erst alle GenericTypeVars generiert werden, dann können die bounds dieser Generics ermittelt werden + //Problem ist erlaubt, würde aber bei den Bounds von A den Generic B nicht als solchen erkennen List bounds = TypeGenerator.convert(typeParameter.typeBound(),reg, generics); GenericTypeVar ret = new GenericTypeVar(new GenericTypeName(new GenericContext(parentClass, parentMethod), name), bounds, typeParameter.getStart(), typeParameter.getStop()); @@ -76,17 +76,46 @@ public class TypeGenerator { } public static List convert(Java8Parser.TypeBoundContext typeBoundContext, JavaClassRegistry reg, GenericsRegistry generics) { + List ret = new ArrayList<>(); if(typeBoundContext == null){ - List ret = new ArrayList<>(); - ret.add(ASTFactory.createObjectClass().getType()); + ret.add(ASTFactory.createObjectType()); return ret; } + if(typeBoundContext.typeVariable() != null){ + ret.add(convertTypeName(typeBoundContext.typeVariable().Identifier().getText(), null, typeBoundContext.typeVariable().getStart(), reg, generics)); + return ret; + } + if(typeBoundContext.classOrInterfaceType() != null){ + ret.add(convert(typeBoundContext.classOrInterfaceType())); + if(typeBoundContext.additionalBound() != null) + for(Java8Parser.AdditionalBoundContext addCtx : typeBoundContext.additionalBound()){ + ret.add(convert(addCtx.interfaceType())); + } + return ret; + }else{ + throw new NotImplementedException(); + } + } - throw new de.dhbwstuttgart.exceptions.NotImplementedException(); + private static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.ClassOrInterfaceTypeContext classOrInterfaceTypeContext) { + throw new NotImplementedException(); + } + + private static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.InterfaceTypeContext interfaceTypeContext) { + throw new NotImplementedException(); } public static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.ReferenceTypeContext referenceTypeContext, JavaClassRegistry reg, GenericsRegistry generics) { - return convertTypeName(referenceTypeContext.getText(), referenceTypeContext.getStart(), reg, generics); + if(referenceTypeContext.classOrInterfaceType() != null){ + if(referenceTypeContext.classOrInterfaceType().classType_lfno_classOrInterfaceType()!= null){ + Java8Parser.ClassType_lfno_classOrInterfaceTypeContext ctx = referenceTypeContext.classOrInterfaceType().classType_lfno_classOrInterfaceType(); + return convertTypeName(ctx.Identifier().toString(), ctx.typeArguments(),referenceTypeContext.getStart(), reg, generics); + }else{ + throw new NotImplementedException(); + } + }else{ + throw new NotImplementedException(); + } } public static RefTypeOrTPHOrWildcardOrGeneric convertTypeName(String name, Token offset, JavaClassRegistry reg, GenericsRegistry generics){ @@ -96,14 +125,18 @@ public class TypeGenerator { public static RefTypeOrTPHOrWildcardOrGeneric convertTypeName( String name, Java8Parser.TypeArgumentsContext typeArguments, Token offset, JavaClassRegistry reg, GenericsRegistry generics){ if(!reg.contains(name)){ //Dann könnte es ein Generische Type sein - if(generics.keySet().contains(name)){ + if(generics.contains(name)){ return new GenericRefType(new GenericTypeName(generics.get(name),name), offset); }else{ throw new TypeinferenceException("Der Typ "+ name + " ist nicht vorhanden",offset); } } if(typeArguments == null){ - return new RefType(reg.getName(name), offset); + List params = new ArrayList<>(); + for(int i = 0; i'=68 -'<'=69 -'!'=70 -'~'=71 -'?'=72 -':'=73 -'=='=74 -'<='=75 -'>='=76 -'!='=77 -'&&'=78 -'||'=79 -'++'=80 -'--'=81 -'+'=82 -'-'=83 -'*'=84 -'/'=85 -'&'=86 -'|'=87 -'^'=88 -'%'=89 -'->'=90 -'::'=91 -'+='=92 -'-='=93 -'*='=94 -'/='=95 -'&='=96 -'|='=97 -'^='=98 -'%='=99 -'<<='=100 -'>>='=101 -'>>>='=102 -'@'=104 -'...'=105 +ABSTRACT=1 +ASSERT=2 +BOOLEAN=3 +BREAK=4 +BYTE=5 +CASE=6 +CATCH=7 +CHAR=8 +CLASS=9 +CONST=10 +CONTINUE=11 +DEFAULT=12 +DO=13 +DOUBLE=14 +ELSE=15 +ENUM=16 +EXTENDS=17 +FINAL=18 +FINALLY=19 +FLOAT=20 +FOR=21 +IF=22 +GOTO=23 +IMPLEMENTS=24 +IMPORT=25 +INSTANCEOF=26 +INT=27 +INTERFACE=28 +LONG=29 +NATIVE=30 +NEW=31 +PACKAGE=32 +PRIVATE=33 +PROTECTED=34 +PUBLIC=35 +RETURN=36 +SHORT=37 +STATIC=38 +STRICTFP=39 +SUPER=40 +SWITCH=41 +SYNCHRONIZED=42 +THIS=43 +THROW=44 +THROWS=45 +TRANSIENT=46 +TRY=47 +VOID=48 +VOLATILE=49 +WHILE=50 +IntegerLiteral=51 +FloatingPointLiteral=52 +BooleanLiteral=53 +CharacterLiteral=54 +StringLiteral=55 +NullLiteral=56 +LPAREN=57 +RPAREN=58 +LBRACE=59 +RBRACE=60 +LBRACK=61 +RBRACK=62 +SEMI=63 +COMMA=64 +DOT=65 +ASSIGN=66 +GT=67 +LT=68 +BANG=69 +TILDE=70 +QUESTION=71 +COLON=72 +EQUAL=73 +LE=74 +GE=75 +NOTEQUAL=76 +AND=77 +OR=78 +INC=79 +DEC=80 +ADD=81 +SUB=82 +MUL=83 +DIV=84 +BITAND=85 +BITOR=86 +CARET=87 +MOD=88 +ARROW=89 +COLONCOLON=90 +ADD_ASSIGN=91 +SUB_ASSIGN=92 +MUL_ASSIGN=93 +DIV_ASSIGN=94 +AND_ASSIGN=95 +OR_ASSIGN=96 +XOR_ASSIGN=97 +MOD_ASSIGN=98 +LSHIFT_ASSIGN=99 +RSHIFT_ASSIGN=100 +URSHIFT_ASSIGN=101 +Identifier=102 +AT=103 +ELLIPSIS=104 +WS=105 +COMMENT=106 +LINE_COMMENT=107 +'abstract'=1 +'assert'=2 +'boolean'=3 +'break'=4 +'byte'=5 +'case'=6 +'catch'=7 +'char'=8 +'class'=9 +'const'=10 +'continue'=11 +'default'=12 +'do'=13 +'double'=14 +'else'=15 +'enum'=16 +'extends'=17 +'final'=18 +'finally'=19 +'float'=20 +'for'=21 +'if'=22 +'goto'=23 +'implements'=24 +'import'=25 +'instanceof'=26 +'int'=27 +'interface'=28 +'long'=29 +'native'=30 +'new'=31 +'package'=32 +'private'=33 +'protected'=34 +'public'=35 +'return'=36 +'short'=37 +'static'=38 +'strictfp'=39 +'super'=40 +'switch'=41 +'synchronized'=42 +'this'=43 +'throw'=44 +'throws'=45 +'transient'=46 +'try'=47 +'void'=48 +'volatile'=49 +'while'=50 +'null'=56 +'('=57 +')'=58 +'{'=59 +'}'=60 +'['=61 +']'=62 +';'=63 +','=64 +'.'=65 +'='=66 +'>'=67 +'<'=68 +'!'=69 +'~'=70 +'?'=71 +':'=72 +'=='=73 +'<='=74 +'>='=75 +'!='=76 +'&&'=77 +'||'=78 +'++'=79 +'--'=80 +'+'=81 +'-'=82 +'*'=83 +'/'=84 +'&'=85 +'|'=86 +'^'=87 +'%'=88 +'->'=89 +'::'=90 +'+='=91 +'-='=92 +'*='=93 +'/='=94 +'&='=95 +'|='=96 +'^='=97 +'%='=98 +'<<='=99 +'>>='=100 +'>>>='=101 +'@'=103 +'...'=104 diff --git a/src/de/dhbwstuttgart/parser/antlr/Java8BaseListener.java b/src/de/dhbwstuttgart/parser/antlr/Java8BaseListener.java index 2181e4fe..1c94febc 100644 --- a/src/de/dhbwstuttgart/parser/antlr/Java8BaseListener.java +++ b/src/de/dhbwstuttgart/parser/antlr/Java8BaseListener.java @@ -1,4 +1,4 @@ -// Generated from Java8.g4 by ANTLR 4.5.3 +// Generated from Java8.g4 by ANTLR 4.7 package de.dhbwstuttgart.parser.antlr; import org.antlr.v4.runtime.ParserRuleContext; @@ -1571,6 +1571,18 @@ public class Java8BaseListener implements Java8Listener { *

The default implementation does nothing.

*/ @Override public void exitLocalVariableDeclarationStatement(Java8Parser.LocalVariableDeclarationStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannTypeOrAuto(Java8Parser.UnannTypeOrAutoContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannTypeOrAuto(Java8Parser.UnannTypeOrAutoContext ctx) { } /** * {@inheritDoc} * diff --git a/src/de/dhbwstuttgart/parser/antlr/Java8Lexer.java b/src/de/dhbwstuttgart/parser/antlr/Java8Lexer.java index 5d545ba3..8dc62cb5 100644 --- a/src/de/dhbwstuttgart/parser/antlr/Java8Lexer.java +++ b/src/de/dhbwstuttgart/parser/antlr/Java8Lexer.java @@ -1,4 +1,4 @@ -// Generated from /home/janulrich/Development/intellijworkspace/JavaCompilerCore/src/de/dhbwstuttgart/parser/antlr/Java8.g4 by ANTLR 4.5.1 +// Generated from Java8.g4 by ANTLR 4.7 package de.dhbwstuttgart.parser.antlr; import org.antlr.v4.runtime.Lexer; import org.antlr.v4.runtime.CharStream; @@ -11,37 +11,41 @@ import org.antlr.v4.runtime.misc.*; @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) public class Java8Lexer extends Lexer { - static { RuntimeMetaData.checkVersion("4.5.1", RuntimeMetaData.VERSION); } + static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); } protected static final DFA[] _decisionToDFA; protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache(); public static final int - T__0=1, ABSTRACT=2, ASSERT=3, BOOLEAN=4, BREAK=5, BYTE=6, CASE=7, CATCH=8, - CHAR=9, CLASS=10, CONST=11, CONTINUE=12, DEFAULT=13, DO=14, DOUBLE=15, - ELSE=16, ENUM=17, EXTENDS=18, FINAL=19, FINALLY=20, FLOAT=21, FOR=22, - IF=23, GOTO=24, IMPLEMENTS=25, IMPORT=26, INSTANCEOF=27, INT=28, INTERFACE=29, - LONG=30, NATIVE=31, NEW=32, PACKAGE=33, PRIVATE=34, PROTECTED=35, PUBLIC=36, - RETURN=37, SHORT=38, STATIC=39, STRICTFP=40, SUPER=41, SWITCH=42, SYNCHRONIZED=43, - THIS=44, THROW=45, THROWS=46, TRANSIENT=47, TRY=48, VOID=49, VOLATILE=50, - WHILE=51, IntegerLiteral=52, FloatingPointLiteral=53, BooleanLiteral=54, - CharacterLiteral=55, StringLiteral=56, NullLiteral=57, LPAREN=58, RPAREN=59, - LBRACE=60, RBRACE=61, LBRACK=62, RBRACK=63, SEMI=64, COMMA=65, DOT=66, - ASSIGN=67, GT=68, LT=69, BANG=70, TILDE=71, QUESTION=72, COLON=73, EQUAL=74, - LE=75, GE=76, NOTEQUAL=77, AND=78, OR=79, INC=80, DEC=81, ADD=82, SUB=83, - MUL=84, DIV=85, BITAND=86, BITOR=87, CARET=88, MOD=89, ARROW=90, COLONCOLON=91, - ADD_ASSIGN=92, SUB_ASSIGN=93, MUL_ASSIGN=94, DIV_ASSIGN=95, AND_ASSIGN=96, - OR_ASSIGN=97, XOR_ASSIGN=98, MOD_ASSIGN=99, LSHIFT_ASSIGN=100, RSHIFT_ASSIGN=101, - URSHIFT_ASSIGN=102, Identifier=103, AT=104, ELLIPSIS=105, WS=106, COMMENT=107, - LINE_COMMENT=108; + ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8, + CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15, + ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23, + IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29, + NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36, + SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42, + THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VOID=48, VOLATILE=49, + WHILE=50, IntegerLiteral=51, FloatingPointLiteral=52, BooleanLiteral=53, + CharacterLiteral=54, StringLiteral=55, NullLiteral=56, LPAREN=57, RPAREN=58, + LBRACE=59, RBRACE=60, LBRACK=61, RBRACK=62, SEMI=63, COMMA=64, DOT=65, + ASSIGN=66, GT=67, LT=68, BANG=69, TILDE=70, QUESTION=71, COLON=72, EQUAL=73, + LE=74, GE=75, NOTEQUAL=76, AND=77, OR=78, INC=79, DEC=80, ADD=81, SUB=82, + MUL=83, DIV=84, BITAND=85, BITOR=86, CARET=87, MOD=88, ARROW=89, COLONCOLON=90, + ADD_ASSIGN=91, SUB_ASSIGN=92, MUL_ASSIGN=93, DIV_ASSIGN=94, AND_ASSIGN=95, + OR_ASSIGN=96, XOR_ASSIGN=97, MOD_ASSIGN=98, LSHIFT_ASSIGN=99, RSHIFT_ASSIGN=100, + URSHIFT_ASSIGN=101, Identifier=102, AT=103, ELLIPSIS=104, WS=105, COMMENT=106, + LINE_COMMENT=107; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + public static String[] modeNames = { "DEFAULT_MODE" }; public static final String[] ruleNames = { - "T__0", "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", - "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", - "ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS", + "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", "CHAR", + "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", "ENUM", + "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", "NEW", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS", "TRANSIENT", @@ -68,8 +72,8 @@ public class Java8Lexer extends Lexer { }; private static final String[] _LITERAL_NAMES = { - null, "'auto'", "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", - "'case'", "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", + null, "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", "'case'", + "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", "'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", "'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'", "'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'", @@ -84,21 +88,21 @@ public class Java8Lexer extends Lexer { "'>>>='", null, "'@'", "'...'" }; private static final String[] _SYMBOLIC_NAMES = { - null, null, "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", - "CATCH", "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", - "ELSE", "ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", - "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", - "NEW", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", - "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", - "THROWS", "TRANSIENT", "TRY", "VOID", "VOLATILE", "WHILE", "IntegerLiteral", - "FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", "StringLiteral", - "NullLiteral", "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", - "SEMI", "COMMA", "DOT", "ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION", - "COLON", "EQUAL", "LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", - "SUB", "MUL", "DIV", "BITAND", "BITOR", "CARET", "MOD", "ARROW", "COLONCOLON", - "ADD_ASSIGN", "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", - "OR_ASSIGN", "XOR_ASSIGN", "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", - "URSHIFT_ASSIGN", "Identifier", "AT", "ELLIPSIS", "WS", "COMMENT", "LINE_COMMENT" + null, "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", + "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", + "ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS", + "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", "NEW", "PACKAGE", + "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC", "STRICTFP", + "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS", "TRANSIENT", + "TRY", "VOID", "VOLATILE", "WHILE", "IntegerLiteral", "FloatingPointLiteral", + "BooleanLiteral", "CharacterLiteral", "StringLiteral", "NullLiteral", + "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", "SEMI", "COMMA", + "DOT", "ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION", "COLON", "EQUAL", + "LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", "SUB", "MUL", + "DIV", "BITAND", "BITOR", "CARET", "MOD", "ARROW", "COLONCOLON", "ADD_ASSIGN", + "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", + "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", "Identifier", + "AT", "ELLIPSIS", "WS", "COMMENT", "LINE_COMMENT" }; public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); @@ -148,6 +152,9 @@ public class Java8Lexer extends Lexer { @Override public String getSerializedATN() { return _serializedATN; } + @Override + public String[] getChannelNames() { return channelNames; } + @Override public String[] getModeNames() { return modeNames; } @@ -157,9 +164,9 @@ public class Java8Lexer extends Lexer { @Override public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { switch (ruleIndex) { - case 147: + case 146: return JavaLetter_sempred((RuleContext)_localctx, predIndex); - case 148: + case 147: return JavaLetterOrDigit_sempred((RuleContext)_localctx, predIndex); } return true; @@ -184,7 +191,7 @@ public class Java8Lexer extends Lexer { } public static final String _serializedATN = - "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2n\u044f\b\1\4\2\t"+ + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2m\u0448\b\1\4\2\t"+ "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ @@ -203,378 +210,376 @@ public class Java8Lexer extends Lexer { "\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e"+ "\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092"+ "\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096\4\u0097"+ - "\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b"+ - "\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3"+ - "\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\6\3\6"+ - "\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\t\3\n\3"+ - "\n\3\n\3\n\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3"+ - "\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16\3\16"+ - "\3\16\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\21\3\21\3\21"+ - "\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ - "\3\23\3\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25"+ - "\3\25\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\27\3\30\3\30\3\30"+ - "\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32"+ - "\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34\3\34"+ - "\3\34\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36"+ - "\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3"+ - " \3 \3 \3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#"+ - "\3#\3#\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3%\3%\3%\3%\3%\3%\3%\3&\3&\3&\3&"+ - "\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)"+ - "\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,"+ - "\3,\3,\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3/"+ - "\3/\3/\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\61\3\61\3\61"+ - "\3\61\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63"+ - "\3\63\3\64\3\64\3\64\3\64\3\64\3\64\3\65\3\65\3\65\3\65\5\65\u0294\n\65"+ - "\3\66\3\66\5\66\u0298\n\66\3\67\3\67\5\67\u029c\n\67\38\38\58\u02a0\n"+ - "8\39\39\59\u02a4\n9\3:\3:\3;\3;\3;\5;\u02ab\n;\3;\3;\3;\5;\u02b0\n;\5"+ - ";\u02b2\n;\3<\3<\5<\u02b6\n<\3<\5<\u02b9\n<\3=\3=\5=\u02bd\n=\3>\3>\3"+ - "?\6?\u02c2\n?\r?\16?\u02c3\3@\3@\5@\u02c8\n@\3A\6A\u02cb\nA\rA\16A\u02cc"+ - "\3B\3B\3B\3B\3C\3C\5C\u02d5\nC\3C\5C\u02d8\nC\3D\3D\3E\6E\u02dd\nE\rE"+ - "\16E\u02de\3F\3F\5F\u02e3\nF\3G\3G\5G\u02e7\nG\3G\3G\3H\3H\5H\u02ed\n"+ - "H\3H\5H\u02f0\nH\3I\3I\3J\6J\u02f5\nJ\rJ\16J\u02f6\3K\3K\5K\u02fb\nK\3"+ - "L\3L\3L\3L\3M\3M\5M\u0303\nM\3M\5M\u0306\nM\3N\3N\3O\6O\u030b\nO\rO\16"+ - "O\u030c\3P\3P\5P\u0311\nP\3Q\3Q\5Q\u0315\nQ\3R\3R\3R\5R\u031a\nR\3R\5"+ - "R\u031d\nR\3R\5R\u0320\nR\3R\3R\3R\5R\u0325\nR\3R\5R\u0328\nR\3R\3R\3"+ - "R\5R\u032d\nR\3R\3R\3R\5R\u0332\nR\3S\3S\3S\3T\3T\3U\5U\u033a\nU\3U\3"+ - "U\3V\3V\3W\3W\3X\3X\3X\5X\u0345\nX\3Y\3Y\5Y\u0349\nY\3Y\3Y\3Y\5Y\u034e"+ - "\nY\3Y\3Y\5Y\u0352\nY\3Z\3Z\3Z\3[\3[\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3"+ - "\\\5\\\u0362\n\\\3]\3]\3]\3]\3]\3]\3]\3]\5]\u036c\n]\3^\3^\3_\3_\5_\u0372"+ - "\n_\3_\3_\3`\6`\u0377\n`\r`\16`\u0378\3a\3a\5a\u037d\na\3b\3b\3b\3b\5"+ - "b\u0383\nb\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\5c\u0390\nc\3d\3d\3e\3e\3"+ - "e\3e\3e\3e\3e\3f\3f\3f\3f\3f\3g\3g\3h\3h\3i\3i\3j\3j\3k\3k\3l\3l\3m\3"+ - "m\3n\3n\3o\3o\3p\3p\3q\3q\3r\3r\3s\3s\3t\3t\3u\3u\3v\3v\3w\3w\3w\3x\3"+ - "x\3x\3y\3y\3y\3z\3z\3z\3{\3{\3{\3|\3|\3|\3}\3}\3}\3~\3~\3~\3\177\3\177"+ - "\3\u0080\3\u0080\3\u0081\3\u0081\3\u0082\3\u0082\3\u0083\3\u0083\3\u0084"+ - "\3\u0084\3\u0085\3\u0085\3\u0086\3\u0086\3\u0087\3\u0087\3\u0087\3\u0088"+ - "\3\u0088\3\u0088\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a\3\u008b"+ - "\3\u008b\3\u008b\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008e"+ - "\3\u008e\3\u008e\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090\3\u0091"+ - "\3\u0091\3\u0091\3\u0091\3\u0092\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093"+ - "\3\u0093\3\u0093\3\u0093\3\u0094\3\u0094\7\u0094\u0415\n\u0094\f\u0094"+ - "\16\u0094\u0418\13\u0094\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095"+ - "\5\u0095\u0420\n\u0095\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096"+ - "\5\u0096\u0428\n\u0096\3\u0097\3\u0097\3\u0098\3\u0098\3\u0098\3\u0098"+ - "\3\u0099\6\u0099\u0431\n\u0099\r\u0099\16\u0099\u0432\3\u0099\3\u0099"+ - "\3\u009a\3\u009a\3\u009a\3\u009a\7\u009a\u043b\n\u009a\f\u009a\16\u009a"+ - "\u043e\13\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b"+ - "\3\u009b\3\u009b\7\u009b\u0449\n\u009b\f\u009b\16\u009b\u044c\13\u009b"+ - "\3\u009b\3\u009b\3\u043c\2\u009c\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23"+ - "\13\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31"+ - "\61\32\63\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60"+ - "_\61a\62c\63e\64g\65i\66k\2m\2o\2q\2s\2u\2w\2y\2{\2}\2\177\2\u0081\2\u0083"+ - "\2\u0085\2\u0087\2\u0089\2\u008b\2\u008d\2\u008f\2\u0091\2\u0093\2\u0095"+ - "\2\u0097\2\u0099\2\u009b\2\u009d\2\u009f\2\u00a1\67\u00a3\2\u00a5\2\u00a7"+ - "\2\u00a9\2\u00ab\2\u00ad\2\u00af\2\u00b1\2\u00b3\2\u00b5\2\u00b78\u00b9"+ - "9\u00bb\2\u00bd:\u00bf\2\u00c1\2\u00c3\2\u00c5\2\u00c7\2\u00c9\2\u00cb"+ - ";\u00cd<\u00cf=\u00d1>\u00d3?\u00d5@\u00d7A\u00d9B\u00dbC\u00ddD\u00df"+ - "E\u00e1F\u00e3G\u00e5H\u00e7I\u00e9J\u00ebK\u00edL\u00efM\u00f1N\u00f3"+ - "O\u00f5P\u00f7Q\u00f9R\u00fbS\u00fdT\u00ffU\u0101V\u0103W\u0105X\u0107"+ - "Y\u0109Z\u010b[\u010d\\\u010f]\u0111^\u0113_\u0115`\u0117a\u0119b\u011b"+ - "c\u011dd\u011fe\u0121f\u0123g\u0125h\u0127i\u0129\2\u012b\2\u012dj\u012f"+ - "k\u0131l\u0133m\u0135n\3\2\30\4\2NNnn\3\2\63;\4\2ZZzz\5\2\62;CHch\3\2"+ - "\629\4\2DDdd\3\2\62\63\4\2GGgg\4\2--//\6\2FFHHffhh\4\2RRrr\4\2))^^\4\2"+ - "$$^^\n\2$$))^^ddhhppttvv\3\2\62\65\6\2&&C\\aac|\4\2\2\u0081\ud802\udc01"+ - "\3\2\ud802\udc01\3\2\udc02\ue001\7\2&&\62;C\\aac|\5\2\13\f\16\17\"\"\4"+ - "\2\f\f\17\17\u045d\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13"+ - "\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2"+ - "\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2"+ - "!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3"+ - "\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2"+ - "\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E"+ - "\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2"+ - "\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2"+ - "\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2\u00a1"+ - "\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2\2\u00bd\3\2\2\2\2\u00cb\3\2\2"+ - "\2\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5"+ - "\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2\2\2\2\u00dd\3\2\2"+ - "\2\2\u00df\3\2\2\2\2\u00e1\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5\3\2\2\2\2\u00e7"+ - "\3\2\2\2\2\u00e9\3\2\2\2\2\u00eb\3\2\2\2\2\u00ed\3\2\2\2\2\u00ef\3\2\2"+ - "\2\2\u00f1\3\2\2\2\2\u00f3\3\2\2\2\2\u00f5\3\2\2\2\2\u00f7\3\2\2\2\2\u00f9"+ - "\3\2\2\2\2\u00fb\3\2\2\2\2\u00fd\3\2\2\2\2\u00ff\3\2\2\2\2\u0101\3\2\2"+ - "\2\2\u0103\3\2\2\2\2\u0105\3\2\2\2\2\u0107\3\2\2\2\2\u0109\3\2\2\2\2\u010b"+ - "\3\2\2\2\2\u010d\3\2\2\2\2\u010f\3\2\2\2\2\u0111\3\2\2\2\2\u0113\3\2\2"+ - "\2\2\u0115\3\2\2\2\2\u0117\3\2\2\2\2\u0119\3\2\2\2\2\u011b\3\2\2\2\2\u011d"+ - "\3\2\2\2\2\u011f\3\2\2\2\2\u0121\3\2\2\2\2\u0123\3\2\2\2\2\u0125\3\2\2"+ - "\2\2\u0127\3\2\2\2\2\u012d\3\2\2\2\2\u012f\3\2\2\2\2\u0131\3\2\2\2\2\u0133"+ - "\3\2\2\2\2\u0135\3\2\2\2\3\u0137\3\2\2\2\5\u013c\3\2\2\2\7\u0145\3\2\2"+ - "\2\t\u014c\3\2\2\2\13\u0154\3\2\2\2\r\u015a\3\2\2\2\17\u015f\3\2\2\2\21"+ - "\u0164\3\2\2\2\23\u016a\3\2\2\2\25\u016f\3\2\2\2\27\u0175\3\2\2\2\31\u017b"+ - "\3\2\2\2\33\u0184\3\2\2\2\35\u018c\3\2\2\2\37\u018f\3\2\2\2!\u0196\3\2"+ - "\2\2#\u019b\3\2\2\2%\u01a0\3\2\2\2\'\u01a8\3\2\2\2)\u01ae\3\2\2\2+\u01b6"+ - "\3\2\2\2-\u01bc\3\2\2\2/\u01c0\3\2\2\2\61\u01c3\3\2\2\2\63\u01c8\3\2\2"+ - "\2\65\u01d3\3\2\2\2\67\u01da\3\2\2\29\u01e5\3\2\2\2;\u01e9\3\2\2\2=\u01f3"+ - "\3\2\2\2?\u01f8\3\2\2\2A\u01ff\3\2\2\2C\u0203\3\2\2\2E\u020b\3\2\2\2G"+ - "\u0213\3\2\2\2I\u021d\3\2\2\2K\u0224\3\2\2\2M\u022b\3\2\2\2O\u0231\3\2"+ - "\2\2Q\u0238\3\2\2\2S\u0241\3\2\2\2U\u0247\3\2\2\2W\u024e\3\2\2\2Y\u025b"+ - "\3\2\2\2[\u0260\3\2\2\2]\u0266\3\2\2\2_\u026d\3\2\2\2a\u0277\3\2\2\2c"+ - "\u027b\3\2\2\2e\u0280\3\2\2\2g\u0289\3\2\2\2i\u0293\3\2\2\2k\u0295\3\2"+ - "\2\2m\u0299\3\2\2\2o\u029d\3\2\2\2q\u02a1\3\2\2\2s\u02a5\3\2\2\2u\u02b1"+ - "\3\2\2\2w\u02b3\3\2\2\2y\u02bc\3\2\2\2{\u02be\3\2\2\2}\u02c1\3\2\2\2\177"+ - "\u02c7\3\2\2\2\u0081\u02ca\3\2\2\2\u0083\u02ce\3\2\2\2\u0085\u02d2\3\2"+ - "\2\2\u0087\u02d9\3\2\2\2\u0089\u02dc\3\2\2\2\u008b\u02e2\3\2\2\2\u008d"+ - "\u02e4\3\2\2\2\u008f\u02ea\3\2\2\2\u0091\u02f1\3\2\2\2\u0093\u02f4\3\2"+ - "\2\2\u0095\u02fa\3\2\2\2\u0097\u02fc\3\2\2\2\u0099\u0300\3\2\2\2\u009b"+ - "\u0307\3\2\2\2\u009d\u030a\3\2\2\2\u009f\u0310\3\2\2\2\u00a1\u0314\3\2"+ - "\2\2\u00a3\u0331\3\2\2\2\u00a5\u0333\3\2\2\2\u00a7\u0336\3\2\2\2\u00a9"+ - "\u0339\3\2\2\2\u00ab\u033d\3\2\2\2\u00ad\u033f\3\2\2\2\u00af\u0341\3\2"+ - "\2\2\u00b1\u0351\3\2\2\2\u00b3\u0353\3\2\2\2\u00b5\u0356\3\2\2\2\u00b7"+ - "\u0361\3\2\2\2\u00b9\u036b\3\2\2\2\u00bb\u036d\3\2\2\2\u00bd\u036f\3\2"+ - "\2\2\u00bf\u0376\3\2\2\2\u00c1\u037c\3\2\2\2\u00c3\u0382\3\2\2\2\u00c5"+ - "\u038f\3\2\2\2\u00c7\u0391\3\2\2\2\u00c9\u0393\3\2\2\2\u00cb\u039a\3\2"+ - "\2\2\u00cd\u039f\3\2\2\2\u00cf\u03a1\3\2\2\2\u00d1\u03a3\3\2\2\2\u00d3"+ - "\u03a5\3\2\2\2\u00d5\u03a7\3\2\2\2\u00d7\u03a9\3\2\2\2\u00d9\u03ab\3\2"+ - "\2\2\u00db\u03ad\3\2\2\2\u00dd\u03af\3\2\2\2\u00df\u03b1\3\2\2\2\u00e1"+ - "\u03b3\3\2\2\2\u00e3\u03b5\3\2\2\2\u00e5\u03b7\3\2\2\2\u00e7\u03b9\3\2"+ - "\2\2\u00e9\u03bb\3\2\2\2\u00eb\u03bd\3\2\2\2\u00ed\u03bf\3\2\2\2\u00ef"+ - "\u03c2\3\2\2\2\u00f1\u03c5\3\2\2\2\u00f3\u03c8\3\2\2\2\u00f5\u03cb\3\2"+ - "\2\2\u00f7\u03ce\3\2\2\2\u00f9\u03d1\3\2\2\2\u00fb\u03d4\3\2\2\2\u00fd"+ - "\u03d7\3\2\2\2\u00ff\u03d9\3\2\2\2\u0101\u03db\3\2\2\2\u0103\u03dd\3\2"+ - "\2\2\u0105\u03df\3\2\2\2\u0107\u03e1\3\2\2\2\u0109\u03e3\3\2\2\2\u010b"+ - "\u03e5\3\2\2\2\u010d\u03e7\3\2\2\2\u010f\u03ea\3\2\2\2\u0111\u03ed\3\2"+ - "\2\2\u0113\u03f0\3\2\2\2\u0115\u03f3\3\2\2\2\u0117\u03f6\3\2\2\2\u0119"+ - "\u03f9\3\2\2\2\u011b\u03fc\3\2\2\2\u011d\u03ff\3\2\2\2\u011f\u0402\3\2"+ - "\2\2\u0121\u0405\3\2\2\2\u0123\u0409\3\2\2\2\u0125\u040d\3\2\2\2\u0127"+ - "\u0412\3\2\2\2\u0129\u041f\3\2\2\2\u012b\u0427\3\2\2\2\u012d\u0429\3\2"+ - "\2\2\u012f\u042b\3\2\2\2\u0131\u0430\3\2\2\2\u0133\u0436\3\2\2\2\u0135"+ - "\u0444\3\2\2\2\u0137\u0138\7c\2\2\u0138\u0139\7w\2\2\u0139\u013a\7v\2"+ - "\2\u013a\u013b\7q\2\2\u013b\4\3\2\2\2\u013c\u013d\7c\2\2\u013d\u013e\7"+ - "d\2\2\u013e\u013f\7u\2\2\u013f\u0140\7v\2\2\u0140\u0141\7t\2\2\u0141\u0142"+ - "\7c\2\2\u0142\u0143\7e\2\2\u0143\u0144\7v\2\2\u0144\6\3\2\2\2\u0145\u0146"+ - "\7c\2\2\u0146\u0147\7u\2\2\u0147\u0148\7u\2\2\u0148\u0149\7g\2\2\u0149"+ - "\u014a\7t\2\2\u014a\u014b\7v\2\2\u014b\b\3\2\2\2\u014c\u014d\7d\2\2\u014d"+ - "\u014e\7q\2\2\u014e\u014f\7q\2\2\u014f\u0150\7n\2\2\u0150\u0151\7g\2\2"+ - "\u0151\u0152\7c\2\2\u0152\u0153\7p\2\2\u0153\n\3\2\2\2\u0154\u0155\7d"+ - "\2\2\u0155\u0156\7t\2\2\u0156\u0157\7g\2\2\u0157\u0158\7c\2\2\u0158\u0159"+ - "\7m\2\2\u0159\f\3\2\2\2\u015a\u015b\7d\2\2\u015b\u015c\7{\2\2\u015c\u015d"+ - "\7v\2\2\u015d\u015e\7g\2\2\u015e\16\3\2\2\2\u015f\u0160\7e\2\2\u0160\u0161"+ - "\7c\2\2\u0161\u0162\7u\2\2\u0162\u0163\7g\2\2\u0163\20\3\2\2\2\u0164\u0165"+ - "\7e\2\2\u0165\u0166\7c\2\2\u0166\u0167\7v\2\2\u0167\u0168\7e\2\2\u0168"+ - "\u0169\7j\2\2\u0169\22\3\2\2\2\u016a\u016b\7e\2\2\u016b\u016c\7j\2\2\u016c"+ - "\u016d\7c\2\2\u016d\u016e\7t\2\2\u016e\24\3\2\2\2\u016f\u0170\7e\2\2\u0170"+ - "\u0171\7n\2\2\u0171\u0172\7c\2\2\u0172\u0173\7u\2\2\u0173\u0174\7u\2\2"+ - "\u0174\26\3\2\2\2\u0175\u0176\7e\2\2\u0176\u0177\7q\2\2\u0177\u0178\7"+ - "p\2\2\u0178\u0179\7u\2\2\u0179\u017a\7v\2\2\u017a\30\3\2\2\2\u017b\u017c"+ - "\7e\2\2\u017c\u017d\7q\2\2\u017d\u017e\7p\2\2\u017e\u017f\7v\2\2\u017f"+ - "\u0180\7k\2\2\u0180\u0181\7p\2\2\u0181\u0182\7w\2\2\u0182\u0183\7g\2\2"+ - "\u0183\32\3\2\2\2\u0184\u0185\7f\2\2\u0185\u0186\7g\2\2\u0186\u0187\7"+ - "h\2\2\u0187\u0188\7c\2\2\u0188\u0189\7w\2\2\u0189\u018a\7n\2\2\u018a\u018b"+ - "\7v\2\2\u018b\34\3\2\2\2\u018c\u018d\7f\2\2\u018d\u018e\7q\2\2\u018e\36"+ - "\3\2\2\2\u018f\u0190\7f\2\2\u0190\u0191\7q\2\2\u0191\u0192\7w\2\2\u0192"+ - "\u0193\7d\2\2\u0193\u0194\7n\2\2\u0194\u0195\7g\2\2\u0195 \3\2\2\2\u0196"+ - "\u0197\7g\2\2\u0197\u0198\7n\2\2\u0198\u0199\7u\2\2\u0199\u019a\7g\2\2"+ - "\u019a\"\3\2\2\2\u019b\u019c\7g\2\2\u019c\u019d\7p\2\2\u019d\u019e\7w"+ - "\2\2\u019e\u019f\7o\2\2\u019f$\3\2\2\2\u01a0\u01a1\7g\2\2\u01a1\u01a2"+ - "\7z\2\2\u01a2\u01a3\7v\2\2\u01a3\u01a4\7g\2\2\u01a4\u01a5\7p\2\2\u01a5"+ - "\u01a6\7f\2\2\u01a6\u01a7\7u\2\2\u01a7&\3\2\2\2\u01a8\u01a9\7h\2\2\u01a9"+ - "\u01aa\7k\2\2\u01aa\u01ab\7p\2\2\u01ab\u01ac\7c\2\2\u01ac\u01ad\7n\2\2"+ - "\u01ad(\3\2\2\2\u01ae\u01af\7h\2\2\u01af\u01b0\7k\2\2\u01b0\u01b1\7p\2"+ - "\2\u01b1\u01b2\7c\2\2\u01b2\u01b3\7n\2\2\u01b3\u01b4\7n\2\2\u01b4\u01b5"+ - "\7{\2\2\u01b5*\3\2\2\2\u01b6\u01b7\7h\2\2\u01b7\u01b8\7n\2\2\u01b8\u01b9"+ - "\7q\2\2\u01b9\u01ba\7c\2\2\u01ba\u01bb\7v\2\2\u01bb,\3\2\2\2\u01bc\u01bd"+ - "\7h\2\2\u01bd\u01be\7q\2\2\u01be\u01bf\7t\2\2\u01bf.\3\2\2\2\u01c0\u01c1"+ - "\7k\2\2\u01c1\u01c2\7h\2\2\u01c2\60\3\2\2\2\u01c3\u01c4\7i\2\2\u01c4\u01c5"+ - "\7q\2\2\u01c5\u01c6\7v\2\2\u01c6\u01c7\7q\2\2\u01c7\62\3\2\2\2\u01c8\u01c9"+ - "\7k\2\2\u01c9\u01ca\7o\2\2\u01ca\u01cb\7r\2\2\u01cb\u01cc\7n\2\2\u01cc"+ - "\u01cd\7g\2\2\u01cd\u01ce\7o\2\2\u01ce\u01cf\7g\2\2\u01cf\u01d0\7p\2\2"+ - "\u01d0\u01d1\7v\2\2\u01d1\u01d2\7u\2\2\u01d2\64\3\2\2\2\u01d3\u01d4\7"+ - "k\2\2\u01d4\u01d5\7o\2\2\u01d5\u01d6\7r\2\2\u01d6\u01d7\7q\2\2\u01d7\u01d8"+ - "\7t\2\2\u01d8\u01d9\7v\2\2\u01d9\66\3\2\2\2\u01da\u01db\7k\2\2\u01db\u01dc"+ - "\7p\2\2\u01dc\u01dd\7u\2\2\u01dd\u01de\7v\2\2\u01de\u01df\7c\2\2\u01df"+ - "\u01e0\7p\2\2\u01e0\u01e1\7e\2\2\u01e1\u01e2\7g\2\2\u01e2\u01e3\7q\2\2"+ - "\u01e3\u01e4\7h\2\2\u01e48\3\2\2\2\u01e5\u01e6\7k\2\2\u01e6\u01e7\7p\2"+ - "\2\u01e7\u01e8\7v\2\2\u01e8:\3\2\2\2\u01e9\u01ea\7k\2\2\u01ea\u01eb\7"+ - "p\2\2\u01eb\u01ec\7v\2\2\u01ec\u01ed\7g\2\2\u01ed\u01ee\7t\2\2\u01ee\u01ef"+ - "\7h\2\2\u01ef\u01f0\7c\2\2\u01f0\u01f1\7e\2\2\u01f1\u01f2\7g\2\2\u01f2"+ - "<\3\2\2\2\u01f3\u01f4\7n\2\2\u01f4\u01f5\7q\2\2\u01f5\u01f6\7p\2\2\u01f6"+ - "\u01f7\7i\2\2\u01f7>\3\2\2\2\u01f8\u01f9\7p\2\2\u01f9\u01fa\7c\2\2\u01fa"+ - "\u01fb\7v\2\2\u01fb\u01fc\7k\2\2\u01fc\u01fd\7x\2\2\u01fd\u01fe\7g\2\2"+ - "\u01fe@\3\2\2\2\u01ff\u0200\7p\2\2\u0200\u0201\7g\2\2\u0201\u0202\7y\2"+ - "\2\u0202B\3\2\2\2\u0203\u0204\7r\2\2\u0204\u0205\7c\2\2\u0205\u0206\7"+ - "e\2\2\u0206\u0207\7m\2\2\u0207\u0208\7c\2\2\u0208\u0209\7i\2\2\u0209\u020a"+ - "\7g\2\2\u020aD\3\2\2\2\u020b\u020c\7r\2\2\u020c\u020d\7t\2\2\u020d\u020e"+ - "\7k\2\2\u020e\u020f\7x\2\2\u020f\u0210\7c\2\2\u0210\u0211\7v\2\2\u0211"+ - "\u0212\7g\2\2\u0212F\3\2\2\2\u0213\u0214\7r\2\2\u0214\u0215\7t\2\2\u0215"+ - "\u0216\7q\2\2\u0216\u0217\7v\2\2\u0217\u0218\7g\2\2\u0218\u0219\7e\2\2"+ - "\u0219\u021a\7v\2\2\u021a\u021b\7g\2\2\u021b\u021c\7f\2\2\u021cH\3\2\2"+ - "\2\u021d\u021e\7r\2\2\u021e\u021f\7w\2\2\u021f\u0220\7d\2\2\u0220\u0221"+ - "\7n\2\2\u0221\u0222\7k\2\2\u0222\u0223\7e\2\2\u0223J\3\2\2\2\u0224\u0225"+ - "\7t\2\2\u0225\u0226\7g\2\2\u0226\u0227\7v\2\2\u0227\u0228\7w\2\2\u0228"+ - "\u0229\7t\2\2\u0229\u022a\7p\2\2\u022aL\3\2\2\2\u022b\u022c\7u\2\2\u022c"+ - "\u022d\7j\2\2\u022d\u022e\7q\2\2\u022e\u022f\7t\2\2\u022f\u0230\7v\2\2"+ - "\u0230N\3\2\2\2\u0231\u0232\7u\2\2\u0232\u0233\7v\2\2\u0233\u0234\7c\2"+ - "\2\u0234\u0235\7v\2\2\u0235\u0236\7k\2\2\u0236\u0237\7e\2\2\u0237P\3\2"+ - "\2\2\u0238\u0239\7u\2\2\u0239\u023a\7v\2\2\u023a\u023b\7t\2\2\u023b\u023c"+ - "\7k\2\2\u023c\u023d\7e\2\2\u023d\u023e\7v\2\2\u023e\u023f\7h\2\2\u023f"+ - "\u0240\7r\2\2\u0240R\3\2\2\2\u0241\u0242\7u\2\2\u0242\u0243\7w\2\2\u0243"+ - "\u0244\7r\2\2\u0244\u0245\7g\2\2\u0245\u0246\7t\2\2\u0246T\3\2\2\2\u0247"+ - "\u0248\7u\2\2\u0248\u0249\7y\2\2\u0249\u024a\7k\2\2\u024a\u024b\7v\2\2"+ - "\u024b\u024c\7e\2\2\u024c\u024d\7j\2\2\u024dV\3\2\2\2\u024e\u024f\7u\2"+ - "\2\u024f\u0250\7{\2\2\u0250\u0251\7p\2\2\u0251\u0252\7e\2\2\u0252\u0253"+ - "\7j\2\2\u0253\u0254\7t\2\2\u0254\u0255\7q\2\2\u0255\u0256\7p\2\2\u0256"+ - "\u0257\7k\2\2\u0257\u0258\7|\2\2\u0258\u0259\7g\2\2\u0259\u025a\7f\2\2"+ - "\u025aX\3\2\2\2\u025b\u025c\7v\2\2\u025c\u025d\7j\2\2\u025d\u025e\7k\2"+ - "\2\u025e\u025f\7u\2\2\u025fZ\3\2\2\2\u0260\u0261\7v\2\2\u0261\u0262\7"+ - "j\2\2\u0262\u0263\7t\2\2\u0263\u0264\7q\2\2\u0264\u0265\7y\2\2\u0265\\"+ - "\3\2\2\2\u0266\u0267\7v\2\2\u0267\u0268\7j\2\2\u0268\u0269\7t\2\2\u0269"+ - "\u026a\7q\2\2\u026a\u026b\7y\2\2\u026b\u026c\7u\2\2\u026c^\3\2\2\2\u026d"+ - "\u026e\7v\2\2\u026e\u026f\7t\2\2\u026f\u0270\7c\2\2\u0270\u0271\7p\2\2"+ - "\u0271\u0272\7u\2\2\u0272\u0273\7k\2\2\u0273\u0274\7g\2\2\u0274\u0275"+ - "\7p\2\2\u0275\u0276\7v\2\2\u0276`\3\2\2\2\u0277\u0278\7v\2\2\u0278\u0279"+ - "\7t\2\2\u0279\u027a\7{\2\2\u027ab\3\2\2\2\u027b\u027c\7x\2\2\u027c\u027d"+ - "\7q\2\2\u027d\u027e\7k\2\2\u027e\u027f\7f\2\2\u027fd\3\2\2\2\u0280\u0281"+ - "\7x\2\2\u0281\u0282\7q\2\2\u0282\u0283\7n\2\2\u0283\u0284\7c\2\2\u0284"+ - "\u0285\7v\2\2\u0285\u0286\7k\2\2\u0286\u0287\7n\2\2\u0287\u0288\7g\2\2"+ - "\u0288f\3\2\2\2\u0289\u028a\7y\2\2\u028a\u028b\7j\2\2\u028b\u028c\7k\2"+ - "\2\u028c\u028d\7n\2\2\u028d\u028e\7g\2\2\u028eh\3\2\2\2\u028f\u0294\5"+ - "k\66\2\u0290\u0294\5m\67\2\u0291\u0294\5o8\2\u0292\u0294\5q9\2\u0293\u028f"+ - "\3\2\2\2\u0293\u0290\3\2\2\2\u0293\u0291\3\2\2\2\u0293\u0292\3\2\2\2\u0294"+ - "j\3\2\2\2\u0295\u0297\5u;\2\u0296\u0298\5s:\2\u0297\u0296\3\2\2\2\u0297"+ - "\u0298\3\2\2\2\u0298l\3\2\2\2\u0299\u029b\5\u0083B\2\u029a\u029c\5s:\2"+ - "\u029b\u029a\3\2\2\2\u029b\u029c\3\2\2\2\u029cn\3\2\2\2\u029d\u029f\5"+ - "\u008dG\2\u029e\u02a0\5s:\2\u029f\u029e\3\2\2\2\u029f\u02a0\3\2\2\2\u02a0"+ - "p\3\2\2\2\u02a1\u02a3\5\u0097L\2\u02a2\u02a4\5s:\2\u02a3\u02a2\3\2\2\2"+ - "\u02a3\u02a4\3\2\2\2\u02a4r\3\2\2\2\u02a5\u02a6\t\2\2\2\u02a6t\3\2\2\2"+ - "\u02a7\u02b2\7\62\2\2\u02a8\u02af\5{>\2\u02a9\u02ab\5w<\2\u02aa\u02a9"+ - "\3\2\2\2\u02aa\u02ab\3\2\2\2\u02ab\u02b0\3\2\2\2\u02ac\u02ad\5\u0081A"+ - "\2\u02ad\u02ae\5w<\2\u02ae\u02b0\3\2\2\2\u02af\u02aa\3\2\2\2\u02af\u02ac"+ - "\3\2\2\2\u02b0\u02b2\3\2\2\2\u02b1\u02a7\3\2\2\2\u02b1\u02a8\3\2\2\2\u02b2"+ - "v\3\2\2\2\u02b3\u02b8\5y=\2\u02b4\u02b6\5}?\2\u02b5\u02b4\3\2\2\2\u02b5"+ - "\u02b6\3\2\2\2\u02b6\u02b7\3\2\2\2\u02b7\u02b9\5y=\2\u02b8\u02b5\3\2\2"+ - "\2\u02b8\u02b9\3\2\2\2\u02b9x\3\2\2\2\u02ba\u02bd\7\62\2\2\u02bb\u02bd"+ - "\5{>\2\u02bc\u02ba\3\2\2\2\u02bc\u02bb\3\2\2\2\u02bdz\3\2\2\2\u02be\u02bf"+ - "\t\3\2\2\u02bf|\3\2\2\2\u02c0\u02c2\5\177@\2\u02c1\u02c0\3\2\2\2\u02c2"+ - "\u02c3\3\2\2\2\u02c3\u02c1\3\2\2\2\u02c3\u02c4\3\2\2\2\u02c4~\3\2\2\2"+ - "\u02c5\u02c8\5y=\2\u02c6\u02c8\7a\2\2\u02c7\u02c5\3\2\2\2\u02c7\u02c6"+ - "\3\2\2\2\u02c8\u0080\3\2\2\2\u02c9\u02cb\7a\2\2\u02ca\u02c9\3\2\2\2\u02cb"+ - "\u02cc\3\2\2\2\u02cc\u02ca\3\2\2\2\u02cc\u02cd\3\2\2\2\u02cd\u0082\3\2"+ - "\2\2\u02ce\u02cf\7\62\2\2\u02cf\u02d0\t\4\2\2\u02d0\u02d1\5\u0085C\2\u02d1"+ - "\u0084\3\2\2\2\u02d2\u02d7\5\u0087D\2\u02d3\u02d5\5\u0089E\2\u02d4\u02d3"+ - "\3\2\2\2\u02d4\u02d5\3\2\2\2\u02d5\u02d6\3\2\2\2\u02d6\u02d8\5\u0087D"+ - "\2\u02d7\u02d4\3\2\2\2\u02d7\u02d8\3\2\2\2\u02d8\u0086\3\2\2\2\u02d9\u02da"+ - "\t\5\2\2\u02da\u0088\3\2\2\2\u02db\u02dd\5\u008bF\2\u02dc\u02db\3\2\2"+ - "\2\u02dd\u02de\3\2\2\2\u02de\u02dc\3\2\2\2\u02de\u02df\3\2\2\2\u02df\u008a"+ - "\3\2\2\2\u02e0\u02e3\5\u0087D\2\u02e1\u02e3\7a\2\2\u02e2\u02e0\3\2\2\2"+ - "\u02e2\u02e1\3\2\2\2\u02e3\u008c\3\2\2\2\u02e4\u02e6\7\62\2\2\u02e5\u02e7"+ - "\5\u0081A\2\u02e6\u02e5\3\2\2\2\u02e6\u02e7\3\2\2\2\u02e7\u02e8\3\2\2"+ - "\2\u02e8\u02e9\5\u008fH\2\u02e9\u008e\3\2\2\2\u02ea\u02ef\5\u0091I\2\u02eb"+ - "\u02ed\5\u0093J\2\u02ec\u02eb\3\2\2\2\u02ec\u02ed\3\2\2\2\u02ed\u02ee"+ - "\3\2\2\2\u02ee\u02f0\5\u0091I\2\u02ef\u02ec\3\2\2\2\u02ef\u02f0\3\2\2"+ - "\2\u02f0\u0090\3\2\2\2\u02f1\u02f2\t\6\2\2\u02f2\u0092\3\2\2\2\u02f3\u02f5"+ - "\5\u0095K\2\u02f4\u02f3\3\2\2\2\u02f5\u02f6\3\2\2\2\u02f6\u02f4\3\2\2"+ - "\2\u02f6\u02f7\3\2\2\2\u02f7\u0094\3\2\2\2\u02f8\u02fb\5\u0091I\2\u02f9"+ - "\u02fb\7a\2\2\u02fa\u02f8\3\2\2\2\u02fa\u02f9\3\2\2\2\u02fb\u0096\3\2"+ - "\2\2\u02fc\u02fd\7\62\2\2\u02fd\u02fe\t\7\2\2\u02fe\u02ff\5\u0099M\2\u02ff"+ - "\u0098\3\2\2\2\u0300\u0305\5\u009bN\2\u0301\u0303\5\u009dO\2\u0302\u0301"+ - "\3\2\2\2\u0302\u0303\3\2\2\2\u0303\u0304\3\2\2\2\u0304\u0306\5\u009bN"+ - "\2\u0305\u0302\3\2\2\2\u0305\u0306\3\2\2\2\u0306\u009a\3\2\2\2\u0307\u0308"+ - "\t\b\2\2\u0308\u009c\3\2\2\2\u0309\u030b\5\u009fP\2\u030a\u0309\3\2\2"+ - "\2\u030b\u030c\3\2\2\2\u030c\u030a\3\2\2\2\u030c\u030d\3\2\2\2\u030d\u009e"+ - "\3\2\2\2\u030e\u0311\5\u009bN\2\u030f\u0311\7a\2\2\u0310\u030e\3\2\2\2"+ - "\u0310\u030f\3\2\2\2\u0311\u00a0\3\2\2\2\u0312\u0315\5\u00a3R\2\u0313"+ - "\u0315\5\u00afX\2\u0314\u0312\3\2\2\2\u0314\u0313\3\2\2\2\u0315\u00a2"+ - "\3\2\2\2\u0316\u0317\5w<\2\u0317\u0319\7\60\2\2\u0318\u031a\5w<\2\u0319"+ - "\u0318\3\2\2\2\u0319\u031a\3\2\2\2\u031a\u031c\3\2\2\2\u031b\u031d\5\u00a5"+ - "S\2\u031c\u031b\3\2\2\2\u031c\u031d\3\2\2\2\u031d\u031f\3\2\2\2\u031e"+ - "\u0320\5\u00adW\2\u031f\u031e\3\2\2\2\u031f\u0320\3\2\2\2\u0320\u0332"+ - "\3\2\2\2\u0321\u0322\7\60\2\2\u0322\u0324\5w<\2\u0323\u0325\5\u00a5S\2"+ - "\u0324\u0323\3\2\2\2\u0324\u0325\3\2\2\2\u0325\u0327\3\2\2\2\u0326\u0328"+ - "\5\u00adW\2\u0327\u0326\3\2\2\2\u0327\u0328\3\2\2\2\u0328\u0332\3\2\2"+ - "\2\u0329\u032a\5w<\2\u032a\u032c\5\u00a5S\2\u032b\u032d\5\u00adW\2\u032c"+ - "\u032b\3\2\2\2\u032c\u032d\3\2\2\2\u032d\u0332\3\2\2\2\u032e\u032f\5w"+ - "<\2\u032f\u0330\5\u00adW\2\u0330\u0332\3\2\2\2\u0331\u0316\3\2\2\2\u0331"+ - "\u0321\3\2\2\2\u0331\u0329\3\2\2\2\u0331\u032e\3\2\2\2\u0332\u00a4\3\2"+ - "\2\2\u0333\u0334\5\u00a7T\2\u0334\u0335\5\u00a9U\2\u0335\u00a6\3\2\2\2"+ - "\u0336\u0337\t\t\2\2\u0337\u00a8\3\2\2\2\u0338\u033a\5\u00abV\2\u0339"+ - "\u0338\3\2\2\2\u0339\u033a\3\2\2\2\u033a\u033b\3\2\2\2\u033b\u033c\5w"+ - "<\2\u033c\u00aa\3\2\2\2\u033d\u033e\t\n\2\2\u033e\u00ac\3\2\2\2\u033f"+ - "\u0340\t\13\2\2\u0340\u00ae\3\2\2\2\u0341\u0342\5\u00b1Y\2\u0342\u0344"+ - "\5\u00b3Z\2\u0343\u0345\5\u00adW\2\u0344\u0343\3\2\2\2\u0344\u0345\3\2"+ - "\2\2\u0345\u00b0\3\2\2\2\u0346\u0348\5\u0083B\2\u0347\u0349\7\60\2\2\u0348"+ - "\u0347\3\2\2\2\u0348\u0349\3\2\2\2\u0349\u0352\3\2\2\2\u034a\u034b\7\62"+ - "\2\2\u034b\u034d\t\4\2\2\u034c\u034e\5\u0085C\2\u034d\u034c\3\2\2\2\u034d"+ - "\u034e\3\2\2\2\u034e\u034f\3\2\2\2\u034f\u0350\7\60\2\2\u0350\u0352\5"+ - "\u0085C\2\u0351\u0346\3\2\2\2\u0351\u034a\3\2\2\2\u0352\u00b2\3\2\2\2"+ - "\u0353\u0354\5\u00b5[\2\u0354\u0355\5\u00a9U\2\u0355\u00b4\3\2\2\2\u0356"+ - "\u0357\t\f\2\2\u0357\u00b6\3\2\2\2\u0358\u0359\7v\2\2\u0359\u035a\7t\2"+ - "\2\u035a\u035b\7w\2\2\u035b\u0362\7g\2\2\u035c\u035d\7h\2\2\u035d\u035e"+ - "\7c\2\2\u035e\u035f\7n\2\2\u035f\u0360\7u\2\2\u0360\u0362\7g\2\2\u0361"+ - "\u0358\3\2\2\2\u0361\u035c\3\2\2\2\u0362\u00b8\3\2\2\2\u0363\u0364\7)"+ - "\2\2\u0364\u0365\5\u00bb^\2\u0365\u0366\7)\2\2\u0366\u036c\3\2\2\2\u0367"+ - "\u0368\7)\2\2\u0368\u0369\5\u00c3b\2\u0369\u036a\7)\2\2\u036a\u036c\3"+ - "\2\2\2\u036b\u0363\3\2\2\2\u036b\u0367\3\2\2\2\u036c\u00ba\3\2\2\2\u036d"+ - "\u036e\n\r\2\2\u036e\u00bc\3\2\2\2\u036f\u0371\7$\2\2\u0370\u0372\5\u00bf"+ - "`\2\u0371\u0370\3\2\2\2\u0371\u0372\3\2\2\2\u0372\u0373\3\2\2\2\u0373"+ - "\u0374\7$\2\2\u0374\u00be\3\2\2\2\u0375\u0377\5\u00c1a\2\u0376\u0375\3"+ - "\2\2\2\u0377\u0378\3\2\2\2\u0378\u0376\3\2\2\2\u0378\u0379\3\2\2\2\u0379"+ - "\u00c0\3\2\2\2\u037a\u037d\n\16\2\2\u037b\u037d\5\u00c3b\2\u037c\u037a"+ - "\3\2\2\2\u037c\u037b\3\2\2\2\u037d\u00c2\3\2\2\2\u037e\u037f\7^\2\2\u037f"+ - "\u0383\t\17\2\2\u0380\u0383\5\u00c5c\2\u0381\u0383\5\u00c9e\2\u0382\u037e"+ - "\3\2\2\2\u0382\u0380\3\2\2\2\u0382\u0381\3\2\2\2\u0383\u00c4\3\2\2\2\u0384"+ - "\u0385\7^\2\2\u0385\u0390\5\u0091I\2\u0386\u0387\7^\2\2\u0387\u0388\5"+ - "\u0091I\2\u0388\u0389\5\u0091I\2\u0389\u0390\3\2\2\2\u038a\u038b\7^\2"+ - "\2\u038b\u038c\5\u00c7d\2\u038c\u038d\5\u0091I\2\u038d\u038e\5\u0091I"+ - "\2\u038e\u0390\3\2\2\2\u038f\u0384\3\2\2\2\u038f\u0386\3\2\2\2\u038f\u038a"+ - "\3\2\2\2\u0390\u00c6\3\2\2\2\u0391\u0392\t\20\2\2\u0392\u00c8\3\2\2\2"+ - "\u0393\u0394\7^\2\2\u0394\u0395\7w\2\2\u0395\u0396\5\u0087D\2\u0396\u0397"+ - "\5\u0087D\2\u0397\u0398\5\u0087D\2\u0398\u0399\5\u0087D\2\u0399\u00ca"+ - "\3\2\2\2\u039a\u039b\7p\2\2\u039b\u039c\7w\2\2\u039c\u039d\7n\2\2\u039d"+ - "\u039e\7n\2\2\u039e\u00cc\3\2\2\2\u039f\u03a0\7*\2\2\u03a0\u00ce\3\2\2"+ - "\2\u03a1\u03a2\7+\2\2\u03a2\u00d0\3\2\2\2\u03a3\u03a4\7}\2\2\u03a4\u00d2"+ - "\3\2\2\2\u03a5\u03a6\7\177\2\2\u03a6\u00d4\3\2\2\2\u03a7\u03a8\7]\2\2"+ - "\u03a8\u00d6\3\2\2\2\u03a9\u03aa\7_\2\2\u03aa\u00d8\3\2\2\2\u03ab\u03ac"+ - "\7=\2\2\u03ac\u00da\3\2\2\2\u03ad\u03ae\7.\2\2\u03ae\u00dc\3\2\2\2\u03af"+ - "\u03b0\7\60\2\2\u03b0\u00de\3\2\2\2\u03b1\u03b2\7?\2\2\u03b2\u00e0\3\2"+ - "\2\2\u03b3\u03b4\7@\2\2\u03b4\u00e2\3\2\2\2\u03b5\u03b6\7>\2\2\u03b6\u00e4"+ - "\3\2\2\2\u03b7\u03b8\7#\2\2\u03b8\u00e6\3\2\2\2\u03b9\u03ba\7\u0080\2"+ - "\2\u03ba\u00e8\3\2\2\2\u03bb\u03bc\7A\2\2\u03bc\u00ea\3\2\2\2\u03bd\u03be"+ - "\7<\2\2\u03be\u00ec\3\2\2\2\u03bf\u03c0\7?\2\2\u03c0\u03c1\7?\2\2\u03c1"+ - "\u00ee\3\2\2\2\u03c2\u03c3\7>\2\2\u03c3\u03c4\7?\2\2\u03c4\u00f0\3\2\2"+ - "\2\u03c5\u03c6\7@\2\2\u03c6\u03c7\7?\2\2\u03c7\u00f2\3\2\2\2\u03c8\u03c9"+ - "\7#\2\2\u03c9\u03ca\7?\2\2\u03ca\u00f4\3\2\2\2\u03cb\u03cc\7(\2\2\u03cc"+ - "\u03cd\7(\2\2\u03cd\u00f6\3\2\2\2\u03ce\u03cf\7~\2\2\u03cf\u03d0\7~\2"+ - "\2\u03d0\u00f8\3\2\2\2\u03d1\u03d2\7-\2\2\u03d2\u03d3\7-\2\2\u03d3\u00fa"+ - "\3\2\2\2\u03d4\u03d5\7/\2\2\u03d5\u03d6\7/\2\2\u03d6\u00fc\3\2\2\2\u03d7"+ - "\u03d8\7-\2\2\u03d8\u00fe\3\2\2\2\u03d9\u03da\7/\2\2\u03da\u0100\3\2\2"+ - "\2\u03db\u03dc\7,\2\2\u03dc\u0102\3\2\2\2\u03dd\u03de\7\61\2\2\u03de\u0104"+ - "\3\2\2\2\u03df\u03e0\7(\2\2\u03e0\u0106\3\2\2\2\u03e1\u03e2\7~\2\2\u03e2"+ - "\u0108\3\2\2\2\u03e3\u03e4\7`\2\2\u03e4\u010a\3\2\2\2\u03e5\u03e6\7\'"+ - "\2\2\u03e6\u010c\3\2\2\2\u03e7\u03e8\7/\2\2\u03e8\u03e9\7@\2\2\u03e9\u010e"+ - "\3\2\2\2\u03ea\u03eb\7<\2\2\u03eb\u03ec\7<\2\2\u03ec\u0110\3\2\2\2\u03ed"+ - "\u03ee\7-\2\2\u03ee\u03ef\7?\2\2\u03ef\u0112\3\2\2\2\u03f0\u03f1\7/\2"+ - "\2\u03f1\u03f2\7?\2\2\u03f2\u0114\3\2\2\2\u03f3\u03f4\7,\2\2\u03f4\u03f5"+ - "\7?\2\2\u03f5\u0116\3\2\2\2\u03f6\u03f7\7\61\2\2\u03f7\u03f8\7?\2\2\u03f8"+ - "\u0118\3\2\2\2\u03f9\u03fa\7(\2\2\u03fa\u03fb\7?\2\2\u03fb\u011a\3\2\2"+ - "\2\u03fc\u03fd\7~\2\2\u03fd\u03fe\7?\2\2\u03fe\u011c\3\2\2\2\u03ff\u0400"+ - "\7`\2\2\u0400\u0401\7?\2\2\u0401\u011e\3\2\2\2\u0402\u0403\7\'\2\2\u0403"+ - "\u0404\7?\2\2\u0404\u0120\3\2\2\2\u0405\u0406\7>\2\2\u0406\u0407\7>\2"+ - "\2\u0407\u0408\7?\2\2\u0408\u0122\3\2\2\2\u0409\u040a\7@\2\2\u040a\u040b"+ - "\7@\2\2\u040b\u040c\7?\2\2\u040c\u0124\3\2\2\2\u040d\u040e\7@\2\2\u040e"+ - "\u040f\7@\2\2\u040f\u0410\7@\2\2\u0410\u0411\7?\2\2\u0411\u0126\3\2\2"+ - "\2\u0412\u0416\5\u0129\u0095\2\u0413\u0415\5\u012b\u0096\2\u0414\u0413"+ - "\3\2\2\2\u0415\u0418\3\2\2\2\u0416\u0414\3\2\2\2\u0416\u0417\3\2\2\2\u0417"+ - "\u0128\3\2\2\2\u0418\u0416\3\2\2\2\u0419\u0420\t\21\2\2\u041a\u041b\n"+ - "\22\2\2\u041b\u0420\6\u0095\2\2\u041c\u041d\t\23\2\2\u041d\u041e\t\24"+ - "\2\2\u041e\u0420\6\u0095\3\2\u041f\u0419\3\2\2\2\u041f\u041a\3\2\2\2\u041f"+ - "\u041c\3\2\2\2\u0420\u012a\3\2\2\2\u0421\u0428\t\25\2\2\u0422\u0423\n"+ - "\22\2\2\u0423\u0428\6\u0096\4\2\u0424\u0425\t\23\2\2\u0425\u0426\t\24"+ - "\2\2\u0426\u0428\6\u0096\5\2\u0427\u0421\3\2\2\2\u0427\u0422\3\2\2\2\u0427"+ - "\u0424\3\2\2\2\u0428\u012c\3\2\2\2\u0429\u042a\7B\2\2\u042a\u012e\3\2"+ - "\2\2\u042b\u042c\7\60\2\2\u042c\u042d\7\60\2\2\u042d\u042e\7\60\2\2\u042e"+ - "\u0130\3\2\2\2\u042f\u0431\t\26\2\2\u0430\u042f\3\2\2\2\u0431\u0432\3"+ - "\2\2\2\u0432\u0430\3\2\2\2\u0432\u0433\3\2\2\2\u0433\u0434\3\2\2\2\u0434"+ - "\u0435\b\u0099\2\2\u0435\u0132\3\2\2\2\u0436\u0437\7\61\2\2\u0437\u0438"+ - "\7,\2\2\u0438\u043c\3\2\2\2\u0439\u043b\13\2\2\2\u043a\u0439\3\2\2\2\u043b"+ - "\u043e\3\2\2\2\u043c\u043d\3\2\2\2\u043c\u043a\3\2\2\2\u043d\u043f\3\2"+ - "\2\2\u043e\u043c\3\2\2\2\u043f\u0440\7,\2\2\u0440\u0441\7\61\2\2\u0441"+ - "\u0442\3\2\2\2\u0442\u0443\b\u009a\2\2\u0443\u0134\3\2\2\2\u0444\u0445"+ - "\7\61\2\2\u0445\u0446\7\61\2\2\u0446\u044a\3\2\2\2\u0447\u0449\n\27\2"+ - "\2\u0448\u0447\3\2\2\2\u0449\u044c\3\2\2\2\u044a\u0448\3\2\2\2\u044a\u044b"+ - "\3\2\2\2\u044b\u044d\3\2\2\2\u044c\u044a\3\2\2\2\u044d\u044e\b\u009b\2"+ - "\2\u044e\u0136\3\2\2\28\2\u0293\u0297\u029b\u029f\u02a3\u02aa\u02af\u02b1"+ - "\u02b5\u02b8\u02bc\u02c3\u02c7\u02cc\u02d4\u02d7\u02de\u02e2\u02e6\u02ec"+ - "\u02ef\u02f6\u02fa\u0302\u0305\u030c\u0310\u0314\u0319\u031c\u031f\u0324"+ - "\u0327\u032c\u0331\u0339\u0344\u0348\u034d\u0351\u0361\u036b\u0371\u0378"+ - "\u037c\u0382\u038f\u0416\u041f\u0427\u0432\u043c\u044a\3\b\2\2"; + "\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\3\2\3\2\3\2\3"+ + "\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\3\4"+ + "\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3"+ + "\7\3\7\3\b\3\b\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n"+ + "\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f"+ + "\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3"+ + "\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\22\3"+ + "\22\3\22\3\22\3\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3"+ + "\24\3\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\26\3"+ + "\26\3\26\3\26\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\30\3\31\3\31\3\31\3"+ + "\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3"+ + "\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3"+ + "\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\36\3\36\3"+ + "\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3!\3!\3!"+ + "\3!\3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3#\3"+ + "#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3%\3%\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3"+ + "\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3"+ + ")\3*\3*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3,\3,\3"+ + ",\3,\3,\3-\3-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3/\3/\3/\3"+ + "/\3/\3/\3\60\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3\61\3\62\3\62\3\62\3"+ + "\62\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\64\3\64\3"+ + "\64\3\64\5\64\u028d\n\64\3\65\3\65\5\65\u0291\n\65\3\66\3\66\5\66\u0295"+ + "\n\66\3\67\3\67\5\67\u0299\n\67\38\38\58\u029d\n8\39\39\3:\3:\3:\5:\u02a4"+ + "\n:\3:\3:\3:\5:\u02a9\n:\5:\u02ab\n:\3;\3;\5;\u02af\n;\3;\5;\u02b2\n;"+ + "\3<\3<\5<\u02b6\n<\3=\3=\3>\6>\u02bb\n>\r>\16>\u02bc\3?\3?\5?\u02c1\n"+ + "?\3@\6@\u02c4\n@\r@\16@\u02c5\3A\3A\3A\3A\3B\3B\5B\u02ce\nB\3B\5B\u02d1"+ + "\nB\3C\3C\3D\6D\u02d6\nD\rD\16D\u02d7\3E\3E\5E\u02dc\nE\3F\3F\5F\u02e0"+ + "\nF\3F\3F\3G\3G\5G\u02e6\nG\3G\5G\u02e9\nG\3H\3H\3I\6I\u02ee\nI\rI\16"+ + "I\u02ef\3J\3J\5J\u02f4\nJ\3K\3K\3K\3K\3L\3L\5L\u02fc\nL\3L\5L\u02ff\n"+ + "L\3M\3M\3N\6N\u0304\nN\rN\16N\u0305\3O\3O\5O\u030a\nO\3P\3P\5P\u030e\n"+ + "P\3Q\3Q\3Q\5Q\u0313\nQ\3Q\5Q\u0316\nQ\3Q\5Q\u0319\nQ\3Q\3Q\3Q\5Q\u031e"+ + "\nQ\3Q\5Q\u0321\nQ\3Q\3Q\3Q\5Q\u0326\nQ\3Q\3Q\3Q\5Q\u032b\nQ\3R\3R\3R"+ + "\3S\3S\3T\5T\u0333\nT\3T\3T\3U\3U\3V\3V\3W\3W\3W\5W\u033e\nW\3X\3X\5X"+ + "\u0342\nX\3X\3X\3X\5X\u0347\nX\3X\3X\5X\u034b\nX\3Y\3Y\3Y\3Z\3Z\3[\3["+ + "\3[\3[\3[\3[\3[\3[\3[\5[\u035b\n[\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\5\\"+ + "\u0365\n\\\3]\3]\3^\3^\5^\u036b\n^\3^\3^\3_\6_\u0370\n_\r_\16_\u0371\3"+ + "`\3`\5`\u0376\n`\3a\3a\3a\3a\5a\u037c\na\3b\3b\3b\3b\3b\3b\3b\3b\3b\3"+ + "b\3b\5b\u0389\nb\3c\3c\3d\3d\3d\3d\3d\3d\3d\3e\3e\3e\3e\3e\3f\3f\3g\3"+ + "g\3h\3h\3i\3i\3j\3j\3k\3k\3l\3l\3m\3m\3n\3n\3o\3o\3p\3p\3q\3q\3r\3r\3"+ + "s\3s\3t\3t\3u\3u\3v\3v\3v\3w\3w\3w\3x\3x\3x\3y\3y\3y\3z\3z\3z\3{\3{\3"+ + "{\3|\3|\3|\3}\3}\3}\3~\3~\3\177\3\177\3\u0080\3\u0080\3\u0081\3\u0081"+ + "\3\u0082\3\u0082\3\u0083\3\u0083\3\u0084\3\u0084\3\u0085\3\u0085\3\u0086"+ + "\3\u0086\3\u0086\3\u0087\3\u0087\3\u0087\3\u0088\3\u0088\3\u0088\3\u0089"+ + "\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b\3\u008b\3\u008c"+ + "\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008e\3\u008e\3\u008e\3\u008f"+ + "\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091"+ + "\3\u0091\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093\7\u0093"+ + "\u040e\n\u0093\f\u0093\16\u0093\u0411\13\u0093\3\u0094\3\u0094\3\u0094"+ + "\3\u0094\3\u0094\3\u0094\5\u0094\u0419\n\u0094\3\u0095\3\u0095\3\u0095"+ + "\3\u0095\3\u0095\3\u0095\5\u0095\u0421\n\u0095\3\u0096\3\u0096\3\u0097"+ + "\3\u0097\3\u0097\3\u0097\3\u0098\6\u0098\u042a\n\u0098\r\u0098\16\u0098"+ + "\u042b\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099\3\u0099\7\u0099\u0434\n"+ + "\u0099\f\u0099\16\u0099\u0437\13\u0099\3\u0099\3\u0099\3\u0099\3\u0099"+ + "\3\u0099\3\u009a\3\u009a\3\u009a\3\u009a\7\u009a\u0442\n\u009a\f\u009a"+ + "\16\u009a\u0445\13\u009a\3\u009a\3\u009a\3\u0435\2\u009b\3\3\5\4\7\5\t"+ + "\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23"+ + "%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67\359\36;\37= ?!A\"C#E$G"+ + "%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\64g\65i\2k\2m\2o\2q\2s\2u\2w\2"+ + "y\2{\2}\2\177\2\u0081\2\u0083\2\u0085\2\u0087\2\u0089\2\u008b\2\u008d"+ + "\2\u008f\2\u0091\2\u0093\2\u0095\2\u0097\2\u0099\2\u009b\2\u009d\2\u009f"+ + "\66\u00a1\2\u00a3\2\u00a5\2\u00a7\2\u00a9\2\u00ab\2\u00ad\2\u00af\2\u00b1"+ + "\2\u00b3\2\u00b5\67\u00b78\u00b9\2\u00bb9\u00bd\2\u00bf\2\u00c1\2\u00c3"+ + "\2\u00c5\2\u00c7\2\u00c9:\u00cb;\u00cd<\u00cf=\u00d1>\u00d3?\u00d5@\u00d7"+ + "A\u00d9B\u00dbC\u00ddD\u00dfE\u00e1F\u00e3G\u00e5H\u00e7I\u00e9J\u00eb"+ + "K\u00edL\u00efM\u00f1N\u00f3O\u00f5P\u00f7Q\u00f9R\u00fbS\u00fdT\u00ff"+ + "U\u0101V\u0103W\u0105X\u0107Y\u0109Z\u010b[\u010d\\\u010f]\u0111^\u0113"+ + "_\u0115`\u0117a\u0119b\u011bc\u011dd\u011fe\u0121f\u0123g\u0125h\u0127"+ + "\2\u0129\2\u012bi\u012dj\u012fk\u0131l\u0133m\3\2\30\4\2NNnn\3\2\63;\4"+ + "\2ZZzz\5\2\62;CHch\3\2\629\4\2DDdd\3\2\62\63\4\2GGgg\4\2--//\6\2FFHHf"+ + "fhh\4\2RRrr\4\2))^^\4\2$$^^\n\2$$))^^ddhhppttvv\3\2\62\65\6\2&&C\\aac"+ + "|\4\2\2\u0081\ud802\udc01\3\2\ud802\udc01\3\2\udc02\ue001\7\2&&\62;C\\"+ + "aac|\5\2\13\f\16\17\"\"\4\2\f\f\17\17\2\u0456\2\3\3\2\2\2\2\5\3\2\2\2"+ + "\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3"+ + "\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2"+ + "\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2"+ + "\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2"+ + "\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2"+ + "\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2"+ + "\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y"+ + "\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2"+ + "\2\2\2g\3\2\2\2\2\u009f\3\2\2\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2\2\u00bb"+ + "\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2\2\2\u00cd\3\2\2\2\2\u00cf\3\2\2"+ + "\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9"+ + "\3\2\2\2\2\u00db\3\2\2\2\2\u00dd\3\2\2\2\2\u00df\3\2\2\2\2\u00e1\3\2\2"+ + "\2\2\u00e3\3\2\2\2\2\u00e5\3\2\2\2\2\u00e7\3\2\2\2\2\u00e9\3\2\2\2\2\u00eb"+ + "\3\2\2\2\2\u00ed\3\2\2\2\2\u00ef\3\2\2\2\2\u00f1\3\2\2\2\2\u00f3\3\2\2"+ + "\2\2\u00f5\3\2\2\2\2\u00f7\3\2\2\2\2\u00f9\3\2\2\2\2\u00fb\3\2\2\2\2\u00fd"+ + "\3\2\2\2\2\u00ff\3\2\2\2\2\u0101\3\2\2\2\2\u0103\3\2\2\2\2\u0105\3\2\2"+ + "\2\2\u0107\3\2\2\2\2\u0109\3\2\2\2\2\u010b\3\2\2\2\2\u010d\3\2\2\2\2\u010f"+ + "\3\2\2\2\2\u0111\3\2\2\2\2\u0113\3\2\2\2\2\u0115\3\2\2\2\2\u0117\3\2\2"+ + "\2\2\u0119\3\2\2\2\2\u011b\3\2\2\2\2\u011d\3\2\2\2\2\u011f\3\2\2\2\2\u0121"+ + "\3\2\2\2\2\u0123\3\2\2\2\2\u0125\3\2\2\2\2\u012b\3\2\2\2\2\u012d\3\2\2"+ + "\2\2\u012f\3\2\2\2\2\u0131\3\2\2\2\2\u0133\3\2\2\2\3\u0135\3\2\2\2\5\u013e"+ + "\3\2\2\2\7\u0145\3\2\2\2\t\u014d\3\2\2\2\13\u0153\3\2\2\2\r\u0158\3\2"+ + "\2\2\17\u015d\3\2\2\2\21\u0163\3\2\2\2\23\u0168\3\2\2\2\25\u016e\3\2\2"+ + "\2\27\u0174\3\2\2\2\31\u017d\3\2\2\2\33\u0185\3\2\2\2\35\u0188\3\2\2\2"+ + "\37\u018f\3\2\2\2!\u0194\3\2\2\2#\u0199\3\2\2\2%\u01a1\3\2\2\2\'\u01a7"+ + "\3\2\2\2)\u01af\3\2\2\2+\u01b5\3\2\2\2-\u01b9\3\2\2\2/\u01bc\3\2\2\2\61"+ + "\u01c1\3\2\2\2\63\u01cc\3\2\2\2\65\u01d3\3\2\2\2\67\u01de\3\2\2\29\u01e2"+ + "\3\2\2\2;\u01ec\3\2\2\2=\u01f1\3\2\2\2?\u01f8\3\2\2\2A\u01fc\3\2\2\2C"+ + "\u0204\3\2\2\2E\u020c\3\2\2\2G\u0216\3\2\2\2I\u021d\3\2\2\2K\u0224\3\2"+ + "\2\2M\u022a\3\2\2\2O\u0231\3\2\2\2Q\u023a\3\2\2\2S\u0240\3\2\2\2U\u0247"+ + "\3\2\2\2W\u0254\3\2\2\2Y\u0259\3\2\2\2[\u025f\3\2\2\2]\u0266\3\2\2\2_"+ + "\u0270\3\2\2\2a\u0274\3\2\2\2c\u0279\3\2\2\2e\u0282\3\2\2\2g\u028c\3\2"+ + "\2\2i\u028e\3\2\2\2k\u0292\3\2\2\2m\u0296\3\2\2\2o\u029a\3\2\2\2q\u029e"+ + "\3\2\2\2s\u02aa\3\2\2\2u\u02ac\3\2\2\2w\u02b5\3\2\2\2y\u02b7\3\2\2\2{"+ + "\u02ba\3\2\2\2}\u02c0\3\2\2\2\177\u02c3\3\2\2\2\u0081\u02c7\3\2\2\2\u0083"+ + "\u02cb\3\2\2\2\u0085\u02d2\3\2\2\2\u0087\u02d5\3\2\2\2\u0089\u02db\3\2"+ + "\2\2\u008b\u02dd\3\2\2\2\u008d\u02e3\3\2\2\2\u008f\u02ea\3\2\2\2\u0091"+ + "\u02ed\3\2\2\2\u0093\u02f3\3\2\2\2\u0095\u02f5\3\2\2\2\u0097\u02f9\3\2"+ + "\2\2\u0099\u0300\3\2\2\2\u009b\u0303\3\2\2\2\u009d\u0309\3\2\2\2\u009f"+ + "\u030d\3\2\2\2\u00a1\u032a\3\2\2\2\u00a3\u032c\3\2\2\2\u00a5\u032f\3\2"+ + "\2\2\u00a7\u0332\3\2\2\2\u00a9\u0336\3\2\2\2\u00ab\u0338\3\2\2\2\u00ad"+ + "\u033a\3\2\2\2\u00af\u034a\3\2\2\2\u00b1\u034c\3\2\2\2\u00b3\u034f\3\2"+ + "\2\2\u00b5\u035a\3\2\2\2\u00b7\u0364\3\2\2\2\u00b9\u0366\3\2\2\2\u00bb"+ + "\u0368\3\2\2\2\u00bd\u036f\3\2\2\2\u00bf\u0375\3\2\2\2\u00c1\u037b\3\2"+ + "\2\2\u00c3\u0388\3\2\2\2\u00c5\u038a\3\2\2\2\u00c7\u038c\3\2\2\2\u00c9"+ + "\u0393\3\2\2\2\u00cb\u0398\3\2\2\2\u00cd\u039a\3\2\2\2\u00cf\u039c\3\2"+ + "\2\2\u00d1\u039e\3\2\2\2\u00d3\u03a0\3\2\2\2\u00d5\u03a2\3\2\2\2\u00d7"+ + "\u03a4\3\2\2\2\u00d9\u03a6\3\2\2\2\u00db\u03a8\3\2\2\2\u00dd\u03aa\3\2"+ + "\2\2\u00df\u03ac\3\2\2\2\u00e1\u03ae\3\2\2\2\u00e3\u03b0\3\2\2\2\u00e5"+ + "\u03b2\3\2\2\2\u00e7\u03b4\3\2\2\2\u00e9\u03b6\3\2\2\2\u00eb\u03b8\3\2"+ + "\2\2\u00ed\u03bb\3\2\2\2\u00ef\u03be\3\2\2\2\u00f1\u03c1\3\2\2\2\u00f3"+ + "\u03c4\3\2\2\2\u00f5\u03c7\3\2\2\2\u00f7\u03ca\3\2\2\2\u00f9\u03cd\3\2"+ + "\2\2\u00fb\u03d0\3\2\2\2\u00fd\u03d2\3\2\2\2\u00ff\u03d4\3\2\2\2\u0101"+ + "\u03d6\3\2\2\2\u0103\u03d8\3\2\2\2\u0105\u03da\3\2\2\2\u0107\u03dc\3\2"+ + "\2\2\u0109\u03de\3\2\2\2\u010b\u03e0\3\2\2\2\u010d\u03e3\3\2\2\2\u010f"+ + "\u03e6\3\2\2\2\u0111\u03e9\3\2\2\2\u0113\u03ec\3\2\2\2\u0115\u03ef\3\2"+ + "\2\2\u0117\u03f2\3\2\2\2\u0119\u03f5\3\2\2\2\u011b\u03f8\3\2\2\2\u011d"+ + "\u03fb\3\2\2\2\u011f\u03fe\3\2\2\2\u0121\u0402\3\2\2\2\u0123\u0406\3\2"+ + "\2\2\u0125\u040b\3\2\2\2\u0127\u0418\3\2\2\2\u0129\u0420\3\2\2\2\u012b"+ + "\u0422\3\2\2\2\u012d\u0424\3\2\2\2\u012f\u0429\3\2\2\2\u0131\u042f\3\2"+ + "\2\2\u0133\u043d\3\2\2\2\u0135\u0136\7c\2\2\u0136\u0137\7d\2\2\u0137\u0138"+ + "\7u\2\2\u0138\u0139\7v\2\2\u0139\u013a\7t\2\2\u013a\u013b\7c\2\2\u013b"+ + "\u013c\7e\2\2\u013c\u013d\7v\2\2\u013d\4\3\2\2\2\u013e\u013f\7c\2\2\u013f"+ + "\u0140\7u\2\2\u0140\u0141\7u\2\2\u0141\u0142\7g\2\2\u0142\u0143\7t\2\2"+ + "\u0143\u0144\7v\2\2\u0144\6\3\2\2\2\u0145\u0146\7d\2\2\u0146\u0147\7q"+ + "\2\2\u0147\u0148\7q\2\2\u0148\u0149\7n\2\2\u0149\u014a\7g\2\2\u014a\u014b"+ + "\7c\2\2\u014b\u014c\7p\2\2\u014c\b\3\2\2\2\u014d\u014e\7d\2\2\u014e\u014f"+ + "\7t\2\2\u014f\u0150\7g\2\2\u0150\u0151\7c\2\2\u0151\u0152\7m\2\2\u0152"+ + "\n\3\2\2\2\u0153\u0154\7d\2\2\u0154\u0155\7{\2\2\u0155\u0156\7v\2\2\u0156"+ + "\u0157\7g\2\2\u0157\f\3\2\2\2\u0158\u0159\7e\2\2\u0159\u015a\7c\2\2\u015a"+ + "\u015b\7u\2\2\u015b\u015c\7g\2\2\u015c\16\3\2\2\2\u015d\u015e\7e\2\2\u015e"+ + "\u015f\7c\2\2\u015f\u0160\7v\2\2\u0160\u0161\7e\2\2\u0161\u0162\7j\2\2"+ + "\u0162\20\3\2\2\2\u0163\u0164\7e\2\2\u0164\u0165\7j\2\2\u0165\u0166\7"+ + "c\2\2\u0166\u0167\7t\2\2\u0167\22\3\2\2\2\u0168\u0169\7e\2\2\u0169\u016a"+ + "\7n\2\2\u016a\u016b\7c\2\2\u016b\u016c\7u\2\2\u016c\u016d\7u\2\2\u016d"+ + "\24\3\2\2\2\u016e\u016f\7e\2\2\u016f\u0170\7q\2\2\u0170\u0171\7p\2\2\u0171"+ + "\u0172\7u\2\2\u0172\u0173\7v\2\2\u0173\26\3\2\2\2\u0174\u0175\7e\2\2\u0175"+ + "\u0176\7q\2\2\u0176\u0177\7p\2\2\u0177\u0178\7v\2\2\u0178\u0179\7k\2\2"+ + "\u0179\u017a\7p\2\2\u017a\u017b\7w\2\2\u017b\u017c\7g\2\2\u017c\30\3\2"+ + "\2\2\u017d\u017e\7f\2\2\u017e\u017f\7g\2\2\u017f\u0180\7h\2\2\u0180\u0181"+ + "\7c\2\2\u0181\u0182\7w\2\2\u0182\u0183\7n\2\2\u0183\u0184\7v\2\2\u0184"+ + "\32\3\2\2\2\u0185\u0186\7f\2\2\u0186\u0187\7q\2\2\u0187\34\3\2\2\2\u0188"+ + "\u0189\7f\2\2\u0189\u018a\7q\2\2\u018a\u018b\7w\2\2\u018b\u018c\7d\2\2"+ + "\u018c\u018d\7n\2\2\u018d\u018e\7g\2\2\u018e\36\3\2\2\2\u018f\u0190\7"+ + "g\2\2\u0190\u0191\7n\2\2\u0191\u0192\7u\2\2\u0192\u0193\7g\2\2\u0193 "+ + "\3\2\2\2\u0194\u0195\7g\2\2\u0195\u0196\7p\2\2\u0196\u0197\7w\2\2\u0197"+ + "\u0198\7o\2\2\u0198\"\3\2\2\2\u0199\u019a\7g\2\2\u019a\u019b\7z\2\2\u019b"+ + "\u019c\7v\2\2\u019c\u019d\7g\2\2\u019d\u019e\7p\2\2\u019e\u019f\7f\2\2"+ + "\u019f\u01a0\7u\2\2\u01a0$\3\2\2\2\u01a1\u01a2\7h\2\2\u01a2\u01a3\7k\2"+ + "\2\u01a3\u01a4\7p\2\2\u01a4\u01a5\7c\2\2\u01a5\u01a6\7n\2\2\u01a6&\3\2"+ + "\2\2\u01a7\u01a8\7h\2\2\u01a8\u01a9\7k\2\2\u01a9\u01aa\7p\2\2\u01aa\u01ab"+ + "\7c\2\2\u01ab\u01ac\7n\2\2\u01ac\u01ad\7n\2\2\u01ad\u01ae\7{\2\2\u01ae"+ + "(\3\2\2\2\u01af\u01b0\7h\2\2\u01b0\u01b1\7n\2\2\u01b1\u01b2\7q\2\2\u01b2"+ + "\u01b3\7c\2\2\u01b3\u01b4\7v\2\2\u01b4*\3\2\2\2\u01b5\u01b6\7h\2\2\u01b6"+ + "\u01b7\7q\2\2\u01b7\u01b8\7t\2\2\u01b8,\3\2\2\2\u01b9\u01ba\7k\2\2\u01ba"+ + "\u01bb\7h\2\2\u01bb.\3\2\2\2\u01bc\u01bd\7i\2\2\u01bd\u01be\7q\2\2\u01be"+ + "\u01bf\7v\2\2\u01bf\u01c0\7q\2\2\u01c0\60\3\2\2\2\u01c1\u01c2\7k\2\2\u01c2"+ + "\u01c3\7o\2\2\u01c3\u01c4\7r\2\2\u01c4\u01c5\7n\2\2\u01c5\u01c6\7g\2\2"+ + "\u01c6\u01c7\7o\2\2\u01c7\u01c8\7g\2\2\u01c8\u01c9\7p\2\2\u01c9\u01ca"+ + "\7v\2\2\u01ca\u01cb\7u\2\2\u01cb\62\3\2\2\2\u01cc\u01cd\7k\2\2\u01cd\u01ce"+ + "\7o\2\2\u01ce\u01cf\7r\2\2\u01cf\u01d0\7q\2\2\u01d0\u01d1\7t\2\2\u01d1"+ + "\u01d2\7v\2\2\u01d2\64\3\2\2\2\u01d3\u01d4\7k\2\2\u01d4\u01d5\7p\2\2\u01d5"+ + "\u01d6\7u\2\2\u01d6\u01d7\7v\2\2\u01d7\u01d8\7c\2\2\u01d8\u01d9\7p\2\2"+ + "\u01d9\u01da\7e\2\2\u01da\u01db\7g\2\2\u01db\u01dc\7q\2\2\u01dc\u01dd"+ + "\7h\2\2\u01dd\66\3\2\2\2\u01de\u01df\7k\2\2\u01df\u01e0\7p\2\2\u01e0\u01e1"+ + "\7v\2\2\u01e18\3\2\2\2\u01e2\u01e3\7k\2\2\u01e3\u01e4\7p\2\2\u01e4\u01e5"+ + "\7v\2\2\u01e5\u01e6\7g\2\2\u01e6\u01e7\7t\2\2\u01e7\u01e8\7h\2\2\u01e8"+ + "\u01e9\7c\2\2\u01e9\u01ea\7e\2\2\u01ea\u01eb\7g\2\2\u01eb:\3\2\2\2\u01ec"+ + "\u01ed\7n\2\2\u01ed\u01ee\7q\2\2\u01ee\u01ef\7p\2\2\u01ef\u01f0\7i\2\2"+ + "\u01f0<\3\2\2\2\u01f1\u01f2\7p\2\2\u01f2\u01f3\7c\2\2\u01f3\u01f4\7v\2"+ + "\2\u01f4\u01f5\7k\2\2\u01f5\u01f6\7x\2\2\u01f6\u01f7\7g\2\2\u01f7>\3\2"+ + "\2\2\u01f8\u01f9\7p\2\2\u01f9\u01fa\7g\2\2\u01fa\u01fb\7y\2\2\u01fb@\3"+ + "\2\2\2\u01fc\u01fd\7r\2\2\u01fd\u01fe\7c\2\2\u01fe\u01ff\7e\2\2\u01ff"+ + "\u0200\7m\2\2\u0200\u0201\7c\2\2\u0201\u0202\7i\2\2\u0202\u0203\7g\2\2"+ + "\u0203B\3\2\2\2\u0204\u0205\7r\2\2\u0205\u0206\7t\2\2\u0206\u0207\7k\2"+ + "\2\u0207\u0208\7x\2\2\u0208\u0209\7c\2\2\u0209\u020a\7v\2\2\u020a\u020b"+ + "\7g\2\2\u020bD\3\2\2\2\u020c\u020d\7r\2\2\u020d\u020e\7t\2\2\u020e\u020f"+ + "\7q\2\2\u020f\u0210\7v\2\2\u0210\u0211\7g\2\2\u0211\u0212\7e\2\2\u0212"+ + "\u0213\7v\2\2\u0213\u0214\7g\2\2\u0214\u0215\7f\2\2\u0215F\3\2\2\2\u0216"+ + "\u0217\7r\2\2\u0217\u0218\7w\2\2\u0218\u0219\7d\2\2\u0219\u021a\7n\2\2"+ + "\u021a\u021b\7k\2\2\u021b\u021c\7e\2\2\u021cH\3\2\2\2\u021d\u021e\7t\2"+ + "\2\u021e\u021f\7g\2\2\u021f\u0220\7v\2\2\u0220\u0221\7w\2\2\u0221\u0222"+ + "\7t\2\2\u0222\u0223\7p\2\2\u0223J\3\2\2\2\u0224\u0225\7u\2\2\u0225\u0226"+ + "\7j\2\2\u0226\u0227\7q\2\2\u0227\u0228\7t\2\2\u0228\u0229\7v\2\2\u0229"+ + "L\3\2\2\2\u022a\u022b\7u\2\2\u022b\u022c\7v\2\2\u022c\u022d\7c\2\2\u022d"+ + "\u022e\7v\2\2\u022e\u022f\7k\2\2\u022f\u0230\7e\2\2\u0230N\3\2\2\2\u0231"+ + "\u0232\7u\2\2\u0232\u0233\7v\2\2\u0233\u0234\7t\2\2\u0234\u0235\7k\2\2"+ + "\u0235\u0236\7e\2\2\u0236\u0237\7v\2\2\u0237\u0238\7h\2\2\u0238\u0239"+ + "\7r\2\2\u0239P\3\2\2\2\u023a\u023b\7u\2\2\u023b\u023c\7w\2\2\u023c\u023d"+ + "\7r\2\2\u023d\u023e\7g\2\2\u023e\u023f\7t\2\2\u023fR\3\2\2\2\u0240\u0241"+ + "\7u\2\2\u0241\u0242\7y\2\2\u0242\u0243\7k\2\2\u0243\u0244\7v\2\2\u0244"+ + "\u0245\7e\2\2\u0245\u0246\7j\2\2\u0246T\3\2\2\2\u0247\u0248\7u\2\2\u0248"+ + "\u0249\7{\2\2\u0249\u024a\7p\2\2\u024a\u024b\7e\2\2\u024b\u024c\7j\2\2"+ + "\u024c\u024d\7t\2\2\u024d\u024e\7q\2\2\u024e\u024f\7p\2\2\u024f\u0250"+ + "\7k\2\2\u0250\u0251\7|\2\2\u0251\u0252\7g\2\2\u0252\u0253\7f\2\2\u0253"+ + "V\3\2\2\2\u0254\u0255\7v\2\2\u0255\u0256\7j\2\2\u0256\u0257\7k\2\2\u0257"+ + "\u0258\7u\2\2\u0258X\3\2\2\2\u0259\u025a\7v\2\2\u025a\u025b\7j\2\2\u025b"+ + "\u025c\7t\2\2\u025c\u025d\7q\2\2\u025d\u025e\7y\2\2\u025eZ\3\2\2\2\u025f"+ + "\u0260\7v\2\2\u0260\u0261\7j\2\2\u0261\u0262\7t\2\2\u0262\u0263\7q\2\2"+ + "\u0263\u0264\7y\2\2\u0264\u0265\7u\2\2\u0265\\\3\2\2\2\u0266\u0267\7v"+ + "\2\2\u0267\u0268\7t\2\2\u0268\u0269\7c\2\2\u0269\u026a\7p\2\2\u026a\u026b"+ + "\7u\2\2\u026b\u026c\7k\2\2\u026c\u026d\7g\2\2\u026d\u026e\7p\2\2\u026e"+ + "\u026f\7v\2\2\u026f^\3\2\2\2\u0270\u0271\7v\2\2\u0271\u0272\7t\2\2\u0272"+ + "\u0273\7{\2\2\u0273`\3\2\2\2\u0274\u0275\7x\2\2\u0275\u0276\7q\2\2\u0276"+ + "\u0277\7k\2\2\u0277\u0278\7f\2\2\u0278b\3\2\2\2\u0279\u027a\7x\2\2\u027a"+ + "\u027b\7q\2\2\u027b\u027c\7n\2\2\u027c\u027d\7c\2\2\u027d\u027e\7v\2\2"+ + "\u027e\u027f\7k\2\2\u027f\u0280\7n\2\2\u0280\u0281\7g\2\2\u0281d\3\2\2"+ + "\2\u0282\u0283\7y\2\2\u0283\u0284\7j\2\2\u0284\u0285\7k\2\2\u0285\u0286"+ + "\7n\2\2\u0286\u0287\7g\2\2\u0287f\3\2\2\2\u0288\u028d\5i\65\2\u0289\u028d"+ + "\5k\66\2\u028a\u028d\5m\67\2\u028b\u028d\5o8\2\u028c\u0288\3\2\2\2\u028c"+ + "\u0289\3\2\2\2\u028c\u028a\3\2\2\2\u028c\u028b\3\2\2\2\u028dh\3\2\2\2"+ + "\u028e\u0290\5s:\2\u028f\u0291\5q9\2\u0290\u028f\3\2\2\2\u0290\u0291\3"+ + "\2\2\2\u0291j\3\2\2\2\u0292\u0294\5\u0081A\2\u0293\u0295\5q9\2\u0294\u0293"+ + "\3\2\2\2\u0294\u0295\3\2\2\2\u0295l\3\2\2\2\u0296\u0298\5\u008bF\2\u0297"+ + "\u0299\5q9\2\u0298\u0297\3\2\2\2\u0298\u0299\3\2\2\2\u0299n\3\2\2\2\u029a"+ + "\u029c\5\u0095K\2\u029b\u029d\5q9\2\u029c\u029b\3\2\2\2\u029c\u029d\3"+ + "\2\2\2\u029dp\3\2\2\2\u029e\u029f\t\2\2\2\u029fr\3\2\2\2\u02a0\u02ab\7"+ + "\62\2\2\u02a1\u02a8\5y=\2\u02a2\u02a4\5u;\2\u02a3\u02a2\3\2\2\2\u02a3"+ + "\u02a4\3\2\2\2\u02a4\u02a9\3\2\2\2\u02a5\u02a6\5\177@\2\u02a6\u02a7\5"+ + "u;\2\u02a7\u02a9\3\2\2\2\u02a8\u02a3\3\2\2\2\u02a8\u02a5\3\2\2\2\u02a9"+ + "\u02ab\3\2\2\2\u02aa\u02a0\3\2\2\2\u02aa\u02a1\3\2\2\2\u02abt\3\2\2\2"+ + "\u02ac\u02b1\5w<\2\u02ad\u02af\5{>\2\u02ae\u02ad\3\2\2\2\u02ae\u02af\3"+ + "\2\2\2\u02af\u02b0\3\2\2\2\u02b0\u02b2\5w<\2\u02b1\u02ae\3\2\2\2\u02b1"+ + "\u02b2\3\2\2\2\u02b2v\3\2\2\2\u02b3\u02b6\7\62\2\2\u02b4\u02b6\5y=\2\u02b5"+ + "\u02b3\3\2\2\2\u02b5\u02b4\3\2\2\2\u02b6x\3\2\2\2\u02b7\u02b8\t\3\2\2"+ + "\u02b8z\3\2\2\2\u02b9\u02bb\5}?\2\u02ba\u02b9\3\2\2\2\u02bb\u02bc\3\2"+ + "\2\2\u02bc\u02ba\3\2\2\2\u02bc\u02bd\3\2\2\2\u02bd|\3\2\2\2\u02be\u02c1"+ + "\5w<\2\u02bf\u02c1\7a\2\2\u02c0\u02be\3\2\2\2\u02c0\u02bf\3\2\2\2\u02c1"+ + "~\3\2\2\2\u02c2\u02c4\7a\2\2\u02c3\u02c2\3\2\2\2\u02c4\u02c5\3\2\2\2\u02c5"+ + "\u02c3\3\2\2\2\u02c5\u02c6\3\2\2\2\u02c6\u0080\3\2\2\2\u02c7\u02c8\7\62"+ + "\2\2\u02c8\u02c9\t\4\2\2\u02c9\u02ca\5\u0083B\2\u02ca\u0082\3\2\2\2\u02cb"+ + "\u02d0\5\u0085C\2\u02cc\u02ce\5\u0087D\2\u02cd\u02cc\3\2\2\2\u02cd\u02ce"+ + "\3\2\2\2\u02ce\u02cf\3\2\2\2\u02cf\u02d1\5\u0085C\2\u02d0\u02cd\3\2\2"+ + "\2\u02d0\u02d1\3\2\2\2\u02d1\u0084\3\2\2\2\u02d2\u02d3\t\5\2\2\u02d3\u0086"+ + "\3\2\2\2\u02d4\u02d6\5\u0089E\2\u02d5\u02d4\3\2\2\2\u02d6\u02d7\3\2\2"+ + "\2\u02d7\u02d5\3\2\2\2\u02d7\u02d8\3\2\2\2\u02d8\u0088\3\2\2\2\u02d9\u02dc"+ + "\5\u0085C\2\u02da\u02dc\7a\2\2\u02db\u02d9\3\2\2\2\u02db\u02da\3\2\2\2"+ + "\u02dc\u008a\3\2\2\2\u02dd\u02df\7\62\2\2\u02de\u02e0\5\177@\2\u02df\u02de"+ + "\3\2\2\2\u02df\u02e0\3\2\2\2\u02e0\u02e1\3\2\2\2\u02e1\u02e2\5\u008dG"+ + "\2\u02e2\u008c\3\2\2\2\u02e3\u02e8\5\u008fH\2\u02e4\u02e6\5\u0091I\2\u02e5"+ + "\u02e4\3\2\2\2\u02e5\u02e6\3\2\2\2\u02e6\u02e7\3\2\2\2\u02e7\u02e9\5\u008f"+ + "H\2\u02e8\u02e5\3\2\2\2\u02e8\u02e9\3\2\2\2\u02e9\u008e\3\2\2\2\u02ea"+ + "\u02eb\t\6\2\2\u02eb\u0090\3\2\2\2\u02ec\u02ee\5\u0093J\2\u02ed\u02ec"+ + "\3\2\2\2\u02ee\u02ef\3\2\2\2\u02ef\u02ed\3\2\2\2\u02ef\u02f0\3\2\2\2\u02f0"+ + "\u0092\3\2\2\2\u02f1\u02f4\5\u008fH\2\u02f2\u02f4\7a\2\2\u02f3\u02f1\3"+ + "\2\2\2\u02f3\u02f2\3\2\2\2\u02f4\u0094\3\2\2\2\u02f5\u02f6\7\62\2\2\u02f6"+ + "\u02f7\t\7\2\2\u02f7\u02f8\5\u0097L\2\u02f8\u0096\3\2\2\2\u02f9\u02fe"+ + "\5\u0099M\2\u02fa\u02fc\5\u009bN\2\u02fb\u02fa\3\2\2\2\u02fb\u02fc\3\2"+ + "\2\2\u02fc\u02fd\3\2\2\2\u02fd\u02ff\5\u0099M\2\u02fe\u02fb\3\2\2\2\u02fe"+ + "\u02ff\3\2\2\2\u02ff\u0098\3\2\2\2\u0300\u0301\t\b\2\2\u0301\u009a\3\2"+ + "\2\2\u0302\u0304\5\u009dO\2\u0303\u0302\3\2\2\2\u0304\u0305\3\2\2\2\u0305"+ + "\u0303\3\2\2\2\u0305\u0306\3\2\2\2\u0306\u009c\3\2\2\2\u0307\u030a\5\u0099"+ + "M\2\u0308\u030a\7a\2\2\u0309\u0307\3\2\2\2\u0309\u0308\3\2\2\2\u030a\u009e"+ + "\3\2\2\2\u030b\u030e\5\u00a1Q\2\u030c\u030e\5\u00adW\2\u030d\u030b\3\2"+ + "\2\2\u030d\u030c\3\2\2\2\u030e\u00a0\3\2\2\2\u030f\u0310\5u;\2\u0310\u0312"+ + "\7\60\2\2\u0311\u0313\5u;\2\u0312\u0311\3\2\2\2\u0312\u0313\3\2\2\2\u0313"+ + "\u0315\3\2\2\2\u0314\u0316\5\u00a3R\2\u0315\u0314\3\2\2\2\u0315\u0316"+ + "\3\2\2\2\u0316\u0318\3\2\2\2\u0317\u0319\5\u00abV\2\u0318\u0317\3\2\2"+ + "\2\u0318\u0319\3\2\2\2\u0319\u032b\3\2\2\2\u031a\u031b\7\60\2\2\u031b"+ + "\u031d\5u;\2\u031c\u031e\5\u00a3R\2\u031d\u031c\3\2\2\2\u031d\u031e\3"+ + "\2\2\2\u031e\u0320\3\2\2\2\u031f\u0321\5\u00abV\2\u0320\u031f\3\2\2\2"+ + "\u0320\u0321\3\2\2\2\u0321\u032b\3\2\2\2\u0322\u0323\5u;\2\u0323\u0325"+ + "\5\u00a3R\2\u0324\u0326\5\u00abV\2\u0325\u0324\3\2\2\2\u0325\u0326\3\2"+ + "\2\2\u0326\u032b\3\2\2\2\u0327\u0328\5u;\2\u0328\u0329\5\u00abV\2\u0329"+ + "\u032b\3\2\2\2\u032a\u030f\3\2\2\2\u032a\u031a\3\2\2\2\u032a\u0322\3\2"+ + "\2\2\u032a\u0327\3\2\2\2\u032b\u00a2\3\2\2\2\u032c\u032d\5\u00a5S\2\u032d"+ + "\u032e\5\u00a7T\2\u032e\u00a4\3\2\2\2\u032f\u0330\t\t\2\2\u0330\u00a6"+ + "\3\2\2\2\u0331\u0333\5\u00a9U\2\u0332\u0331\3\2\2\2\u0332\u0333\3\2\2"+ + "\2\u0333\u0334\3\2\2\2\u0334\u0335\5u;\2\u0335\u00a8\3\2\2\2\u0336\u0337"+ + "\t\n\2\2\u0337\u00aa\3\2\2\2\u0338\u0339\t\13\2\2\u0339\u00ac\3\2\2\2"+ + "\u033a\u033b\5\u00afX\2\u033b\u033d\5\u00b1Y\2\u033c\u033e\5\u00abV\2"+ + "\u033d\u033c\3\2\2\2\u033d\u033e\3\2\2\2\u033e\u00ae\3\2\2\2\u033f\u0341"+ + "\5\u0081A\2\u0340\u0342\7\60\2\2\u0341\u0340\3\2\2\2\u0341\u0342\3\2\2"+ + "\2\u0342\u034b\3\2\2\2\u0343\u0344\7\62\2\2\u0344\u0346\t\4\2\2\u0345"+ + "\u0347\5\u0083B\2\u0346\u0345\3\2\2\2\u0346\u0347\3\2\2\2\u0347\u0348"+ + "\3\2\2\2\u0348\u0349\7\60\2\2\u0349\u034b\5\u0083B\2\u034a\u033f\3\2\2"+ + "\2\u034a\u0343\3\2\2\2\u034b\u00b0\3\2\2\2\u034c\u034d\5\u00b3Z\2\u034d"+ + "\u034e\5\u00a7T\2\u034e\u00b2\3\2\2\2\u034f\u0350\t\f\2\2\u0350\u00b4"+ + "\3\2\2\2\u0351\u0352\7v\2\2\u0352\u0353\7t\2\2\u0353\u0354\7w\2\2\u0354"+ + "\u035b\7g\2\2\u0355\u0356\7h\2\2\u0356\u0357\7c\2\2\u0357\u0358\7n\2\2"+ + "\u0358\u0359\7u\2\2\u0359\u035b\7g\2\2\u035a\u0351\3\2\2\2\u035a\u0355"+ + "\3\2\2\2\u035b\u00b6\3\2\2\2\u035c\u035d\7)\2\2\u035d\u035e\5\u00b9]\2"+ + "\u035e\u035f\7)\2\2\u035f\u0365\3\2\2\2\u0360\u0361\7)\2\2\u0361\u0362"+ + "\5\u00c1a\2\u0362\u0363\7)\2\2\u0363\u0365\3\2\2\2\u0364\u035c\3\2\2\2"+ + "\u0364\u0360\3\2\2\2\u0365\u00b8\3\2\2\2\u0366\u0367\n\r\2\2\u0367\u00ba"+ + "\3\2\2\2\u0368\u036a\7$\2\2\u0369\u036b\5\u00bd_\2\u036a\u0369\3\2\2\2"+ + "\u036a\u036b\3\2\2\2\u036b\u036c\3\2\2\2\u036c\u036d\7$\2\2\u036d\u00bc"+ + "\3\2\2\2\u036e\u0370\5\u00bf`\2\u036f\u036e\3\2\2\2\u0370\u0371\3\2\2"+ + "\2\u0371\u036f\3\2\2\2\u0371\u0372\3\2\2\2\u0372\u00be\3\2\2\2\u0373\u0376"+ + "\n\16\2\2\u0374\u0376\5\u00c1a\2\u0375\u0373\3\2\2\2\u0375\u0374\3\2\2"+ + "\2\u0376\u00c0\3\2\2\2\u0377\u0378\7^\2\2\u0378\u037c\t\17\2\2\u0379\u037c"+ + "\5\u00c3b\2\u037a\u037c\5\u00c7d\2\u037b\u0377\3\2\2\2\u037b\u0379\3\2"+ + "\2\2\u037b\u037a\3\2\2\2\u037c\u00c2\3\2\2\2\u037d\u037e\7^\2\2\u037e"+ + "\u0389\5\u008fH\2\u037f\u0380\7^\2\2\u0380\u0381\5\u008fH\2\u0381\u0382"+ + "\5\u008fH\2\u0382\u0389\3\2\2\2\u0383\u0384\7^\2\2\u0384\u0385\5\u00c5"+ + "c\2\u0385\u0386\5\u008fH\2\u0386\u0387\5\u008fH\2\u0387\u0389\3\2\2\2"+ + "\u0388\u037d\3\2\2\2\u0388\u037f\3\2\2\2\u0388\u0383\3\2\2\2\u0389\u00c4"+ + "\3\2\2\2\u038a\u038b\t\20\2\2\u038b\u00c6\3\2\2\2\u038c\u038d\7^\2\2\u038d"+ + "\u038e\7w\2\2\u038e\u038f\5\u0085C\2\u038f\u0390\5\u0085C\2\u0390\u0391"+ + "\5\u0085C\2\u0391\u0392\5\u0085C\2\u0392\u00c8\3\2\2\2\u0393\u0394\7p"+ + "\2\2\u0394\u0395\7w\2\2\u0395\u0396\7n\2\2\u0396\u0397\7n\2\2\u0397\u00ca"+ + "\3\2\2\2\u0398\u0399\7*\2\2\u0399\u00cc\3\2\2\2\u039a\u039b\7+\2\2\u039b"+ + "\u00ce\3\2\2\2\u039c\u039d\7}\2\2\u039d\u00d0\3\2\2\2\u039e\u039f\7\177"+ + "\2\2\u039f\u00d2\3\2\2\2\u03a0\u03a1\7]\2\2\u03a1\u00d4\3\2\2\2\u03a2"+ + "\u03a3\7_\2\2\u03a3\u00d6\3\2\2\2\u03a4\u03a5\7=\2\2\u03a5\u00d8\3\2\2"+ + "\2\u03a6\u03a7\7.\2\2\u03a7\u00da\3\2\2\2\u03a8\u03a9\7\60\2\2\u03a9\u00dc"+ + "\3\2\2\2\u03aa\u03ab\7?\2\2\u03ab\u00de\3\2\2\2\u03ac\u03ad\7@\2\2\u03ad"+ + "\u00e0\3\2\2\2\u03ae\u03af\7>\2\2\u03af\u00e2\3\2\2\2\u03b0\u03b1\7#\2"+ + "\2\u03b1\u00e4\3\2\2\2\u03b2\u03b3\7\u0080\2\2\u03b3\u00e6\3\2\2\2\u03b4"+ + "\u03b5\7A\2\2\u03b5\u00e8\3\2\2\2\u03b6\u03b7\7<\2\2\u03b7\u00ea\3\2\2"+ + "\2\u03b8\u03b9\7?\2\2\u03b9\u03ba\7?\2\2\u03ba\u00ec\3\2\2\2\u03bb\u03bc"+ + "\7>\2\2\u03bc\u03bd\7?\2\2\u03bd\u00ee\3\2\2\2\u03be\u03bf\7@\2\2\u03bf"+ + "\u03c0\7?\2\2\u03c0\u00f0\3\2\2\2\u03c1\u03c2\7#\2\2\u03c2\u03c3\7?\2"+ + "\2\u03c3\u00f2\3\2\2\2\u03c4\u03c5\7(\2\2\u03c5\u03c6\7(\2\2\u03c6\u00f4"+ + "\3\2\2\2\u03c7\u03c8\7~\2\2\u03c8\u03c9\7~\2\2\u03c9\u00f6\3\2\2\2\u03ca"+ + "\u03cb\7-\2\2\u03cb\u03cc\7-\2\2\u03cc\u00f8\3\2\2\2\u03cd\u03ce\7/\2"+ + "\2\u03ce\u03cf\7/\2\2\u03cf\u00fa\3\2\2\2\u03d0\u03d1\7-\2\2\u03d1\u00fc"+ + "\3\2\2\2\u03d2\u03d3\7/\2\2\u03d3\u00fe\3\2\2\2\u03d4\u03d5\7,\2\2\u03d5"+ + "\u0100\3\2\2\2\u03d6\u03d7\7\61\2\2\u03d7\u0102\3\2\2\2\u03d8\u03d9\7"+ + "(\2\2\u03d9\u0104\3\2\2\2\u03da\u03db\7~\2\2\u03db\u0106\3\2\2\2\u03dc"+ + "\u03dd\7`\2\2\u03dd\u0108\3\2\2\2\u03de\u03df\7\'\2\2\u03df\u010a\3\2"+ + "\2\2\u03e0\u03e1\7/\2\2\u03e1\u03e2\7@\2\2\u03e2\u010c\3\2\2\2\u03e3\u03e4"+ + "\7<\2\2\u03e4\u03e5\7<\2\2\u03e5\u010e\3\2\2\2\u03e6\u03e7\7-\2\2\u03e7"+ + "\u03e8\7?\2\2\u03e8\u0110\3\2\2\2\u03e9\u03ea\7/\2\2\u03ea\u03eb\7?\2"+ + "\2\u03eb\u0112\3\2\2\2\u03ec\u03ed\7,\2\2\u03ed\u03ee\7?\2\2\u03ee\u0114"+ + "\3\2\2\2\u03ef\u03f0\7\61\2\2\u03f0\u03f1\7?\2\2\u03f1\u0116\3\2\2\2\u03f2"+ + "\u03f3\7(\2\2\u03f3\u03f4\7?\2\2\u03f4\u0118\3\2\2\2\u03f5\u03f6\7~\2"+ + "\2\u03f6\u03f7\7?\2\2\u03f7\u011a\3\2\2\2\u03f8\u03f9\7`\2\2\u03f9\u03fa"+ + "\7?\2\2\u03fa\u011c\3\2\2\2\u03fb\u03fc\7\'\2\2\u03fc\u03fd\7?\2\2\u03fd"+ + "\u011e\3\2\2\2\u03fe\u03ff\7>\2\2\u03ff\u0400\7>\2\2\u0400\u0401\7?\2"+ + "\2\u0401\u0120\3\2\2\2\u0402\u0403\7@\2\2\u0403\u0404\7@\2\2\u0404\u0405"+ + "\7?\2\2\u0405\u0122\3\2\2\2\u0406\u0407\7@\2\2\u0407\u0408\7@\2\2\u0408"+ + "\u0409\7@\2\2\u0409\u040a\7?\2\2\u040a\u0124\3\2\2\2\u040b\u040f\5\u0127"+ + "\u0094\2\u040c\u040e\5\u0129\u0095\2\u040d\u040c\3\2\2\2\u040e\u0411\3"+ + "\2\2\2\u040f\u040d\3\2\2\2\u040f\u0410\3\2\2\2\u0410\u0126\3\2\2\2\u0411"+ + "\u040f\3\2\2\2\u0412\u0419\t\21\2\2\u0413\u0414\n\22\2\2\u0414\u0419\6"+ + "\u0094\2\2\u0415\u0416\t\23\2\2\u0416\u0417\t\24\2\2\u0417\u0419\6\u0094"+ + "\3\2\u0418\u0412\3\2\2\2\u0418\u0413\3\2\2\2\u0418\u0415\3\2\2\2\u0419"+ + "\u0128\3\2\2\2\u041a\u0421\t\25\2\2\u041b\u041c\n\22\2\2\u041c\u0421\6"+ + "\u0095\4\2\u041d\u041e\t\23\2\2\u041e\u041f\t\24\2\2\u041f\u0421\6\u0095"+ + "\5\2\u0420\u041a\3\2\2\2\u0420\u041b\3\2\2\2\u0420\u041d\3\2\2\2\u0421"+ + "\u012a\3\2\2\2\u0422\u0423\7B\2\2\u0423\u012c\3\2\2\2\u0424\u0425\7\60"+ + "\2\2\u0425\u0426\7\60\2\2\u0426\u0427\7\60\2\2\u0427\u012e\3\2\2\2\u0428"+ + "\u042a\t\26\2\2\u0429\u0428\3\2\2\2\u042a\u042b\3\2\2\2\u042b\u0429\3"+ + "\2\2\2\u042b\u042c\3\2\2\2\u042c\u042d\3\2\2\2\u042d\u042e\b\u0098\2\2"+ + "\u042e\u0130\3\2\2\2\u042f\u0430\7\61\2\2\u0430\u0431\7,\2\2\u0431\u0435"+ + "\3\2\2\2\u0432\u0434\13\2\2\2\u0433\u0432\3\2\2\2\u0434\u0437\3\2\2\2"+ + "\u0435\u0436\3\2\2\2\u0435\u0433\3\2\2\2\u0436\u0438\3\2\2\2\u0437\u0435"+ + "\3\2\2\2\u0438\u0439\7,\2\2\u0439\u043a\7\61\2\2\u043a\u043b\3\2\2\2\u043b"+ + "\u043c\b\u0099\2\2\u043c\u0132\3\2\2\2\u043d\u043e\7\61\2\2\u043e\u043f"+ + "\7\61\2\2\u043f\u0443\3\2\2\2\u0440\u0442\n\27\2\2\u0441\u0440\3\2\2\2"+ + "\u0442\u0445\3\2\2\2\u0443\u0441\3\2\2\2\u0443\u0444\3\2\2\2\u0444\u0446"+ + "\3\2\2\2\u0445\u0443\3\2\2\2\u0446\u0447\b\u009a\2\2\u0447\u0134\3\2\2"+ + "\28\2\u028c\u0290\u0294\u0298\u029c\u02a3\u02a8\u02aa\u02ae\u02b1\u02b5"+ + "\u02bc\u02c0\u02c5\u02cd\u02d0\u02d7\u02db\u02df\u02e5\u02e8\u02ef\u02f3"+ + "\u02fb\u02fe\u0305\u0309\u030d\u0312\u0315\u0318\u031d\u0320\u0325\u032a"+ + "\u0332\u033d\u0341\u0346\u034a\u035a\u0364\u036a\u0371\u0375\u037b\u0388"+ + "\u040f\u0418\u0420\u042b\u0435\u0443\3\b\2\2"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { diff --git a/src/de/dhbwstuttgart/parser/antlr/Java8Lexer.tokens b/src/de/dhbwstuttgart/parser/antlr/Java8Lexer.tokens index 82895a50..52ef1eee 100644 --- a/src/de/dhbwstuttgart/parser/antlr/Java8Lexer.tokens +++ b/src/de/dhbwstuttgart/parser/antlr/Java8Lexer.tokens @@ -1,207 +1,205 @@ -T__0=1 -ABSTRACT=2 -ASSERT=3 -BOOLEAN=4 -BREAK=5 -BYTE=6 -CASE=7 -CATCH=8 -CHAR=9 -CLASS=10 -CONST=11 -CONTINUE=12 -DEFAULT=13 -DO=14 -DOUBLE=15 -ELSE=16 -ENUM=17 -EXTENDS=18 -FINAL=19 -FINALLY=20 -FLOAT=21 -FOR=22 -IF=23 -GOTO=24 -IMPLEMENTS=25 -IMPORT=26 -INSTANCEOF=27 -INT=28 -INTERFACE=29 -LONG=30 -NATIVE=31 -NEW=32 -PACKAGE=33 -PRIVATE=34 -PROTECTED=35 -PUBLIC=36 -RETURN=37 -SHORT=38 -STATIC=39 -STRICTFP=40 -SUPER=41 -SWITCH=42 -SYNCHRONIZED=43 -THIS=44 -THROW=45 -THROWS=46 -TRANSIENT=47 -TRY=48 -VOID=49 -VOLATILE=50 -WHILE=51 -IntegerLiteral=52 -FloatingPointLiteral=53 -BooleanLiteral=54 -CharacterLiteral=55 -StringLiteral=56 -NullLiteral=57 -LPAREN=58 -RPAREN=59 -LBRACE=60 -RBRACE=61 -LBRACK=62 -RBRACK=63 -SEMI=64 -COMMA=65 -DOT=66 -ASSIGN=67 -GT=68 -LT=69 -BANG=70 -TILDE=71 -QUESTION=72 -COLON=73 -EQUAL=74 -LE=75 -GE=76 -NOTEQUAL=77 -AND=78 -OR=79 -INC=80 -DEC=81 -ADD=82 -SUB=83 -MUL=84 -DIV=85 -BITAND=86 -BITOR=87 -CARET=88 -MOD=89 -ARROW=90 -COLONCOLON=91 -ADD_ASSIGN=92 -SUB_ASSIGN=93 -MUL_ASSIGN=94 -DIV_ASSIGN=95 -AND_ASSIGN=96 -OR_ASSIGN=97 -XOR_ASSIGN=98 -MOD_ASSIGN=99 -LSHIFT_ASSIGN=100 -RSHIFT_ASSIGN=101 -URSHIFT_ASSIGN=102 -Identifier=103 -AT=104 -ELLIPSIS=105 -WS=106 -COMMENT=107 -LINE_COMMENT=108 -'auto'=1 -'abstract'=2 -'assert'=3 -'boolean'=4 -'break'=5 -'byte'=6 -'case'=7 -'catch'=8 -'char'=9 -'class'=10 -'const'=11 -'continue'=12 -'default'=13 -'do'=14 -'double'=15 -'else'=16 -'enum'=17 -'extends'=18 -'final'=19 -'finally'=20 -'float'=21 -'for'=22 -'if'=23 -'goto'=24 -'implements'=25 -'import'=26 -'instanceof'=27 -'int'=28 -'interface'=29 -'long'=30 -'native'=31 -'new'=32 -'package'=33 -'private'=34 -'protected'=35 -'public'=36 -'return'=37 -'short'=38 -'static'=39 -'strictfp'=40 -'super'=41 -'switch'=42 -'synchronized'=43 -'this'=44 -'throw'=45 -'throws'=46 -'transient'=47 -'try'=48 -'void'=49 -'volatile'=50 -'while'=51 -'null'=57 -'('=58 -')'=59 -'{'=60 -'}'=61 -'['=62 -']'=63 -';'=64 -','=65 -'.'=66 -'='=67 -'>'=68 -'<'=69 -'!'=70 -'~'=71 -'?'=72 -':'=73 -'=='=74 -'<='=75 -'>='=76 -'!='=77 -'&&'=78 -'||'=79 -'++'=80 -'--'=81 -'+'=82 -'-'=83 -'*'=84 -'/'=85 -'&'=86 -'|'=87 -'^'=88 -'%'=89 -'->'=90 -'::'=91 -'+='=92 -'-='=93 -'*='=94 -'/='=95 -'&='=96 -'|='=97 -'^='=98 -'%='=99 -'<<='=100 -'>>='=101 -'>>>='=102 -'@'=104 -'...'=105 +ABSTRACT=1 +ASSERT=2 +BOOLEAN=3 +BREAK=4 +BYTE=5 +CASE=6 +CATCH=7 +CHAR=8 +CLASS=9 +CONST=10 +CONTINUE=11 +DEFAULT=12 +DO=13 +DOUBLE=14 +ELSE=15 +ENUM=16 +EXTENDS=17 +FINAL=18 +FINALLY=19 +FLOAT=20 +FOR=21 +IF=22 +GOTO=23 +IMPLEMENTS=24 +IMPORT=25 +INSTANCEOF=26 +INT=27 +INTERFACE=28 +LONG=29 +NATIVE=30 +NEW=31 +PACKAGE=32 +PRIVATE=33 +PROTECTED=34 +PUBLIC=35 +RETURN=36 +SHORT=37 +STATIC=38 +STRICTFP=39 +SUPER=40 +SWITCH=41 +SYNCHRONIZED=42 +THIS=43 +THROW=44 +THROWS=45 +TRANSIENT=46 +TRY=47 +VOID=48 +VOLATILE=49 +WHILE=50 +IntegerLiteral=51 +FloatingPointLiteral=52 +BooleanLiteral=53 +CharacterLiteral=54 +StringLiteral=55 +NullLiteral=56 +LPAREN=57 +RPAREN=58 +LBRACE=59 +RBRACE=60 +LBRACK=61 +RBRACK=62 +SEMI=63 +COMMA=64 +DOT=65 +ASSIGN=66 +GT=67 +LT=68 +BANG=69 +TILDE=70 +QUESTION=71 +COLON=72 +EQUAL=73 +LE=74 +GE=75 +NOTEQUAL=76 +AND=77 +OR=78 +INC=79 +DEC=80 +ADD=81 +SUB=82 +MUL=83 +DIV=84 +BITAND=85 +BITOR=86 +CARET=87 +MOD=88 +ARROW=89 +COLONCOLON=90 +ADD_ASSIGN=91 +SUB_ASSIGN=92 +MUL_ASSIGN=93 +DIV_ASSIGN=94 +AND_ASSIGN=95 +OR_ASSIGN=96 +XOR_ASSIGN=97 +MOD_ASSIGN=98 +LSHIFT_ASSIGN=99 +RSHIFT_ASSIGN=100 +URSHIFT_ASSIGN=101 +Identifier=102 +AT=103 +ELLIPSIS=104 +WS=105 +COMMENT=106 +LINE_COMMENT=107 +'abstract'=1 +'assert'=2 +'boolean'=3 +'break'=4 +'byte'=5 +'case'=6 +'catch'=7 +'char'=8 +'class'=9 +'const'=10 +'continue'=11 +'default'=12 +'do'=13 +'double'=14 +'else'=15 +'enum'=16 +'extends'=17 +'final'=18 +'finally'=19 +'float'=20 +'for'=21 +'if'=22 +'goto'=23 +'implements'=24 +'import'=25 +'instanceof'=26 +'int'=27 +'interface'=28 +'long'=29 +'native'=30 +'new'=31 +'package'=32 +'private'=33 +'protected'=34 +'public'=35 +'return'=36 +'short'=37 +'static'=38 +'strictfp'=39 +'super'=40 +'switch'=41 +'synchronized'=42 +'this'=43 +'throw'=44 +'throws'=45 +'transient'=46 +'try'=47 +'void'=48 +'volatile'=49 +'while'=50 +'null'=56 +'('=57 +')'=58 +'{'=59 +'}'=60 +'['=61 +']'=62 +';'=63 +','=64 +'.'=65 +'='=66 +'>'=67 +'<'=68 +'!'=69 +'~'=70 +'?'=71 +':'=72 +'=='=73 +'<='=74 +'>='=75 +'!='=76 +'&&'=77 +'||'=78 +'++'=79 +'--'=80 +'+'=81 +'-'=82 +'*'=83 +'/'=84 +'&'=85 +'|'=86 +'^'=87 +'%'=88 +'->'=89 +'::'=90 +'+='=91 +'-='=92 +'*='=93 +'/='=94 +'&='=95 +'|='=96 +'^='=97 +'%='=98 +'<<='=99 +'>>='=100 +'>>>='=101 +'@'=103 +'...'=104 diff --git a/src/de/dhbwstuttgart/parser/antlr/Java8Listener.java b/src/de/dhbwstuttgart/parser/antlr/Java8Listener.java index 67d7c051..a875c96f 100644 --- a/src/de/dhbwstuttgart/parser/antlr/Java8Listener.java +++ b/src/de/dhbwstuttgart/parser/antlr/Java8Listener.java @@ -1,4 +1,4 @@ -// Generated from Java8.g4 by ANTLR 4.5.3 +// Generated from Java8.g4 by ANTLR 4.7 package de.dhbwstuttgart.parser.antlr; import org.antlr.v4.runtime.tree.ParseTreeListener; @@ -1307,6 +1307,16 @@ public interface Java8Listener extends ParseTreeListener { * @param ctx the parse tree */ void exitLocalVariableDeclarationStatement(Java8Parser.LocalVariableDeclarationStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannTypeOrAuto}. + * @param ctx the parse tree + */ + void enterUnannTypeOrAuto(Java8Parser.UnannTypeOrAutoContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannTypeOrAuto}. + * @param ctx the parse tree + */ + void exitUnannTypeOrAuto(Java8Parser.UnannTypeOrAutoContext ctx); /** * Enter a parse tree produced by {@link Java8Parser#localVariableDeclaration}. * @param ctx the parse tree diff --git a/src/de/dhbwstuttgart/parser/antlr/Java8Parser.java b/src/de/dhbwstuttgart/parser/antlr/Java8Parser.java index 1af14046..0f0249b6 100644 --- a/src/de/dhbwstuttgart/parser/antlr/Java8Parser.java +++ b/src/de/dhbwstuttgart/parser/antlr/Java8Parser.java @@ -1,4 +1,4 @@ -// Generated from /home/janulrich/Development/intellijworkspace/JavaCompilerCore/src/de/dhbwstuttgart/parser/antlr/Java8.g4 by ANTLR 4.5.1 +// Generated from Java8.g4 by ANTLR 4.7 package de.dhbwstuttgart.parser.antlr; import org.antlr.v4.runtime.atn.*; import org.antlr.v4.runtime.dfa.DFA; @@ -11,29 +11,29 @@ import java.util.ArrayList; @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) public class Java8Parser extends Parser { - static { RuntimeMetaData.checkVersion("4.5.1", RuntimeMetaData.VERSION); } + static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); } protected static final DFA[] _decisionToDFA; protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache(); public static final int - T__0=1, ABSTRACT=2, ASSERT=3, BOOLEAN=4, BREAK=5, BYTE=6, CASE=7, CATCH=8, - CHAR=9, CLASS=10, CONST=11, CONTINUE=12, DEFAULT=13, DO=14, DOUBLE=15, - ELSE=16, ENUM=17, EXTENDS=18, FINAL=19, FINALLY=20, FLOAT=21, FOR=22, - IF=23, GOTO=24, IMPLEMENTS=25, IMPORT=26, INSTANCEOF=27, INT=28, INTERFACE=29, - LONG=30, NATIVE=31, NEW=32, PACKAGE=33, PRIVATE=34, PROTECTED=35, PUBLIC=36, - RETURN=37, SHORT=38, STATIC=39, STRICTFP=40, SUPER=41, SWITCH=42, SYNCHRONIZED=43, - THIS=44, THROW=45, THROWS=46, TRANSIENT=47, TRY=48, VOID=49, VOLATILE=50, - WHILE=51, IntegerLiteral=52, FloatingPointLiteral=53, BooleanLiteral=54, - CharacterLiteral=55, StringLiteral=56, NullLiteral=57, LPAREN=58, RPAREN=59, - LBRACE=60, RBRACE=61, LBRACK=62, RBRACK=63, SEMI=64, COMMA=65, DOT=66, - ASSIGN=67, GT=68, LT=69, BANG=70, TILDE=71, QUESTION=72, COLON=73, EQUAL=74, - LE=75, GE=76, NOTEQUAL=77, AND=78, OR=79, INC=80, DEC=81, ADD=82, SUB=83, - MUL=84, DIV=85, BITAND=86, BITOR=87, CARET=88, MOD=89, ARROW=90, COLONCOLON=91, - ADD_ASSIGN=92, SUB_ASSIGN=93, MUL_ASSIGN=94, DIV_ASSIGN=95, AND_ASSIGN=96, - OR_ASSIGN=97, XOR_ASSIGN=98, MOD_ASSIGN=99, LSHIFT_ASSIGN=100, RSHIFT_ASSIGN=101, - URSHIFT_ASSIGN=102, Identifier=103, AT=104, ELLIPSIS=105, WS=106, COMMENT=107, - LINE_COMMENT=108; + ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8, + CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15, + ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23, + IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29, + NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36, + SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42, + THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VOID=48, VOLATILE=49, + WHILE=50, IntegerLiteral=51, FloatingPointLiteral=52, BooleanLiteral=53, + CharacterLiteral=54, StringLiteral=55, NullLiteral=56, LPAREN=57, RPAREN=58, + LBRACE=59, RBRACE=60, LBRACK=61, RBRACK=62, SEMI=63, COMMA=64, DOT=65, + ASSIGN=66, GT=67, LT=68, BANG=69, TILDE=70, QUESTION=71, COLON=72, EQUAL=73, + LE=74, GE=75, NOTEQUAL=76, AND=77, OR=78, INC=79, DEC=80, ADD=81, SUB=82, + MUL=83, DIV=84, BITAND=85, BITOR=86, CARET=87, MOD=88, ARROW=89, COLONCOLON=90, + ADD_ASSIGN=91, SUB_ASSIGN=92, MUL_ASSIGN=93, DIV_ASSIGN=94, AND_ASSIGN=95, + OR_ASSIGN=96, XOR_ASSIGN=97, MOD_ASSIGN=98, LSHIFT_ASSIGN=99, RSHIFT_ASSIGN=100, + URSHIFT_ASSIGN=101, Identifier=102, AT=103, ELLIPSIS=104, WS=105, COMMENT=106, + LINE_COMMENT=107; public static final int RULE_literal = 0, RULE_type = 1, RULE_primitiveType = 2, RULE_numericType = 3, RULE_integralType = 4, RULE_floatingPointType = 5, RULE_referenceType = 6, @@ -180,7 +180,7 @@ public class Java8Parser extends Parser { "methodInvocation_lf_primary", "methodInvocation_lfno_primary", "argumentList", "methodReference", "methodReference_lf_primary", "methodReference_lfno_primary", "arrayCreationExpression", "dimExprs", "dimExpr", "constantExpression", - "name", "lambdaExpression", "lambdaParameters", "inferredFormalParameterList", + "expression", "lambdaExpression", "lambdaParameters", "inferredFormalParameterList", "lambdaBody", "assignmentExpression", "assignment", "leftHandSide", "assignmentOperator", "conditionalExpression", "conditionalOrExpression", "conditionalAndExpression", "inclusiveOrExpression", "exclusiveOrExpression", "andExpression", "equalityExpression", @@ -192,8 +192,8 @@ public class Java8Parser extends Parser { }; private static final String[] _LITERAL_NAMES = { - null, "'auto'", "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", - "'case'", "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", + null, "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", "'case'", + "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", "'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", "'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'", "'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'", @@ -208,21 +208,21 @@ public class Java8Parser extends Parser { "'>>>='", null, "'@'", "'...'" }; private static final String[] _SYMBOLIC_NAMES = { - null, null, "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", - "CATCH", "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", - "ELSE", "ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", - "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", - "NEW", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", - "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", - "THROWS", "TRANSIENT", "TRY", "VOID", "VOLATILE", "WHILE", "IntegerLiteral", - "FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", "StringLiteral", - "NullLiteral", "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", - "SEMI", "COMMA", "DOT", "ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION", - "COLON", "EQUAL", "LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", - "SUB", "MUL", "DIV", "BITAND", "BITOR", "CARET", "MOD", "ARROW", "COLONCOLON", - "ADD_ASSIGN", "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", - "OR_ASSIGN", "XOR_ASSIGN", "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", - "URSHIFT_ASSIGN", "Identifier", "AT", "ELLIPSIS", "WS", "COMMENT", "LINE_COMMENT" + null, "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", + "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", + "ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS", + "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", "NEW", "PACKAGE", + "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC", "STRICTFP", + "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS", "TRANSIENT", + "TRY", "VOID", "VOLATILE", "WHILE", "IntegerLiteral", "FloatingPointLiteral", + "BooleanLiteral", "CharacterLiteral", "StringLiteral", "NullLiteral", + "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", "SEMI", "COMMA", + "DOT", "ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION", "COLON", "EQUAL", + "LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", "SUB", "MUL", + "DIV", "BITAND", "BITOR", "CARET", "MOD", "ARROW", "COLONCOLON", "ADD_ASSIGN", + "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", + "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", "Identifier", + "AT", "ELLIPSIS", "WS", "COMMENT", "LINE_COMMENT" }; public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); @@ -284,6 +284,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_literal; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLiteral(this); + } } public final LiteralContext literal() throws RecognitionException { @@ -297,7 +305,10 @@ public class Java8Parser extends Parser { _la = _input.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral))) != 0)) ) { _errHandler.recoverInline(this); - } else { + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); consume(); } } @@ -324,6 +335,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitType(this); + } } public final TypeContext type() throws RecognitionException { @@ -331,6 +350,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 2, RULE_type); try { setState(480); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -373,6 +393,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primitiveType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimitiveType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimitiveType(this); + } } public final PrimitiveTypeContext primitiveType() throws RecognitionException { @@ -381,6 +409,7 @@ public class Java8Parser extends Parser { int _la; try { setState(496); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -448,6 +477,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_numericType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNumericType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNumericType(this); + } } public final NumericTypeContext numericType() throws RecognitionException { @@ -455,6 +492,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 6, RULE_numericType); try { setState(500); + _errHandler.sync(this); switch (_input.LA(1)) { case BYTE: case CHAR: @@ -495,6 +533,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_integralType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIntegralType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIntegralType(this); + } } public final IntegralTypeContext integralType() throws RecognitionException { @@ -508,7 +554,10 @@ public class Java8Parser extends Parser { _la = _input.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BYTE) | (1L << CHAR) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0)) ) { _errHandler.recoverInline(this); - } else { + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); consume(); } } @@ -529,6 +578,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_floatingPointType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFloatingPointType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFloatingPointType(this); + } } public final FloatingPointTypeContext floatingPointType() throws RecognitionException { @@ -542,7 +599,10 @@ public class Java8Parser extends Parser { _la = _input.LA(1); if ( !(_la==DOUBLE || _la==FLOAT) ) { _errHandler.recoverInline(this); - } else { + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); consume(); } } @@ -572,6 +632,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_referenceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterReferenceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitReferenceType(this); + } } public final ReferenceTypeContext referenceType() throws RecognitionException { @@ -579,6 +647,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 12, RULE_referenceType); try { setState(509); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -637,6 +706,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassOrInterfaceType(this); + } } public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException { @@ -647,6 +724,7 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { setState(513); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { case 1: { @@ -668,6 +746,7 @@ public class Java8Parser extends Parser { if ( _alt==1 ) { { setState(517); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,7,_ctx) ) { case 1: { @@ -719,6 +798,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassType(this); + } } public final ClassTypeContext classType() throws RecognitionException { @@ -727,6 +814,7 @@ public class Java8Parser extends Parser { int _la; try { setState(544); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,13,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -748,6 +836,7 @@ public class Java8Parser extends Parser { setState(528); match(Identifier); setState(530); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -782,6 +871,7 @@ public class Java8Parser extends Parser { setState(540); match(Identifier); setState(542); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -820,6 +910,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classType_lf_classOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassType_lf_classOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassType_lf_classOrInterfaceType(this); + } } public final ClassType_lf_classOrInterfaceTypeContext classType_lf_classOrInterfaceType() throws RecognitionException { @@ -848,6 +946,7 @@ public class Java8Parser extends Parser { setState(553); match(Identifier); setState(555); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,15,_ctx) ) { case 1: { @@ -884,6 +983,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classType_lfno_classOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassType_lfno_classOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassType_lfno_classOrInterfaceType(this); + } } public final ClassType_lfno_classOrInterfaceTypeContext classType_lfno_classOrInterfaceType() throws RecognitionException { @@ -910,6 +1017,7 @@ public class Java8Parser extends Parser { setState(563); match(Identifier); setState(565); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,17,_ctx) ) { case 1: { @@ -939,6 +1047,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceType(this); + } } public final InterfaceTypeContext interfaceType() throws RecognitionException { @@ -970,6 +1086,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceType_lf_classOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceType_lf_classOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceType_lf_classOrInterfaceType(this); + } } public final InterfaceType_lf_classOrInterfaceTypeContext interfaceType_lf_classOrInterfaceType() throws RecognitionException { @@ -1001,6 +1125,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceType_lfno_classOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceType_lfno_classOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceType_lfno_classOrInterfaceType(this); + } } public final InterfaceType_lfno_classOrInterfaceTypeContext interfaceType_lfno_classOrInterfaceType() throws RecognitionException { @@ -1036,6 +1168,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeVariable; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeVariable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeVariable(this); + } } public final TypeVariableContext typeVariable() throws RecognitionException { @@ -1091,6 +1231,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayType(this); + } } public final ArrayTypeContext arrayType() throws RecognitionException { @@ -1098,6 +1246,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 30, RULE_arrayType); try { setState(590); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -1150,6 +1299,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_dims; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDims(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDims(this); + } } public final DimsContext dims() throws RecognitionException { @@ -1238,6 +1395,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameter(this); + } } public final TypeParameterContext typeParameter() throws RecognitionException { @@ -1264,6 +1429,7 @@ public class Java8Parser extends Parser { setState(619); match(Identifier); setState(621); + _errHandler.sync(this); _la = _input.LA(1); if (_la==EXTENDS) { { @@ -1293,6 +1459,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeParameterModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameterModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameterModifier(this); + } } public final TypeParameterModifierContext typeParameterModifier() throws RecognitionException { @@ -1333,6 +1507,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeBound; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeBound(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeBound(this); + } } public final TypeBoundContext typeBound() throws RecognitionException { @@ -1341,6 +1523,7 @@ public class Java8Parser extends Parser { int _la; try { setState(635); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,26,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -1395,6 +1578,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_additionalBound; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAdditionalBound(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAdditionalBound(this); + } } public final AdditionalBoundContext additionalBound() throws RecognitionException { @@ -1428,6 +1619,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeArguments; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArguments(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArguments(this); + } } public final TypeArgumentsContext typeArguments() throws RecognitionException { @@ -1466,6 +1665,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeArgumentList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArgumentList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgumentList(this); + } } public final TypeArgumentListContext typeArgumentList() throws RecognitionException { @@ -1517,6 +1724,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeArgument; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArgument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgument(this); + } } public final TypeArgumentContext typeArgument() throws RecognitionException { @@ -1524,6 +1739,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 46, RULE_typeArgument); try { setState(654); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,28,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -1566,6 +1782,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_wildcard; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWildcard(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWildcard(this); + } } public final WildcardContext wildcard() throws RecognitionException { @@ -1592,6 +1816,7 @@ public class Java8Parser extends Parser { setState(662); match(QUESTION); setState(664); + _errHandler.sync(this); _la = _input.LA(1); if (_la==EXTENDS || _la==SUPER) { { @@ -1621,6 +1846,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_wildcardBounds; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWildcardBounds(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWildcardBounds(this); + } } public final WildcardBoundsContext wildcardBounds() throws RecognitionException { @@ -1628,6 +1861,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 50, RULE_wildcardBounds); try { setState(670); + _errHandler.sync(this); switch (_input.LA(1)) { case EXTENDS: enterOuterAlt(_localctx, 1); @@ -1671,6 +1905,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_packageName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageName(this); + } } public final PackageNameContext packageName() throws RecognitionException { @@ -1739,6 +1981,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeName(this); + } } public final TypeNameContext typeName() throws RecognitionException { @@ -1746,6 +1996,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 54, RULE_typeName); try { setState(688); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,33,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -1787,6 +2038,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_packageOrTypeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageOrTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageOrTypeName(this); + } } public final PackageOrTypeNameContext packageOrTypeName() throws RecognitionException { @@ -1855,6 +2114,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_expressionName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpressionName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpressionName(this); + } } public final ExpressionNameContext expressionName() throws RecognitionException { @@ -1862,6 +2129,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 58, RULE_expressionName); try { setState(706); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,35,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -1900,6 +2168,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodName(this); + } } public final MethodNameContext methodName() throws RecognitionException { @@ -1932,6 +2208,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_ambiguousName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAmbiguousName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAmbiguousName(this); + } } public final AmbiguousNameContext ambiguousName() throws RecognitionException { @@ -2012,6 +2296,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_compilationUnit; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCompilationUnit(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCompilationUnit(this); + } } public final CompilationUnitContext compilationUnit() throws RecognitionException { @@ -2022,6 +2314,7 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { setState(722); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,37,_ctx) ) { case 1: { @@ -2047,7 +2340,7 @@ public class Java8Parser extends Parser { setState(733); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << CLASS) | (1L << ENUM) | (1L << FINAL) | (1L << INTERFACE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==SEMI || _la==AT) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << CLASS) | (1L << ENUM) | (1L << FINAL) | (1L << INTERFACE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP) | (1L << SEMI))) != 0) || _la==AT) { { { setState(730); @@ -2088,6 +2381,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_packageDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageDeclaration(this); + } } public final PackageDeclarationContext packageDeclaration() throws RecognitionException { @@ -2154,6 +2455,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_packageModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageModifier(this); + } } public final PackageModifierContext packageModifier() throws RecognitionException { @@ -2194,6 +2503,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_importDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterImportDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitImportDeclaration(this); + } } public final ImportDeclarationContext importDeclaration() throws RecognitionException { @@ -2201,6 +2518,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 70, RULE_importDeclaration); try { setState(761); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,42,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -2251,6 +2569,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_singleTypeImportDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSingleTypeImportDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSingleTypeImportDeclaration(this); + } } public final SingleTypeImportDeclarationContext singleTypeImportDeclaration() throws RecognitionException { @@ -2286,6 +2612,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeImportOnDemandDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeImportOnDemandDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeImportOnDemandDeclaration(this); + } } public final TypeImportOnDemandDeclarationContext typeImportOnDemandDeclaration() throws RecognitionException { @@ -2326,6 +2660,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_singleStaticImportDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSingleStaticImportDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSingleStaticImportDeclaration(this); + } } public final SingleStaticImportDeclarationContext singleStaticImportDeclaration() throws RecognitionException { @@ -2367,6 +2709,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_staticImportOnDemandDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStaticImportOnDemandDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStaticImportOnDemandDeclaration(this); + } } public final StaticImportOnDemandDeclarationContext staticImportOnDemandDeclaration() throws RecognitionException { @@ -2411,6 +2761,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeDeclaration(this); + } } public final TypeDeclarationContext typeDeclaration() throws RecognitionException { @@ -2418,6 +2776,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 80, RULE_typeDeclaration); try { setState(790); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,43,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -2464,6 +2823,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassDeclaration(this); + } } public final ClassDeclarationContext classDeclaration() throws RecognitionException { @@ -2471,6 +2838,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 82, RULE_classDeclaration); try { setState(794); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,44,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -2523,6 +2891,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_normalClassDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNormalClassDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNormalClassDeclaration(this); + } } public final NormalClassDeclarationContext normalClassDeclaration() throws RecognitionException { @@ -2551,6 +2927,7 @@ public class Java8Parser extends Parser { setState(803); match(Identifier); setState(805); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -2560,6 +2937,7 @@ public class Java8Parser extends Parser { } setState(808); + _errHandler.sync(this); _la = _input.LA(1); if (_la==EXTENDS) { { @@ -2569,6 +2947,7 @@ public class Java8Parser extends Parser { } setState(811); + _errHandler.sync(this); _la = _input.LA(1); if (_la==IMPLEMENTS) { { @@ -2600,6 +2979,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassModifier(this); + } } public final ClassModifierContext classModifier() throws RecognitionException { @@ -2607,6 +2994,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 86, RULE_classModifier); try { setState(823); + _errHandler.sync(this); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); @@ -2687,6 +3075,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameters(this); + } } public final TypeParametersContext typeParameters() throws RecognitionException { @@ -2725,6 +3121,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeParameterList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameterList(this); + } } public final TypeParameterListContext typeParameterList() throws RecognitionException { @@ -2773,6 +3177,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_superclass; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSuperclass(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSuperclass(this); + } } public final SuperclassContext superclass() throws RecognitionException { @@ -2806,6 +3218,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_superinterfaces; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSuperinterfaces(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSuperinterfaces(this); + } } public final SuperinterfacesContext superinterfaces() throws RecognitionException { @@ -2842,6 +3262,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceTypeList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceTypeList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceTypeList(this); + } } public final InterfaceTypeListContext interfaceTypeList() throws RecognitionException { @@ -2893,6 +3321,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassBody(this); + } } public final ClassBodyContext classBody() throws RecognitionException { @@ -2907,7 +3343,7 @@ public class Java8Parser extends Parser { setState(855); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (LT - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) { { { setState(852); @@ -2947,6 +3383,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classBodyDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassBodyDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassBodyDeclaration(this); + } } public final ClassBodyDeclarationContext classBodyDeclaration() throws RecognitionException { @@ -2954,6 +3398,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 100, RULE_classBodyDeclaration); try { setState(863); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,53,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -3006,6 +3451,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classMemberDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassMemberDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassMemberDeclaration(this); + } } public final ClassMemberDeclarationContext classMemberDeclaration() throws RecognitionException { @@ -3013,6 +3466,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 102, RULE_classMemberDeclaration); try { setState(870); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,54,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -3079,6 +3533,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_fieldDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldDeclaration(this); + } } public final FieldDeclarationContext fieldDeclaration() throws RecognitionException { @@ -3103,6 +3565,7 @@ public class Java8Parser extends Parser { _la = _input.LA(1); } setState(879); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,56,_ctx) ) { case 1: { @@ -3136,6 +3599,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_fieldModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldModifier(this); + } } public final FieldModifierContext fieldModifier() throws RecognitionException { @@ -3143,6 +3614,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 106, RULE_fieldModifier); try { setState(892); + _errHandler.sync(this); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); @@ -3226,6 +3698,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableDeclaratorList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclaratorList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclaratorList(this); + } } public final VariableDeclaratorListContext variableDeclaratorList() throws RecognitionException { @@ -3277,6 +3757,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableDeclarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclarator(this); + } } public final VariableDeclaratorContext variableDeclarator() throws RecognitionException { @@ -3289,6 +3777,7 @@ public class Java8Parser extends Parser { setState(902); variableDeclaratorId(); setState(905); + _errHandler.sync(this); _la = _input.LA(1); if (_la==ASSIGN) { { @@ -3321,6 +3810,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableDeclaratorId; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclaratorId(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclaratorId(this); + } } public final VariableDeclaratorIdContext variableDeclaratorId() throws RecognitionException { @@ -3333,6 +3830,7 @@ public class Java8Parser extends Parser { setState(907); match(Identifier); setState(909); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LBRACK || _la==AT) { { @@ -3365,6 +3863,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableInitializer(this); + } } public final VariableInitializerContext variableInitializer() throws RecognitionException { @@ -3372,6 +3878,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 114, RULE_variableInitializer); try { setState(913); + _errHandler.sync(this); switch (_input.LA(1)) { case BOOLEAN: case BYTE: @@ -3439,6 +3946,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannType(this); + } } public final UnannTypeContext unannType() throws RecognitionException { @@ -3446,6 +3961,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 116, RULE_unannType); try { setState(917); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,62,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -3482,6 +3998,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannPrimitiveType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannPrimitiveType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannPrimitiveType(this); + } } public final UnannPrimitiveTypeContext unannPrimitiveType() throws RecognitionException { @@ -3489,6 +4013,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 118, RULE_unannPrimitiveType); try { setState(921); + _errHandler.sync(this); switch (_input.LA(1)) { case BYTE: case CHAR: @@ -3539,6 +4064,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannReferenceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannReferenceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannReferenceType(this); + } } public final UnannReferenceTypeContext unannReferenceType() throws RecognitionException { @@ -3546,6 +4079,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 120, RULE_unannReferenceType); try { setState(926); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,64,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -3604,6 +4138,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannClassOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassOrInterfaceType(this); + } } public final UnannClassOrInterfaceTypeContext unannClassOrInterfaceType() throws RecognitionException { @@ -3614,6 +4156,7 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { setState(930); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,65,_ctx) ) { case 1: { @@ -3635,6 +4178,7 @@ public class Java8Parser extends Parser { if ( _alt==1 ) { { setState(934); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,66,_ctx) ) { case 1: { @@ -3686,6 +4230,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannClassType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassType(this); + } } public final UnannClassTypeContext unannClassType() throws RecognitionException { @@ -3694,6 +4246,7 @@ public class Java8Parser extends Parser { int _la; try { setState(955); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,71,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -3701,6 +4254,7 @@ public class Java8Parser extends Parser { setState(939); match(Identifier); setState(941); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -3735,6 +4289,7 @@ public class Java8Parser extends Parser { setState(951); match(Identifier); setState(953); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -3773,6 +4328,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannClassType_lf_unannClassOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassType_lf_unannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassType_lf_unannClassOrInterfaceType(this); + } } public final UnannClassType_lf_unannClassOrInterfaceTypeContext unannClassType_lf_unannClassOrInterfaceType() throws RecognitionException { @@ -3801,6 +4364,7 @@ public class Java8Parser extends Parser { setState(964); match(Identifier); setState(966); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -3831,6 +4395,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannClassType_lfno_unannClassOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassType_lfno_unannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassType_lfno_unannClassOrInterfaceType(this); + } } public final UnannClassType_lfno_unannClassOrInterfaceTypeContext unannClassType_lfno_unannClassOrInterfaceType() throws RecognitionException { @@ -3843,6 +4415,7 @@ public class Java8Parser extends Parser { setState(968); match(Identifier); setState(970); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -3872,6 +4445,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannInterfaceType(this); + } } public final UnannInterfaceTypeContext unannInterfaceType() throws RecognitionException { @@ -3903,6 +4484,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannInterfaceType_lf_unannClassOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannInterfaceType_lf_unannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannInterfaceType_lf_unannClassOrInterfaceType(this); + } } public final UnannInterfaceType_lf_unannClassOrInterfaceTypeContext unannInterfaceType_lf_unannClassOrInterfaceType() throws RecognitionException { @@ -3934,6 +4523,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannInterfaceType_lfno_unannClassOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannInterfaceType_lfno_unannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannInterfaceType_lfno_unannClassOrInterfaceType(this); + } } public final UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext unannInterfaceType_lfno_unannClassOrInterfaceType() throws RecognitionException { @@ -3963,6 +4560,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannTypeVariable; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannTypeVariable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannTypeVariable(this); + } } public final UnannTypeVariableContext unannTypeVariable() throws RecognitionException { @@ -4003,6 +4608,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannArrayType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannArrayType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannArrayType(this); + } } public final UnannArrayTypeContext unannArrayType() throws RecognitionException { @@ -4010,6 +4623,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 138, RULE_unannArrayType); try { setState(989); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,75,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -4068,6 +4682,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodDeclaration(this); + } } public final MethodDeclarationContext methodDeclaration() throws RecognitionException { @@ -4116,6 +4738,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodModifier(this); + } } public final MethodModifierContext methodModifier() throws RecognitionException { @@ -4123,6 +4753,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 142, RULE_methodModifier); try { setState(1010); + _errHandler.sync(this); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); @@ -4232,6 +4863,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodHeader; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodHeader(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodHeader(this); + } } public final MethodHeaderContext methodHeader() throws RecognitionException { @@ -4240,6 +4879,7 @@ public class Java8Parser extends Parser { int _la; try { setState(1033); + _errHandler.sync(this); switch (_input.LA(1)) { case BOOLEAN: case BYTE: @@ -4254,6 +4894,7 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { setState(1013); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,78,_ctx) ) { case 1: { @@ -4265,6 +4906,7 @@ public class Java8Parser extends Parser { setState(1015); methodDeclarator(); setState(1017); + _errHandler.sync(this); _la = _input.LA(1); if (_la==THROWS) { { @@ -4295,6 +4937,7 @@ public class Java8Parser extends Parser { _la = _input.LA(1); } setState(1027); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,81,_ctx) ) { case 1: { @@ -4306,6 +4949,7 @@ public class Java8Parser extends Parser { setState(1029); methodDeclarator(); setState(1031); + _errHandler.sync(this); _la = _input.LA(1); if (_la==THROWS) { { @@ -4339,6 +4983,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_result; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResult(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResult(this); + } } public final ResultContext result() throws RecognitionException { @@ -4346,6 +4998,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 146, RULE_result); try { setState(1037); + _errHandler.sync(this); switch (_input.LA(1)) { case BOOLEAN: case BYTE: @@ -4396,6 +5049,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodDeclarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodDeclarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodDeclarator(this); + } } public final MethodDeclaratorContext methodDeclarator() throws RecognitionException { @@ -4410,6 +5071,7 @@ public class Java8Parser extends Parser { setState(1040); match(LPAREN); setState(1042); + _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) { { @@ -4421,6 +5083,7 @@ public class Java8Parser extends Parser { setState(1044); match(RPAREN); setState(1046); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LBRACK || _la==AT) { { @@ -4453,6 +5116,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_formalParameterList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFormalParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameterList(this); + } } public final FormalParameterListContext formalParameterList() throws RecognitionException { @@ -4460,6 +5131,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 150, RULE_formalParameterList); try { setState(1053); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,87,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -4506,6 +5178,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_formalParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFormalParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameters(this); + } } public final FormalParametersContext formalParameters() throws RecognitionException { @@ -4514,6 +5194,7 @@ public class Java8Parser extends Parser { try { int _alt; setState(1071); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,90,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -4595,6 +5276,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_formalParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFormalParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameter(this); + } } public final FormalParameterContext formalParameter() throws RecognitionException { @@ -4619,6 +5308,7 @@ public class Java8Parser extends Parser { _la = _input.LA(1); } setState(1080); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,92,_ctx) ) { case 1: { @@ -4650,6 +5340,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableModifier(this); + } } public final VariableModifierContext variableModifier() throws RecognitionException { @@ -4657,6 +5355,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 156, RULE_variableModifier); try { setState(1086); + _errHandler.sync(this); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); @@ -4713,6 +5412,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_lastFormalParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLastFormalParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLastFormalParameter(this); + } } public final LastFormalParameterContext lastFormalParameter() throws RecognitionException { @@ -4721,6 +5428,7 @@ public class Java8Parser extends Parser { int _la; try { setState(1105); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,96,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -4796,6 +5504,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_receiverParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterReceiverParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitReceiverParameter(this); + } } public final ReceiverParameterContext receiverParameter() throws RecognitionException { @@ -4822,6 +5538,7 @@ public class Java8Parser extends Parser { setState(1113); unannType(); setState(1116); + _errHandler.sync(this); _la = _input.LA(1); if (_la==Identifier) { { @@ -4855,6 +5572,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_throws_; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterThrows_(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitThrows_(this); + } } public final Throws_Context throws_() throws RecognitionException { @@ -4891,6 +5616,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_exceptionTypeList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExceptionTypeList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExceptionTypeList(this); + } } public final ExceptionTypeListContext exceptionTypeList() throws RecognitionException { @@ -4942,6 +5675,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_exceptionType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExceptionType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExceptionType(this); + } } public final ExceptionTypeContext exceptionType() throws RecognitionException { @@ -4949,6 +5690,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 166, RULE_exceptionType); try { setState(1133); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,100,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -4985,6 +5727,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodBody(this); + } } public final MethodBodyContext methodBody() throws RecognitionException { @@ -4992,6 +5742,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 168, RULE_methodBody); try { setState(1137); + _errHandler.sync(this); switch (_input.LA(1)) { case LBRACE: enterOuterAlt(_localctx, 1); @@ -5030,6 +5781,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_instanceInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInstanceInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInstanceInitializer(this); + } } public final InstanceInitializerContext instanceInitializer() throws RecognitionException { @@ -5061,6 +5820,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_staticInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStaticInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStaticInitializer(this); + } } public final StaticInitializerContext staticInitializer() throws RecognitionException { @@ -5106,6 +5873,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constructorDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorDeclaration(this); + } } public final ConstructorDeclarationContext constructorDeclaration() throws RecognitionException { @@ -5132,6 +5907,7 @@ public class Java8Parser extends Parser { setState(1150); constructorDeclarator(); setState(1152); + _errHandler.sync(this); _la = _input.LA(1); if (_la==THROWS) { { @@ -5163,6 +5939,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constructorModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorModifier(this); + } } public final ConstructorModifierContext constructorModifier() throws RecognitionException { @@ -5170,6 +5954,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 176, RULE_constructorModifier); try { setState(1160); + _errHandler.sync(this); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); @@ -5228,6 +6013,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constructorDeclarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorDeclarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorDeclarator(this); + } } public final ConstructorDeclaratorContext constructorDeclarator() throws RecognitionException { @@ -5238,6 +6031,7 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { setState(1163); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -5251,6 +6045,7 @@ public class Java8Parser extends Parser { setState(1166); match(LPAREN); setState(1168); + _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) { { @@ -5280,6 +6075,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_simpleTypeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSimpleTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSimpleTypeName(this); + } } public final SimpleTypeNameContext simpleTypeName() throws RecognitionException { @@ -5314,6 +6117,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constructorBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorBody(this); + } } public final ConstructorBodyContext constructorBody() throws RecognitionException { @@ -5326,6 +6137,7 @@ public class Java8Parser extends Parser { setState(1174); match(LBRACE); setState(1176); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,107,_ctx) ) { case 1: { @@ -5335,8 +6147,9 @@ public class Java8Parser extends Parser { break; } setState(1179); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (INC - 64)) | (1L << (DEC - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { setState(1178); blockStatements(); @@ -5375,6 +6188,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_explicitConstructorInvocation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExplicitConstructorInvocation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExplicitConstructorInvocation(this); + } } public final ExplicitConstructorInvocationContext explicitConstructorInvocation() throws RecognitionException { @@ -5383,11 +6204,13 @@ public class Java8Parser extends Parser { int _la; try { setState(1229); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,117,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(1184); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -5401,8 +6224,9 @@ public class Java8Parser extends Parser { setState(1187); match(LPAREN); setState(1189); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { setState(1188); argumentList(); @@ -5419,6 +6243,7 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 2); { setState(1194); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -5432,8 +6257,9 @@ public class Java8Parser extends Parser { setState(1197); match(LPAREN); setState(1199); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { setState(1198); argumentList(); @@ -5454,6 +6280,7 @@ public class Java8Parser extends Parser { setState(1204); match(DOT); setState(1206); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -5467,8 +6294,9 @@ public class Java8Parser extends Parser { setState(1209); match(LPAREN); setState(1211); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { setState(1210); argumentList(); @@ -5489,6 +6317,7 @@ public class Java8Parser extends Parser { setState(1217); match(DOT); setState(1219); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -5502,8 +6331,9 @@ public class Java8Parser extends Parser { setState(1222); match(LPAREN); setState(1224); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { setState(1223); argumentList(); @@ -5547,6 +6377,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumDeclaration(this); + } } public final EnumDeclarationContext enumDeclaration() throws RecognitionException { @@ -5575,6 +6413,7 @@ public class Java8Parser extends Parser { setState(1238); match(Identifier); setState(1240); + _errHandler.sync(this); _la = _input.LA(1); if (_la==IMPLEMENTS) { { @@ -5609,6 +6448,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumBody(this); + } } public final EnumBodyContext enumBody() throws RecognitionException { @@ -5621,6 +6468,7 @@ public class Java8Parser extends Parser { setState(1244); match(LBRACE); setState(1246); + _errHandler.sync(this); _la = _input.LA(1); if (_la==Identifier || _la==AT) { { @@ -5630,6 +6478,7 @@ public class Java8Parser extends Parser { } setState(1249); + _errHandler.sync(this); _la = _input.LA(1); if (_la==COMMA) { { @@ -5639,6 +6488,7 @@ public class Java8Parser extends Parser { } setState(1252); + _errHandler.sync(this); _la = _input.LA(1); if (_la==SEMI) { { @@ -5673,6 +6523,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumConstantList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstantList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantList(this); + } } public final EnumConstantListContext enumConstantList() throws RecognitionException { @@ -5733,6 +6591,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumConstant; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstant(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstant(this); + } } public final EnumConstantContext enumConstant() throws RecognitionException { @@ -5759,14 +6625,16 @@ public class Java8Parser extends Parser { setState(1270); match(Identifier); setState(1276); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LPAREN) { { setState(1271); match(LPAREN); setState(1273); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { setState(1272); argumentList(); @@ -5779,6 +6647,7 @@ public class Java8Parser extends Parser { } setState(1279); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LBRACE) { { @@ -5808,6 +6677,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumConstantModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstantModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantModifier(this); + } } public final EnumConstantModifierContext enumConstantModifier() throws RecognitionException { @@ -5842,6 +6719,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumBodyDeclarations; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumBodyDeclarations(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumBodyDeclarations(this); + } } public final EnumBodyDeclarationsContext enumBodyDeclarations() throws RecognitionException { @@ -5856,7 +6741,7 @@ public class Java8Parser extends Parser { setState(1287); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (LT - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) { { { setState(1284); @@ -5891,6 +6776,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceDeclaration(this); + } } public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException { @@ -5898,6 +6791,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 198, RULE_interfaceDeclaration); try { setState(1292); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,129,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -5947,6 +6841,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_normalInterfaceDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNormalInterfaceDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNormalInterfaceDeclaration(this); + } } public final NormalInterfaceDeclarationContext normalInterfaceDeclaration() throws RecognitionException { @@ -5975,6 +6877,7 @@ public class Java8Parser extends Parser { setState(1301); match(Identifier); setState(1303); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { @@ -5984,6 +6887,7 @@ public class Java8Parser extends Parser { } setState(1306); + _errHandler.sync(this); _la = _input.LA(1); if (_la==EXTENDS) { { @@ -6015,6 +6919,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceModifier(this); + } } public final InterfaceModifierContext interfaceModifier() throws RecognitionException { @@ -6022,6 +6934,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 202, RULE_interfaceModifier); try { setState(1317); + _errHandler.sync(this); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); @@ -6095,6 +7008,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_extendsInterfaces; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExtendsInterfaces(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExtendsInterfaces(this); + } } public final ExtendsInterfacesContext extendsInterfaces() throws RecognitionException { @@ -6131,6 +7052,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceBody(this); + } } public final InterfaceBodyContext interfaceBody() throws RecognitionException { @@ -6145,7 +7074,7 @@ public class Java8Parser extends Parser { setState(1326); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DEFAULT) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << VOID))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (LT - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DEFAULT) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << VOID) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) { { { setState(1323); @@ -6188,6 +7117,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceMemberDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceMemberDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMemberDeclaration(this); + } } public final InterfaceMemberDeclarationContext interfaceMemberDeclaration() throws RecognitionException { @@ -6195,6 +7132,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 208, RULE_interfaceMemberDeclaration); try { setState(1336); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,135,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -6261,6 +7199,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constantDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantDeclaration(this); + } } public final ConstantDeclarationContext constantDeclaration() throws RecognitionException { @@ -6311,6 +7257,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constantModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantModifier(this); + } } public final ConstantModifierContext constantModifier() throws RecognitionException { @@ -6318,6 +7272,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 212, RULE_constantModifier); try { setState(1352); + _errHandler.sync(this); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); @@ -6379,6 +7334,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceMethodDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceMethodDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMethodDeclaration(this); + } } public final InterfaceMethodDeclarationContext interfaceMethodDeclaration() throws RecognitionException { @@ -6427,6 +7390,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceMethodModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceMethodModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMethodModifier(this); + } } public final InterfaceMethodModifierContext interfaceMethodModifier() throws RecognitionException { @@ -6434,6 +7405,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 216, RULE_interfaceMethodModifier); try { setState(1369); + _errHandler.sync(this); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); @@ -6507,6 +7479,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeDeclaration(this); + } } public final AnnotationTypeDeclarationContext annotationTypeDeclaration() throws RecognitionException { @@ -6564,6 +7544,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeBody(this); + } } public final AnnotationTypeBodyContext annotationTypeBody() throws RecognitionException { @@ -6578,7 +7566,7 @@ public class Java8Parser extends Parser { setState(1386); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SEMI))) != 0) || _la==Identifier || _la==AT) { { { setState(1383); @@ -6621,6 +7609,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeMemberDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeMemberDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeMemberDeclaration(this); + } } public final AnnotationTypeMemberDeclarationContext annotationTypeMemberDeclaration() throws RecognitionException { @@ -6628,6 +7624,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 222, RULE_annotationTypeMemberDeclaration); try { setState(1396); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,142,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -6698,6 +7695,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeElementDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeElementDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeElementDeclaration(this); + } } public final AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration() throws RecognitionException { @@ -6730,6 +7735,7 @@ public class Java8Parser extends Parser { setState(1407); match(RPAREN); setState(1409); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LBRACK || _la==AT) { { @@ -6739,6 +7745,7 @@ public class Java8Parser extends Parser { } setState(1412); + _errHandler.sync(this); _la = _input.LA(1); if (_la==DEFAULT) { { @@ -6770,6 +7777,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeElementModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeElementModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeElementModifier(this); + } } public final AnnotationTypeElementModifierContext annotationTypeElementModifier() throws RecognitionException { @@ -6777,6 +7792,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 226, RULE_annotationTypeElementModifier); try { setState(1419); + _errHandler.sync(this); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); @@ -6822,6 +7838,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_defaultValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDefaultValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDefaultValue(this); + } } public final DefaultValueContext defaultValue() throws RecognitionException { @@ -6861,6 +7885,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotation(this); + } } public final AnnotationContext annotation() throws RecognitionException { @@ -6868,6 +7900,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 230, RULE_annotation); try { setState(1427); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,147,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -6914,6 +7947,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_normalAnnotation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNormalAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNormalAnnotation(this); + } } public final NormalAnnotationContext normalAnnotation() throws RecognitionException { @@ -6930,6 +7971,7 @@ public class Java8Parser extends Parser { setState(1431); match(LPAREN); setState(1433); + _errHandler.sync(this); _la = _input.LA(1); if (_la==Identifier) { { @@ -6964,6 +8006,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValuePairList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValuePairList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValuePairList(this); + } } public final ElementValuePairListContext elementValuePairList() throws RecognitionException { @@ -7013,6 +8063,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValuePair; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValuePair(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValuePair(this); + } } public final ElementValuePairContext elementValuePair() throws RecognitionException { @@ -7054,6 +8112,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValue(this); + } } public final ElementValueContext elementValue() throws RecognitionException { @@ -7061,6 +8127,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 238, RULE_elementValue); try { setState(1452); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,150,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -7104,6 +8171,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValueArrayInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValueArrayInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValueArrayInitializer(this); + } } public final ElementValueArrayInitializerContext elementValueArrayInitializer() throws RecognitionException { @@ -7116,8 +8191,9 @@ public class Java8Parser extends Parser { setState(1454); match(LBRACE); setState(1456); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { setState(1455); elementValueList(); @@ -7125,6 +8201,7 @@ public class Java8Parser extends Parser { } setState(1459); + _errHandler.sync(this); _la = _input.LA(1); if (_la==COMMA) { { @@ -7159,6 +8236,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValueList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValueList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValueList(this); + } } public final ElementValueListContext elementValueList() throws RecognitionException { @@ -7209,6 +8294,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_markerAnnotation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMarkerAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMarkerAnnotation(this); + } } public final MarkerAnnotationContext markerAnnotation() throws RecognitionException { @@ -7245,6 +8338,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_singleElementAnnotation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSingleElementAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSingleElementAnnotation(this); + } } public final SingleElementAnnotationContext singleElementAnnotation() throws RecognitionException { @@ -7284,6 +8385,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayInitializer(this); + } } public final ArrayInitializerContext arrayInitializer() throws RecognitionException { @@ -7296,8 +8405,9 @@ public class Java8Parser extends Parser { setState(1480); match(LBRACE); setState(1482); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { setState(1481); variableInitializerList(); @@ -7305,6 +8415,7 @@ public class Java8Parser extends Parser { } setState(1485); + _errHandler.sync(this); _la = _input.LA(1); if (_la==COMMA) { { @@ -7339,6 +8450,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableInitializerList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableInitializerList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableInitializerList(this); + } } public final VariableInitializerListContext variableInitializerList() throws RecognitionException { @@ -7389,6 +8508,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_block; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlock(this); + } } public final BlockContext block() throws RecognitionException { @@ -7401,8 +8528,9 @@ public class Java8Parser extends Parser { setState(1497); match(LBRACE); setState(1499); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (INC - 64)) | (1L << (DEC - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { setState(1498); blockStatements(); @@ -7435,6 +8563,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_blockStatements; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBlockStatements(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlockStatements(this); + } } public final BlockStatementsContext blockStatements() throws RecognitionException { @@ -7449,7 +8585,7 @@ public class Java8Parser extends Parser { setState(1507); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (INC - 64)) | (1L << (DEC - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { { setState(1504); @@ -7487,6 +8623,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_blockStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBlockStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlockStatement(this); + } } public final BlockStatementContext blockStatement() throws RecognitionException { @@ -7494,6 +8638,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 256, RULE_blockStatement); try { setState(1513); + _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,159,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -7537,6 +8682,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_localVariableDeclarationStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLocalVariableDeclarationStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLocalVariableDeclarationStatement(this); + } } public final LocalVariableDeclarationStatementContext localVariableDeclarationStatement() throws RecognitionException { @@ -7570,38 +8723,24 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannTypeOrAuto; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannTypeOrAuto(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannTypeOrAuto(this); + } } public final UnannTypeOrAutoContext unannTypeOrAuto() throws RecognitionException { UnannTypeOrAutoContext _localctx = new UnannTypeOrAutoContext(_ctx, getState()); enterRule(_localctx, 260, RULE_unannTypeOrAuto); try { - setState(1520); - switch (_input.LA(1)) { - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case SHORT: - case Identifier: - enterOuterAlt(_localctx, 1); - { - setState(1518); - unannType(); - } - break; - case T__0: - enterOuterAlt(_localctx, 2); - { - setState(1519); - match(T__0); - } - break; - default: - throw new NoViableAltException(this); + enterOuterAlt(_localctx, 1); + { + setState(1518); + unannType(); } } catch (RecognitionException re) { @@ -7632,6 +8771,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_localVariableDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLocalVariableDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLocalVariableDeclaration(this); + } } public final LocalVariableDeclarationContext localVariableDeclaration() throws RecognitionException { @@ -7641,23 +8788,23 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1525); + setState(1523); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { - setState(1522); + setState(1520); variableModifier(); } } - setState(1527); + setState(1525); _errHandler.sync(this); _la = _input.LA(1); } - setState(1528); + setState(1526); unannTypeOrAuto(); - setState(1529); + setState(1527); variableDeclaratorList(); } } @@ -7695,53 +8842,62 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_statement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatement(this); + } } public final StatementContext statement() throws RecognitionException { StatementContext _localctx = new StatementContext(_ctx, getState()); enterRule(_localctx, 264, RULE_statement); try { - setState(1537); - switch ( getInterpreter().adaptivePredict(_input,162,_ctx) ) { + setState(1535); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,161,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1531); + setState(1529); statementWithoutTrailingSubstatement(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1532); + setState(1530); labeledStatement(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1533); + setState(1531); ifThenStatement(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1534); + setState(1532); ifThenElseStatement(); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1535); + setState(1533); whileStatement(); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(1536); + setState(1534); forStatement(); } break; @@ -7778,46 +8934,55 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_statementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementNoShortIf(this); + } } public final StatementNoShortIfContext statementNoShortIf() throws RecognitionException { StatementNoShortIfContext _localctx = new StatementNoShortIfContext(_ctx, getState()); enterRule(_localctx, 266, RULE_statementNoShortIf); try { - setState(1544); - switch ( getInterpreter().adaptivePredict(_input,163,_ctx) ) { + setState(1542); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,162,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1539); + setState(1537); statementWithoutTrailingSubstatement(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1540); + setState(1538); labeledStatementNoShortIf(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1541); + setState(1539); ifThenElseStatementNoShortIf(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1542); + setState(1540); whileStatementNoShortIf(); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1543); + setState(1541); forStatementNoShortIf(); } break; @@ -7875,25 +9040,34 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_statementWithoutTrailingSubstatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementWithoutTrailingSubstatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementWithoutTrailingSubstatement(this); + } } public final StatementWithoutTrailingSubstatementContext statementWithoutTrailingSubstatement() throws RecognitionException { StatementWithoutTrailingSubstatementContext _localctx = new StatementWithoutTrailingSubstatementContext(_ctx, getState()); enterRule(_localctx, 268, RULE_statementWithoutTrailingSubstatement); try { - setState(1558); + setState(1556); + _errHandler.sync(this); switch (_input.LA(1)) { case LBRACE: enterOuterAlt(_localctx, 1); { - setState(1546); + setState(1544); block(); } break; case SEMI: enterOuterAlt(_localctx, 2); { - setState(1547); + setState(1545); emptyStatement(); } break; @@ -7922,70 +9096,70 @@ public class Java8Parser extends Parser { case AT: enterOuterAlt(_localctx, 3); { - setState(1548); + setState(1546); expressionStatement(); } break; case ASSERT: enterOuterAlt(_localctx, 4); { - setState(1549); + setState(1547); assertStatement(); } break; case SWITCH: enterOuterAlt(_localctx, 5); { - setState(1550); + setState(1548); switchStatement(); } break; case DO: enterOuterAlt(_localctx, 6); { - setState(1551); + setState(1549); doStatement(); } break; case BREAK: enterOuterAlt(_localctx, 7); { - setState(1552); + setState(1550); breakStatement(); } break; case CONTINUE: enterOuterAlt(_localctx, 8); { - setState(1553); + setState(1551); continueStatement(); } break; case RETURN: enterOuterAlt(_localctx, 9); { - setState(1554); + setState(1552); returnStatement(); } break; case SYNCHRONIZED: enterOuterAlt(_localctx, 10); { - setState(1555); + setState(1553); synchronizedStatement(); } break; case THROW: enterOuterAlt(_localctx, 11); { - setState(1556); + setState(1554); throwStatement(); } break; case TRY: enterOuterAlt(_localctx, 12); { - setState(1557); + setState(1555); tryStatement(); } break; @@ -8009,6 +9183,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_emptyStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEmptyStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEmptyStatement(this); + } } public final EmptyStatementContext emptyStatement() throws RecognitionException { @@ -8017,7 +9199,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1560); + setState(1558); match(SEMI); } } @@ -8041,6 +9223,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_labeledStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLabeledStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLabeledStatement(this); + } } public final LabeledStatementContext labeledStatement() throws RecognitionException { @@ -8049,11 +9239,11 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1562); + setState(1560); match(Identifier); - setState(1563); + setState(1561); match(COLON); - setState(1564); + setState(1562); statement(); } } @@ -8077,6 +9267,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_labeledStatementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLabeledStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLabeledStatementNoShortIf(this); + } } public final LabeledStatementNoShortIfContext labeledStatementNoShortIf() throws RecognitionException { @@ -8085,11 +9283,11 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1566); + setState(1564); match(Identifier); - setState(1567); + setState(1565); match(COLON); - setState(1568); + setState(1566); statementNoShortIf(); } } @@ -8112,6 +9310,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_expressionStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpressionStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpressionStatement(this); + } } public final ExpressionStatementContext expressionStatement() throws RecognitionException { @@ -8120,9 +9326,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1570); + setState(1568); statementExpression(); - setState(1571); + setState(1569); match(SEMI); } } @@ -8163,60 +9369,69 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_statementExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementExpression(this); + } } public final StatementExpressionContext statementExpression() throws RecognitionException { StatementExpressionContext _localctx = new StatementExpressionContext(_ctx, getState()); enterRule(_localctx, 278, RULE_statementExpression); try { - setState(1580); - switch ( getInterpreter().adaptivePredict(_input,165,_ctx) ) { + setState(1578); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,164,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1573); + setState(1571); assignment(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1574); + setState(1572); preIncrementExpression(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1575); + setState(1573); preDecrementExpression(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1576); + setState(1574); postIncrementExpression(); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1577); + setState(1575); postDecrementExpression(); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(1578); + setState(1576); methodInvocation(); } break; case 7: enterOuterAlt(_localctx, 7); { - setState(1579); + setState(1577); classInstanceCreationExpression(); } break; @@ -8244,6 +9459,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_ifThenStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIfThenStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIfThenStatement(this); + } } public final IfThenStatementContext ifThenStatement() throws RecognitionException { @@ -8252,15 +9475,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1582); + setState(1580); match(IF); - setState(1583); + setState(1581); match(LPAREN); - setState(1584); + setState(1582); expression(); - setState(1585); + setState(1583); match(RPAREN); - setState(1586); + setState(1584); statement(); } } @@ -8289,6 +9512,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_ifThenElseStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIfThenElseStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIfThenElseStatement(this); + } } public final IfThenElseStatementContext ifThenElseStatement() throws RecognitionException { @@ -8297,19 +9528,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1588); + setState(1586); match(IF); - setState(1589); + setState(1587); match(LPAREN); - setState(1590); + setState(1588); expression(); - setState(1591); + setState(1589); match(RPAREN); - setState(1592); + setState(1590); statementNoShortIf(); - setState(1593); + setState(1591); match(ELSE); - setState(1594); + setState(1592); statement(); } } @@ -8338,6 +9569,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_ifThenElseStatementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIfThenElseStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIfThenElseStatementNoShortIf(this); + } } public final IfThenElseStatementNoShortIfContext ifThenElseStatementNoShortIf() throws RecognitionException { @@ -8346,19 +9585,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1596); + setState(1594); match(IF); - setState(1597); + setState(1595); match(LPAREN); - setState(1598); + setState(1596); expression(); - setState(1599); + setState(1597); match(RPAREN); - setState(1600); + setState(1598); statementNoShortIf(); - setState(1601); + setState(1599); match(ELSE); - setState(1602); + setState(1600); statementNoShortIf(); } } @@ -8384,37 +9623,46 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_assertStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssertStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssertStatement(this); + } } public final AssertStatementContext assertStatement() throws RecognitionException { AssertStatementContext _localctx = new AssertStatementContext(_ctx, getState()); enterRule(_localctx, 286, RULE_assertStatement); try { - setState(1614); - switch ( getInterpreter().adaptivePredict(_input,166,_ctx) ) { + setState(1612); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,165,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1604); + setState(1602); match(ASSERT); - setState(1605); + setState(1603); expression(); - setState(1606); + setState(1604); match(SEMI); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1608); + setState(1606); match(ASSERT); + setState(1607); + expression(); + setState(1608); + match(COLON); setState(1609); expression(); setState(1610); - match(COLON); - setState(1611); - expression(); - setState(1612); match(SEMI); } break; @@ -8442,6 +9690,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_switchStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchStatement(this); + } } public final SwitchStatementContext switchStatement() throws RecognitionException { @@ -8450,15 +9706,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1616); + setState(1614); match(SWITCH); - setState(1617); + setState(1615); match(LPAREN); - setState(1618); + setState(1616); expression(); - setState(1619); + setState(1617); match(RPAREN); - setState(1620); + setState(1618); switchBlock(); } } @@ -8490,6 +9746,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_switchBlock; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchBlock(this); + } } public final SwitchBlockContext switchBlock() throws RecognitionException { @@ -8500,39 +9764,39 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(1622); + setState(1620); match(LBRACE); - setState(1626); + setState(1624); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,167,_ctx); + _alt = getInterpreter().adaptivePredict(_input,166,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1623); + setState(1621); switchBlockStatementGroup(); } } } - setState(1628); + setState(1626); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,167,_ctx); + _alt = getInterpreter().adaptivePredict(_input,166,_ctx); } - setState(1632); + setState(1630); _errHandler.sync(this); _la = _input.LA(1); while (_la==CASE || _la==DEFAULT) { { { - setState(1629); + setState(1627); switchLabel(); } } - setState(1634); + setState(1632); _errHandler.sync(this); _la = _input.LA(1); } - setState(1635); + setState(1633); match(RBRACE); } } @@ -8558,6 +9822,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_switchBlockStatementGroup; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchBlockStatementGroup(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchBlockStatementGroup(this); + } } public final SwitchBlockStatementGroupContext switchBlockStatementGroup() throws RecognitionException { @@ -8566,9 +9838,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1637); + setState(1635); switchLabels(); - setState(1638); + setState(1636); blockStatements(); } } @@ -8594,6 +9866,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_switchLabels; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchLabels(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchLabels(this); + } } public final SwitchLabelsContext switchLabels() throws RecognitionException { @@ -8603,19 +9883,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1640); + setState(1638); switchLabel(); - setState(1644); + setState(1642); _errHandler.sync(this); _la = _input.LA(1); while (_la==CASE || _la==DEFAULT) { { { - setState(1641); + setState(1639); switchLabel(); } } - setState(1646); + setState(1644); _errHandler.sync(this); _la = _input.LA(1); } @@ -8643,42 +9923,51 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_switchLabel; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchLabel(this); + } } public final SwitchLabelContext switchLabel() throws RecognitionException { SwitchLabelContext _localctx = new SwitchLabelContext(_ctx, getState()); enterRule(_localctx, 296, RULE_switchLabel); try { - setState(1657); - switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) { + setState(1655); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,169,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1647); + setState(1645); match(CASE); - setState(1648); + setState(1646); constantExpression(); - setState(1649); + setState(1647); match(COLON); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1651); + setState(1649); match(CASE); - setState(1652); + setState(1650); enumConstantName(); - setState(1653); + setState(1651); match(COLON); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1655); + setState(1653); match(DEFAULT); - setState(1656); + setState(1654); match(COLON); } break; @@ -8701,6 +9990,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumConstantName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstantName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantName(this); + } } public final EnumConstantNameContext enumConstantName() throws RecognitionException { @@ -8709,7 +10006,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1659); + setState(1657); match(Identifier); } } @@ -8735,6 +10032,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_whileStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWhileStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWhileStatement(this); + } } public final WhileStatementContext whileStatement() throws RecognitionException { @@ -8743,15 +10048,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1661); + setState(1659); match(WHILE); - setState(1662); + setState(1660); match(LPAREN); - setState(1663); + setState(1661); expression(); - setState(1664); + setState(1662); match(RPAREN); - setState(1665); + setState(1663); statement(); } } @@ -8777,6 +10082,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_whileStatementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWhileStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWhileStatementNoShortIf(this); + } } public final WhileStatementNoShortIfContext whileStatementNoShortIf() throws RecognitionException { @@ -8785,15 +10098,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1667); + setState(1665); match(WHILE); - setState(1668); + setState(1666); match(LPAREN); - setState(1669); + setState(1667); expression(); - setState(1670); + setState(1668); match(RPAREN); - setState(1671); + setState(1669); statementNoShortIf(); } } @@ -8819,6 +10132,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_doStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDoStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDoStatement(this); + } } public final DoStatementContext doStatement() throws RecognitionException { @@ -8827,19 +10148,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1673); + setState(1671); match(DO); - setState(1674); + setState(1672); statement(); - setState(1675); + setState(1673); match(WHILE); - setState(1676); + setState(1674); match(LPAREN); - setState(1677); + setState(1675); expression(); - setState(1678); + setState(1676); match(RPAREN); - setState(1679); + setState(1677); match(SEMI); } } @@ -8865,25 +10186,34 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_forStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForStatement(this); + } } public final ForStatementContext forStatement() throws RecognitionException { ForStatementContext _localctx = new ForStatementContext(_ctx, getState()); enterRule(_localctx, 306, RULE_forStatement); try { - setState(1683); - switch ( getInterpreter().adaptivePredict(_input,171,_ctx) ) { + setState(1681); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1681); + setState(1679); basicForStatement(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1682); + setState(1680); enhancedForStatement(); } break; @@ -8911,25 +10241,34 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_forStatementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForStatementNoShortIf(this); + } } public final ForStatementNoShortIfContext forStatementNoShortIf() throws RecognitionException { ForStatementNoShortIfContext _localctx = new ForStatementNoShortIfContext(_ctx, getState()); enterRule(_localctx, 308, RULE_forStatementNoShortIf); try { - setState(1687); - switch ( getInterpreter().adaptivePredict(_input,172,_ctx) ) { + setState(1685); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,171,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1685); + setState(1683); basicForStatementNoShortIf(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1686); + setState(1684); enhancedForStatementNoShortIf(); } break; @@ -8963,6 +10302,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_basicForStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBasicForStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBasicForStatement(this); + } } public final BasicForStatementContext basicForStatement() throws RecognitionException { @@ -8972,44 +10319,47 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1689); + setState(1687); match(FOR); - setState(1690); + setState(1688); match(LPAREN); - setState(1692); + setState(1690); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (INC - 80)) | (1L << (DEC - 80)) | (1L << (Identifier - 80)) | (1L << (AT - 80)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { - setState(1691); + setState(1689); forInit(); } } - setState(1694); + setState(1692); match(SEMI); - setState(1696); + setState(1694); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1695); + setState(1693); expression(); } } - setState(1698); + setState(1696); match(SEMI); - setState(1700); + setState(1698); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (INC - 80)) | (1L << (DEC - 80)) | (1L << (Identifier - 80)) | (1L << (AT - 80)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { - setState(1699); + setState(1697); forUpdate(); } } - setState(1702); + setState(1700); match(RPAREN); - setState(1703); + setState(1701); statement(); } } @@ -9041,6 +10391,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_basicForStatementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBasicForStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBasicForStatementNoShortIf(this); + } } public final BasicForStatementNoShortIfContext basicForStatementNoShortIf() throws RecognitionException { @@ -9050,44 +10408,47 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1705); + setState(1703); match(FOR); - setState(1706); + setState(1704); match(LPAREN); - setState(1708); + setState(1706); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (INC - 80)) | (1L << (DEC - 80)) | (1L << (Identifier - 80)) | (1L << (AT - 80)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { - setState(1707); + setState(1705); forInit(); } } - setState(1710); + setState(1708); match(SEMI); - setState(1712); + setState(1710); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1711); + setState(1709); expression(); } } - setState(1714); + setState(1712); match(SEMI); - setState(1716); + setState(1714); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (INC - 80)) | (1L << (DEC - 80)) | (1L << (Identifier - 80)) | (1L << (AT - 80)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { - setState(1715); + setState(1713); forUpdate(); } } - setState(1718); + setState(1716); match(RPAREN); - setState(1719); + setState(1717); statementNoShortIf(); } } @@ -9113,25 +10474,34 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_forInit; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForInit(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForInit(this); + } } public final ForInitContext forInit() throws RecognitionException { ForInitContext _localctx = new ForInitContext(_ctx, getState()); enterRule(_localctx, 314, RULE_forInit); try { - setState(1723); - switch ( getInterpreter().adaptivePredict(_input,179,_ctx) ) { + setState(1721); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,178,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1721); + setState(1719); statementExpressionList(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1722); + setState(1720); localVariableDeclaration(); } break; @@ -9156,6 +10526,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_forUpdate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForUpdate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForUpdate(this); + } } public final ForUpdateContext forUpdate() throws RecognitionException { @@ -9164,7 +10542,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1725); + setState(1723); statementExpressionList(); } } @@ -9190,6 +10568,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_statementExpressionList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementExpressionList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementExpressionList(this); + } } public final StatementExpressionListContext statementExpressionList() throws RecognitionException { @@ -9199,21 +10585,21 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1727); + setState(1725); statementExpression(); - setState(1732); + setState(1730); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { - setState(1728); + setState(1726); match(COMMA); - setState(1729); + setState(1727); statementExpression(); } } - setState(1734); + setState(1732); _errHandler.sync(this); _la = _input.LA(1); } @@ -9253,6 +10639,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enhancedForStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnhancedForStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnhancedForStatement(this); + } } public final EnhancedForStatementContext enhancedForStatement() throws RecognitionException { @@ -9262,35 +10656,35 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1735); + setState(1733); match(FOR); - setState(1736); + setState(1734); match(LPAREN); - setState(1740); + setState(1738); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { - setState(1737); + setState(1735); variableModifier(); } } - setState(1742); + setState(1740); _errHandler.sync(this); _la = _input.LA(1); } - setState(1743); + setState(1741); unannType(); - setState(1744); + setState(1742); variableDeclaratorId(); - setState(1745); + setState(1743); match(COLON); - setState(1746); + setState(1744); expression(); - setState(1747); + setState(1745); match(RPAREN); - setState(1748); + setState(1746); statement(); } } @@ -9328,6 +10722,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enhancedForStatementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnhancedForStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnhancedForStatementNoShortIf(this); + } } public final EnhancedForStatementNoShortIfContext enhancedForStatementNoShortIf() throws RecognitionException { @@ -9337,35 +10739,35 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1750); + setState(1748); match(FOR); - setState(1751); + setState(1749); match(LPAREN); - setState(1755); + setState(1753); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { - setState(1752); + setState(1750); variableModifier(); } } - setState(1757); + setState(1755); _errHandler.sync(this); _la = _input.LA(1); } - setState(1758); + setState(1756); unannType(); - setState(1759); + setState(1757); variableDeclaratorId(); - setState(1760); + setState(1758); match(COLON); - setState(1761); + setState(1759); expression(); - setState(1762); + setState(1760); match(RPAREN); - setState(1763); + setState(1761); statementNoShortIf(); } } @@ -9386,6 +10788,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_breakStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBreakStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBreakStatement(this); + } } public final BreakStatementContext breakStatement() throws RecognitionException { @@ -9395,18 +10805,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1765); + setState(1763); match(BREAK); - setState(1767); + setState(1765); + _errHandler.sync(this); _la = _input.LA(1); if (_la==Identifier) { { - setState(1766); + setState(1764); match(Identifier); } } - setState(1769); + setState(1767); match(SEMI); } } @@ -9427,6 +10838,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_continueStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterContinueStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitContinueStatement(this); + } } public final ContinueStatementContext continueStatement() throws RecognitionException { @@ -9436,18 +10855,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1771); + setState(1769); match(CONTINUE); - setState(1773); + setState(1771); + _errHandler.sync(this); _la = _input.LA(1); if (_la==Identifier) { { - setState(1772); + setState(1770); match(Identifier); } } - setState(1775); + setState(1773); match(SEMI); } } @@ -9470,6 +10890,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_returnStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterReturnStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitReturnStatement(this); + } } public final ReturnStatementContext returnStatement() throws RecognitionException { @@ -9479,18 +10907,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1777); + setState(1775); match(RETURN); - setState(1779); + setState(1777); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1778); + setState(1776); expression(); } } - setState(1781); + setState(1779); match(SEMI); } } @@ -9513,6 +10942,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_throwStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterThrowStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitThrowStatement(this); + } } public final ThrowStatementContext throwStatement() throws RecognitionException { @@ -9521,11 +10958,11 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1783); + setState(1781); match(THROW); - setState(1784); + setState(1782); expression(); - setState(1785); + setState(1783); match(SEMI); } } @@ -9551,6 +10988,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_synchronizedStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSynchronizedStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSynchronizedStatement(this); + } } public final SynchronizedStatementContext synchronizedStatement() throws RecognitionException { @@ -9559,15 +11004,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1787); + setState(1785); match(SYNCHRONIZED); - setState(1788); + setState(1786); match(LPAREN); - setState(1789); + setState(1787); expression(); - setState(1790); + setState(1788); match(RPAREN); - setState(1791); + setState(1789); block(); } } @@ -9599,6 +11044,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_tryStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTryStatement(this); + } } public final TryStatementContext tryStatement() throws RecognitionException { @@ -9606,43 +11059,45 @@ public class Java8Parser extends Parser { enterRule(_localctx, 334, RULE_tryStatement); int _la; try { - setState(1805); - switch ( getInterpreter().adaptivePredict(_input,187,_ctx) ) { + setState(1803); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,186,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1793); + setState(1791); match(TRY); - setState(1794); + setState(1792); block(); - setState(1795); + setState(1793); catches(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1797); + setState(1795); match(TRY); - setState(1798); + setState(1796); block(); - setState(1800); + setState(1798); + _errHandler.sync(this); _la = _input.LA(1); if (_la==CATCH) { { - setState(1799); + setState(1797); catches(); } } - setState(1802); + setState(1800); finally_(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1804); + setState(1802); tryWithResourcesStatement(); } break; @@ -9670,6 +11125,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_catches; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatches(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatches(this); + } } public final CatchesContext catches() throws RecognitionException { @@ -9679,19 +11142,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1807); + setState(1805); catchClause(); - setState(1811); + setState(1809); _errHandler.sync(this); _la = _input.LA(1); while (_la==CATCH) { { { - setState(1808); + setState(1806); catchClause(); } } - setState(1813); + setState(1811); _errHandler.sync(this); _la = _input.LA(1); } @@ -9719,6 +11182,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_catchClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatchClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchClause(this); + } } public final CatchClauseContext catchClause() throws RecognitionException { @@ -9727,15 +11198,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1814); + setState(1812); match(CATCH); - setState(1815); + setState(1813); match(LPAREN); - setState(1816); + setState(1814); catchFormalParameter(); - setState(1817); + setState(1815); match(RPAREN); - setState(1818); + setState(1816); block(); } } @@ -9767,6 +11238,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_catchFormalParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatchFormalParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchFormalParameter(this); + } } public final CatchFormalParameterContext catchFormalParameter() throws RecognitionException { @@ -9776,23 +11255,23 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1823); + setState(1821); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { - setState(1820); + setState(1818); variableModifier(); } } - setState(1825); + setState(1823); _errHandler.sync(this); _la = _input.LA(1); } - setState(1826); + setState(1824); catchType(); - setState(1827); + setState(1825); variableDeclaratorId(); } } @@ -9821,6 +11300,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_catchType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatchType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchType(this); + } } public final CatchTypeContext catchType() throws RecognitionException { @@ -9830,21 +11317,21 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1829); + setState(1827); unannClassType(); - setState(1834); + setState(1832); _errHandler.sync(this); _la = _input.LA(1); while (_la==BITOR) { { { - setState(1830); + setState(1828); match(BITOR); - setState(1831); + setState(1829); classType(); } } - setState(1836); + setState(1834); _errHandler.sync(this); _la = _input.LA(1); } @@ -9869,6 +11356,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_finally_; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFinally_(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFinally_(this); + } } public final Finally_Context finally_() throws RecognitionException { @@ -9877,9 +11372,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1837); + setState(1835); match(FINALLY); - setState(1838); + setState(1836); block(); } } @@ -9911,6 +11406,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_tryWithResourcesStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTryWithResourcesStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTryWithResourcesStatement(this); + } } public final TryWithResourcesStatementContext tryWithResourcesStatement() throws RecognitionException { @@ -9920,26 +11423,28 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1840); + setState(1838); match(TRY); - setState(1841); + setState(1839); resourceSpecification(); - setState(1842); + setState(1840); block(); - setState(1844); + setState(1842); + _errHandler.sync(this); _la = _input.LA(1); if (_la==CATCH) { { - setState(1843); + setState(1841); catches(); } } - setState(1847); + setState(1845); + _errHandler.sync(this); _la = _input.LA(1); if (_la==FINALLY) { { - setState(1846); + setState(1844); finally_(); } } @@ -9965,6 +11470,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_resourceSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResourceSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResourceSpecification(this); + } } public final ResourceSpecificationContext resourceSpecification() throws RecognitionException { @@ -9974,20 +11487,21 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1849); + setState(1847); match(LPAREN); - setState(1850); + setState(1848); resourceList(); - setState(1852); + setState(1850); + _errHandler.sync(this); _la = _input.LA(1); if (_la==SEMI) { { - setState(1851); + setState(1849); match(SEMI); } } - setState(1854); + setState(1852); match(RPAREN); } } @@ -10013,6 +11527,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_resourceList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResourceList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResourceList(this); + } } public final ResourceListContext resourceList() throws RecognitionException { @@ -10022,25 +11544,25 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(1856); + setState(1854); resource(); - setState(1861); + setState(1859); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,194,_ctx); + _alt = getInterpreter().adaptivePredict(_input,193,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1857); + setState(1855); match(SEMI); - setState(1858); + setState(1856); resource(); } } } - setState(1863); + setState(1861); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,194,_ctx); + _alt = getInterpreter().adaptivePredict(_input,193,_ctx); } } } @@ -10075,6 +11597,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_resource; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResource(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResource(this); + } } public final ResourceContext resource() throws RecognitionException { @@ -10084,27 +11614,27 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1867); + setState(1865); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { - setState(1864); + setState(1862); variableModifier(); } } - setState(1869); + setState(1867); _errHandler.sync(this); _la = _input.LA(1); } - setState(1870); + setState(1868); unannType(); - setState(1871); + setState(1869); variableDeclaratorId(); - setState(1872); + setState(1870); match(ASSIGN); - setState(1873); + setState(1871); expression(); } } @@ -10136,6 +11666,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimary(this); + } } public final PrimaryContext primary() throws RecognitionException { @@ -10145,36 +11683,37 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(1877); - switch ( getInterpreter().adaptivePredict(_input,196,_ctx) ) { + setState(1875); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,195,_ctx) ) { case 1: { - setState(1875); + setState(1873); primaryNoNewArray_lfno_primary(); } break; case 2: { - setState(1876); + setState(1874); arrayCreationExpression(); } break; } - setState(1882); + setState(1880); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,197,_ctx); + _alt = getInterpreter().adaptivePredict(_input,196,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1879); + setState(1877); primaryNoNewArray_lf_primary(); } } } - setState(1884); + setState(1882); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,197,_ctx); + _alt = getInterpreter().adaptivePredict(_input,196,_ctx); } } } @@ -10218,6 +11757,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray(this); + } } public final PrimaryNoNewArrayContext primaryNoNewArray() throws RecognitionException { @@ -10225,114 +11772,115 @@ public class Java8Parser extends Parser { enterRule(_localctx, 356, RULE_primaryNoNewArray); int _la; try { - setState(1914); - switch ( getInterpreter().adaptivePredict(_input,199,_ctx) ) { + setState(1912); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,198,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1885); + setState(1883); literal(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1886); + setState(1884); typeName(); - setState(1891); + setState(1889); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(1887); + setState(1885); match(LBRACK); - setState(1888); + setState(1886); match(RBRACK); } } - setState(1893); + setState(1891); _errHandler.sync(this); _la = _input.LA(1); } - setState(1894); + setState(1892); match(DOT); - setState(1895); + setState(1893); match(CLASS); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1897); + setState(1895); match(VOID); - setState(1898); + setState(1896); match(DOT); - setState(1899); + setState(1897); match(CLASS); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1900); + setState(1898); match(THIS); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1901); + setState(1899); typeName(); - setState(1902); + setState(1900); match(DOT); - setState(1903); + setState(1901); match(THIS); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(1905); + setState(1903); match(LPAREN); - setState(1906); + setState(1904); expression(); - setState(1907); + setState(1905); match(RPAREN); } break; case 7: enterOuterAlt(_localctx, 7); { - setState(1909); + setState(1907); classInstanceCreationExpression(); } break; case 8: enterOuterAlt(_localctx, 8); { - setState(1910); + setState(1908); fieldAccess(); } break; case 9: enterOuterAlt(_localctx, 9); { - setState(1911); + setState(1909); arrayAccess(); } break; case 10: enterOuterAlt(_localctx, 10); { - setState(1912); + setState(1910); methodInvocation(); } break; case 11: enterOuterAlt(_localctx, 11); { - setState(1913); + setState(1911); methodReference(); } break; @@ -10354,6 +11902,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_arrayAccess; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_arrayAccess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_arrayAccess(this); + } } public final PrimaryNoNewArray_lf_arrayAccessContext primaryNoNewArray_lf_arrayAccess() throws RecognitionException { @@ -10401,6 +11957,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_arrayAccess; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_arrayAccess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_arrayAccess(this); + } } public final PrimaryNoNewArray_lfno_arrayAccessContext primaryNoNewArray_lfno_arrayAccess() throws RecognitionException { @@ -10408,107 +11972,108 @@ public class Java8Parser extends Parser { enterRule(_localctx, 360, RULE_primaryNoNewArray_lfno_arrayAccess); int _la; try { - setState(1946); - switch ( getInterpreter().adaptivePredict(_input,201,_ctx) ) { + setState(1944); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,200,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1918); + setState(1916); literal(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1919); + setState(1917); typeName(); - setState(1924); + setState(1922); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(1920); + setState(1918); match(LBRACK); - setState(1921); + setState(1919); match(RBRACK); } } - setState(1926); + setState(1924); _errHandler.sync(this); _la = _input.LA(1); } - setState(1927); + setState(1925); match(DOT); - setState(1928); + setState(1926); match(CLASS); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1930); + setState(1928); match(VOID); - setState(1931); + setState(1929); match(DOT); - setState(1932); + setState(1930); match(CLASS); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1933); + setState(1931); match(THIS); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1934); + setState(1932); typeName(); - setState(1935); + setState(1933); match(DOT); - setState(1936); + setState(1934); match(THIS); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(1938); + setState(1936); match(LPAREN); - setState(1939); + setState(1937); expression(); - setState(1940); + setState(1938); match(RPAREN); } break; case 7: enterOuterAlt(_localctx, 7); { - setState(1942); + setState(1940); classInstanceCreationExpression(); } break; case 8: enterOuterAlt(_localctx, 8); { - setState(1943); + setState(1941); fieldAccess(); } break; case 9: enterOuterAlt(_localctx, 9); { - setState(1944); + setState(1942); methodInvocation(); } break; case 10: enterOuterAlt(_localctx, 10); { - setState(1945); + setState(1943); methodReference(); } break; @@ -10545,46 +12110,55 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_primary(this); + } } public final PrimaryNoNewArray_lf_primaryContext primaryNoNewArray_lf_primary() throws RecognitionException { PrimaryNoNewArray_lf_primaryContext _localctx = new PrimaryNoNewArray_lf_primaryContext(_ctx, getState()); enterRule(_localctx, 362, RULE_primaryNoNewArray_lf_primary); try { - setState(1953); - switch ( getInterpreter().adaptivePredict(_input,202,_ctx) ) { + setState(1951); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,201,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1948); + setState(1946); classInstanceCreationExpression_lf_primary(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1949); + setState(1947); fieldAccess_lf_primary(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1950); + setState(1948); arrayAccess_lf_primary(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1951); + setState(1949); methodInvocation_lf_primary(); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1952); + setState(1950); methodReference_lf_primary(); } break; @@ -10606,6 +12180,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(this); + } } public final PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary() throws RecognitionException { @@ -10644,39 +12226,48 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(this); + } } public final PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary() throws RecognitionException { PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext _localctx = new PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext(_ctx, getState()); enterRule(_localctx, 366, RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary); try { - setState(1961); - switch ( getInterpreter().adaptivePredict(_input,203,_ctx) ) { + setState(1959); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,202,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1957); + setState(1955); classInstanceCreationExpression_lf_primary(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1958); + setState(1956); fieldAccess_lf_primary(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1959); + setState(1957); methodInvocation_lf_primary(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1960); + setState(1958); methodReference_lf_primary(); } break; @@ -10725,6 +12316,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_primary(this); + } } public final PrimaryNoNewArray_lfno_primaryContext primaryNoNewArray_lfno_primary() throws RecognitionException { @@ -10732,141 +12331,142 @@ public class Java8Parser extends Parser { enterRule(_localctx, 368, RULE_primaryNoNewArray_lfno_primary); int _la; try { - setState(2003); - switch ( getInterpreter().adaptivePredict(_input,206,_ctx) ) { + setState(2001); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,205,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1963); + setState(1961); literal(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1964); + setState(1962); typeName(); - setState(1969); + setState(1967); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(1965); + setState(1963); match(LBRACK); - setState(1966); + setState(1964); match(RBRACK); } } - setState(1971); + setState(1969); _errHandler.sync(this); _la = _input.LA(1); } - setState(1972); + setState(1970); match(DOT); - setState(1973); + setState(1971); match(CLASS); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1975); + setState(1973); unannPrimitiveType(); - setState(1980); + setState(1978); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(1976); + setState(1974); match(LBRACK); - setState(1977); + setState(1975); match(RBRACK); } } - setState(1982); + setState(1980); _errHandler.sync(this); _la = _input.LA(1); } - setState(1983); + setState(1981); match(DOT); - setState(1984); + setState(1982); match(CLASS); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1986); + setState(1984); match(VOID); - setState(1987); + setState(1985); match(DOT); - setState(1988); + setState(1986); match(CLASS); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1989); + setState(1987); match(THIS); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(1990); + setState(1988); typeName(); - setState(1991); + setState(1989); match(DOT); - setState(1992); + setState(1990); match(THIS); } break; case 7: enterOuterAlt(_localctx, 7); { - setState(1994); + setState(1992); match(LPAREN); - setState(1995); + setState(1993); expression(); - setState(1996); + setState(1994); match(RPAREN); } break; case 8: enterOuterAlt(_localctx, 8); { - setState(1998); + setState(1996); classInstanceCreationExpression_lfno_primary(); } break; case 9: enterOuterAlt(_localctx, 9); { - setState(1999); + setState(1997); fieldAccess_lfno_primary(); } break; case 10: enterOuterAlt(_localctx, 10); { - setState(2000); + setState(1998); arrayAccess_lfno_primary(); } break; case 11: enterOuterAlt(_localctx, 11); { - setState(2001); + setState(1999); methodInvocation_lfno_primary(); } break; case 12: enterOuterAlt(_localctx, 12); { - setState(2002); + setState(2000); methodReference_lfno_primary(); } break; @@ -10888,6 +12488,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(this); + } } public final PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary() throws RecognitionException { @@ -10938,6 +12546,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(this); + } } public final PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary() throws RecognitionException { @@ -10945,134 +12561,135 @@ public class Java8Parser extends Parser { enterRule(_localctx, 372, RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary); int _la; try { - setState(2046); - switch ( getInterpreter().adaptivePredict(_input,209,_ctx) ) { + setState(2044); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,208,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2007); + setState(2005); literal(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2008); + setState(2006); typeName(); - setState(2013); + setState(2011); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(2009); + setState(2007); match(LBRACK); - setState(2010); + setState(2008); match(RBRACK); } } - setState(2015); + setState(2013); _errHandler.sync(this); _la = _input.LA(1); } - setState(2016); + setState(2014); match(DOT); - setState(2017); + setState(2015); match(CLASS); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2019); + setState(2017); unannPrimitiveType(); - setState(2024); + setState(2022); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(2020); + setState(2018); match(LBRACK); - setState(2021); + setState(2019); match(RBRACK); } } - setState(2026); + setState(2024); _errHandler.sync(this); _la = _input.LA(1); } - setState(2027); + setState(2025); match(DOT); - setState(2028); + setState(2026); match(CLASS); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2030); + setState(2028); match(VOID); - setState(2031); + setState(2029); match(DOT); - setState(2032); + setState(2030); match(CLASS); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(2033); + setState(2031); match(THIS); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(2034); + setState(2032); typeName(); - setState(2035); + setState(2033); match(DOT); - setState(2036); + setState(2034); match(THIS); } break; case 7: enterOuterAlt(_localctx, 7); { - setState(2038); + setState(2036); match(LPAREN); - setState(2039); + setState(2037); expression(); - setState(2040); + setState(2038); match(RPAREN); } break; case 8: enterOuterAlt(_localctx, 8); { - setState(2042); + setState(2040); classInstanceCreationExpression_lfno_primary(); } break; case 9: enterOuterAlt(_localctx, 9); { - setState(2043); + setState(2041); fieldAccess_lfno_primary(); } break; case 10: enterOuterAlt(_localctx, 10); { - setState(2044); + setState(2042); methodInvocation_lfno_primary(); } break; case 11: enterOuterAlt(_localctx, 11); { - setState(2045); + setState(2043); methodReference_lfno_primary(); } break; @@ -11122,6 +12739,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classInstanceCreationExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassInstanceCreationExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassInstanceCreationExpression(this); + } } public final ClassInstanceCreationExpressionContext classInstanceCreationExpression() throws RecognitionException { @@ -11129,95 +12754,100 @@ public class Java8Parser extends Parser { enterRule(_localctx, 374, RULE_classInstanceCreationExpression); int _la; try { - setState(2131); - switch ( getInterpreter().adaptivePredict(_input,227,_ctx) ) { + setState(2129); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,226,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2048); + setState(2046); match(NEW); - setState(2050); + setState(2048); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2049); + setState(2047); typeArguments(); } } - setState(2055); + setState(2053); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2052); + setState(2050); annotation(); } } - setState(2057); + setState(2055); _errHandler.sync(this); _la = _input.LA(1); } - setState(2058); + setState(2056); match(Identifier); - setState(2069); + setState(2067); _errHandler.sync(this); _la = _input.LA(1); while (_la==DOT) { { { - setState(2059); + setState(2057); match(DOT); - setState(2063); + setState(2061); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2060); + setState(2058); annotation(); } } - setState(2065); + setState(2063); _errHandler.sync(this); _la = _input.LA(1); } - setState(2066); + setState(2064); match(Identifier); } } - setState(2071); + setState(2069); _errHandler.sync(this); _la = _input.LA(1); } - setState(2073); + setState(2071); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2072); + setState(2070); typeArgumentsOrDiamond(); } } - setState(2075); + setState(2073); match(LPAREN); - setState(2077); + setState(2075); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2076); + setState(2074); argumentList(); } } - setState(2079); + setState(2077); match(RPAREN); - setState(2081); + setState(2079); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LBRACE) { { - setState(2080); + setState(2078); classBody(); } } @@ -11227,64 +12857,68 @@ public class Java8Parser extends Parser { case 2: enterOuterAlt(_localctx, 2); { - setState(2083); + setState(2081); expressionName(); - setState(2084); + setState(2082); match(DOT); - setState(2085); + setState(2083); match(NEW); - setState(2087); + setState(2085); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2086); + setState(2084); typeArguments(); } } - setState(2092); + setState(2090); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2089); + setState(2087); annotation(); } } - setState(2094); + setState(2092); _errHandler.sync(this); _la = _input.LA(1); } - setState(2095); + setState(2093); match(Identifier); - setState(2097); + setState(2095); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2096); + setState(2094); typeArgumentsOrDiamond(); } } - setState(2099); + setState(2097); match(LPAREN); - setState(2101); + setState(2099); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2100); + setState(2098); argumentList(); } } - setState(2103); + setState(2101); match(RPAREN); - setState(2105); + setState(2103); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LBRACE) { { - setState(2104); + setState(2102); classBody(); } } @@ -11294,64 +12928,68 @@ public class Java8Parser extends Parser { case 3: enterOuterAlt(_localctx, 3); { - setState(2107); + setState(2105); primary(); - setState(2108); + setState(2106); match(DOT); - setState(2109); + setState(2107); match(NEW); - setState(2111); + setState(2109); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2110); + setState(2108); typeArguments(); } } - setState(2116); + setState(2114); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2113); + setState(2111); annotation(); } } - setState(2118); + setState(2116); _errHandler.sync(this); _la = _input.LA(1); } - setState(2119); + setState(2117); match(Identifier); - setState(2121); + setState(2119); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2120); + setState(2118); typeArgumentsOrDiamond(); } } - setState(2123); + setState(2121); match(LPAREN); - setState(2125); + setState(2123); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2124); + setState(2122); argumentList(); } } - setState(2127); + setState(2125); match(RPAREN); - setState(2129); + setState(2127); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LBRACE) { { - setState(2128); + setState(2126); classBody(); } } @@ -11395,6 +13033,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classInstanceCreationExpression_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassInstanceCreationExpression_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassInstanceCreationExpression_lf_primary(this); + } } public final ClassInstanceCreationExpression_lf_primaryContext classInstanceCreationExpression_lf_primary() throws RecognitionException { @@ -11404,62 +13050,66 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2133); + setState(2131); match(DOT); - setState(2134); + setState(2132); match(NEW); - setState(2136); + setState(2134); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2135); + setState(2133); typeArguments(); } } - setState(2141); + setState(2139); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2138); + setState(2136); annotation(); } } - setState(2143); + setState(2141); _errHandler.sync(this); _la = _input.LA(1); } - setState(2144); + setState(2142); match(Identifier); - setState(2146); + setState(2144); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2145); + setState(2143); typeArgumentsOrDiamond(); } } - setState(2148); + setState(2146); match(LPAREN); - setState(2150); + setState(2148); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2149); + setState(2147); argumentList(); } } - setState(2152); + setState(2150); match(RPAREN); - setState(2154); - switch ( getInterpreter().adaptivePredict(_input,232,_ctx) ) { + setState(2152); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,231,_ctx) ) { case 1: { - setState(2153); + setState(2151); classBody(); } break; @@ -11507,6 +13157,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classInstanceCreationExpression_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassInstanceCreationExpression_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassInstanceCreationExpression_lfno_primary(this); + } } public final ClassInstanceCreationExpression_lfno_primaryContext classInstanceCreationExpression_lfno_primary() throws RecognitionException { @@ -11514,95 +13172,100 @@ public class Java8Parser extends Parser { enterRule(_localctx, 378, RULE_classInstanceCreationExpression_lfno_primary); int _la; try { - setState(2215); + setState(2213); + _errHandler.sync(this); switch (_input.LA(1)) { case NEW: enterOuterAlt(_localctx, 1); { - setState(2156); + setState(2154); match(NEW); - setState(2158); + setState(2156); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2157); + setState(2155); typeArguments(); } } - setState(2163); + setState(2161); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2160); + setState(2158); annotation(); } } - setState(2165); + setState(2163); _errHandler.sync(this); _la = _input.LA(1); } - setState(2166); + setState(2164); match(Identifier); - setState(2177); + setState(2175); _errHandler.sync(this); _la = _input.LA(1); while (_la==DOT) { { { - setState(2167); + setState(2165); match(DOT); - setState(2171); + setState(2169); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2168); + setState(2166); annotation(); } } - setState(2173); + setState(2171); _errHandler.sync(this); _la = _input.LA(1); } - setState(2174); + setState(2172); match(Identifier); } } - setState(2179); + setState(2177); _errHandler.sync(this); _la = _input.LA(1); } - setState(2181); + setState(2179); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2180); + setState(2178); typeArgumentsOrDiamond(); } } - setState(2183); + setState(2181); match(LPAREN); - setState(2185); + setState(2183); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2184); + setState(2182); argumentList(); } } - setState(2187); + setState(2185); match(RPAREN); - setState(2189); - switch ( getInterpreter().adaptivePredict(_input,239,_ctx) ) { + setState(2187); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,238,_ctx) ) { case 1: { - setState(2188); + setState(2186); classBody(); } break; @@ -11612,64 +13275,68 @@ public class Java8Parser extends Parser { case Identifier: enterOuterAlt(_localctx, 2); { - setState(2191); + setState(2189); expressionName(); - setState(2192); + setState(2190); match(DOT); - setState(2193); + setState(2191); match(NEW); - setState(2195); + setState(2193); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2194); + setState(2192); typeArguments(); } } - setState(2200); + setState(2198); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2197); + setState(2195); annotation(); } } - setState(2202); + setState(2200); _errHandler.sync(this); _la = _input.LA(1); } - setState(2203); + setState(2201); match(Identifier); - setState(2205); + setState(2203); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2204); + setState(2202); typeArgumentsOrDiamond(); } } - setState(2207); + setState(2205); match(LPAREN); - setState(2209); + setState(2207); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2208); + setState(2206); argumentList(); } } - setState(2211); + setState(2209); match(RPAREN); - setState(2213); - switch ( getInterpreter().adaptivePredict(_input,244,_ctx) ) { + setState(2211); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,243,_ctx) ) { case 1: { - setState(2212); + setState(2210); classBody(); } break; @@ -11699,27 +13366,36 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeArgumentsOrDiamond; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArgumentsOrDiamond(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgumentsOrDiamond(this); + } } public final TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() throws RecognitionException { TypeArgumentsOrDiamondContext _localctx = new TypeArgumentsOrDiamondContext(_ctx, getState()); enterRule(_localctx, 380, RULE_typeArgumentsOrDiamond); try { - setState(2220); - switch ( getInterpreter().adaptivePredict(_input,246,_ctx) ) { + setState(2218); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,245,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2217); + setState(2215); typeArguments(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2218); + setState(2216); match(LT); - setState(2219); + setState(2217); match(GT); } break; @@ -11748,48 +13424,57 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_fieldAccess; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldAccess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldAccess(this); + } } public final FieldAccessContext fieldAccess() throws RecognitionException { FieldAccessContext _localctx = new FieldAccessContext(_ctx, getState()); enterRule(_localctx, 382, RULE_fieldAccess); try { - setState(2235); - switch ( getInterpreter().adaptivePredict(_input,247,_ctx) ) { + setState(2233); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,246,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2222); + setState(2220); primary(); - setState(2223); + setState(2221); match(DOT); - setState(2224); + setState(2222); match(Identifier); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2226); + setState(2224); match(SUPER); - setState(2227); + setState(2225); match(DOT); - setState(2228); + setState(2226); match(Identifier); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2229); + setState(2227); typeName(); + setState(2228); + match(DOT); + setState(2229); + match(SUPER); setState(2230); match(DOT); setState(2231); - match(SUPER); - setState(2232); - match(DOT); - setState(2233); match(Identifier); } break; @@ -11812,6 +13497,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_fieldAccess_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldAccess_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldAccess_lf_primary(this); + } } public final FieldAccess_lf_primaryContext fieldAccess_lf_primary() throws RecognitionException { @@ -11820,9 +13513,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2237); + setState(2235); match(DOT); - setState(2238); + setState(2236); match(Identifier); } } @@ -11846,37 +13539,46 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_fieldAccess_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldAccess_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldAccess_lfno_primary(this); + } } public final FieldAccess_lfno_primaryContext fieldAccess_lfno_primary() throws RecognitionException { FieldAccess_lfno_primaryContext _localctx = new FieldAccess_lfno_primaryContext(_ctx, getState()); enterRule(_localctx, 386, RULE_fieldAccess_lfno_primary); try { - setState(2249); + setState(2247); + _errHandler.sync(this); switch (_input.LA(1)) { case SUPER: enterOuterAlt(_localctx, 1); { - setState(2240); + setState(2238); match(SUPER); - setState(2241); + setState(2239); match(DOT); - setState(2242); + setState(2240); match(Identifier); } break; case Identifier: enterOuterAlt(_localctx, 2); { - setState(2243); + setState(2241); typeName(); + setState(2242); + match(DOT); + setState(2243); + match(SUPER); setState(2244); match(DOT); setState(2245); - match(SUPER); - setState(2246); - match(DOT); - setState(2247); match(Identifier); } break; @@ -11918,6 +13620,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayAccess; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayAccess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayAccess(this); + } } public final ArrayAccessContext arrayAccess() throws RecognitionException { @@ -11927,50 +13637,51 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2261); - switch ( getInterpreter().adaptivePredict(_input,249,_ctx) ) { + setState(2259); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,248,_ctx) ) { case 1: { - setState(2251); + setState(2249); expressionName(); - setState(2252); + setState(2250); match(LBRACK); - setState(2253); + setState(2251); expression(); - setState(2254); + setState(2252); match(RBRACK); } break; case 2: { - setState(2256); + setState(2254); primaryNoNewArray_lfno_arrayAccess(); - setState(2257); + setState(2255); match(LBRACK); - setState(2258); + setState(2256); expression(); - setState(2259); + setState(2257); match(RBRACK); } break; } - setState(2270); + setState(2268); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(2263); + setState(2261); primaryNoNewArray_lf_arrayAccess(); - setState(2264); + setState(2262); match(LBRACK); - setState(2265); + setState(2263); expression(); - setState(2266); + setState(2264); match(RBRACK); } } - setState(2272); + setState(2270); _errHandler.sync(this); _la = _input.LA(1); } @@ -12007,6 +13718,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayAccess_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayAccess_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayAccess_lf_primary(this); + } } public final ArrayAccess_lf_primaryContext arrayAccess_lf_primary() throws RecognitionException { @@ -12017,36 +13736,36 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2273); + setState(2271); primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(); - setState(2274); + setState(2272); match(LBRACK); - setState(2275); + setState(2273); expression(); - setState(2276); + setState(2274); match(RBRACK); } - setState(2285); + setState(2283); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,251,_ctx); + _alt = getInterpreter().adaptivePredict(_input,250,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(2278); + setState(2276); primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(); - setState(2279); + setState(2277); match(LBRACK); - setState(2280); + setState(2278); expression(); - setState(2281); + setState(2279); match(RBRACK); } } } - setState(2287); + setState(2285); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,251,_ctx); + _alt = getInterpreter().adaptivePredict(_input,250,_ctx); } } } @@ -12084,6 +13803,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayAccess_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayAccess_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayAccess_lfno_primary(this); + } } public final ArrayAccess_lfno_primaryContext arrayAccess_lfno_primary() throws RecognitionException { @@ -12093,54 +13820,55 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(2298); - switch ( getInterpreter().adaptivePredict(_input,252,_ctx) ) { + setState(2296); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,251,_ctx) ) { case 1: { - setState(2288); + setState(2286); expressionName(); - setState(2289); + setState(2287); match(LBRACK); - setState(2290); + setState(2288); expression(); - setState(2291); + setState(2289); match(RBRACK); } break; case 2: { - setState(2293); + setState(2291); primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(); - setState(2294); + setState(2292); match(LBRACK); - setState(2295); + setState(2293); expression(); - setState(2296); + setState(2294); match(RBRACK); } break; } - setState(2307); + setState(2305); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,253,_ctx); + _alt = getInterpreter().adaptivePredict(_input,252,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(2300); + setState(2298); primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(); - setState(2301); + setState(2299); match(LBRACK); - setState(2302); + setState(2300); expression(); - setState(2303); + setState(2301); match(RBRACK); } } } - setState(2309); + setState(2307); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,253,_ctx); + _alt = getInterpreter().adaptivePredict(_input,252,_ctx); } } } @@ -12179,6 +13907,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodInvocation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodInvocation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodInvocation(this); + } } public final MethodInvocationContext methodInvocation() throws RecognitionException { @@ -12186,194 +13922,206 @@ public class Java8Parser extends Parser { enterRule(_localctx, 394, RULE_methodInvocation); int _la; try { - setState(2378); - switch ( getInterpreter().adaptivePredict(_input,265,_ctx) ) { + setState(2376); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,264,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2310); + setState(2308); methodName(); - setState(2311); + setState(2309); match(LPAREN); - setState(2313); + setState(2311); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2312); + setState(2310); argumentList(); } } - setState(2315); + setState(2313); match(RPAREN); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2317); + setState(2315); typeName(); - setState(2318); + setState(2316); match(DOT); - setState(2320); + setState(2318); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2319); + setState(2317); typeArguments(); } } - setState(2322); + setState(2320); match(Identifier); - setState(2323); + setState(2321); match(LPAREN); - setState(2325); + setState(2323); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2324); + setState(2322); argumentList(); } } - setState(2327); + setState(2325); match(RPAREN); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2329); + setState(2327); expressionName(); - setState(2330); + setState(2328); match(DOT); - setState(2332); + setState(2330); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2331); + setState(2329); typeArguments(); } } - setState(2334); + setState(2332); match(Identifier); - setState(2335); + setState(2333); match(LPAREN); - setState(2337); + setState(2335); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2336); + setState(2334); argumentList(); } } - setState(2339); + setState(2337); match(RPAREN); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2341); + setState(2339); primary(); - setState(2342); + setState(2340); match(DOT); - setState(2344); + setState(2342); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2343); + setState(2341); typeArguments(); } } - setState(2346); + setState(2344); match(Identifier); - setState(2347); + setState(2345); match(LPAREN); - setState(2349); + setState(2347); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2348); + setState(2346); argumentList(); } } - setState(2351); + setState(2349); match(RPAREN); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(2353); + setState(2351); match(SUPER); - setState(2354); + setState(2352); match(DOT); - setState(2356); + setState(2354); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2355); + setState(2353); typeArguments(); } } - setState(2358); + setState(2356); match(Identifier); - setState(2359); + setState(2357); match(LPAREN); - setState(2361); + setState(2359); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2360); + setState(2358); argumentList(); } } - setState(2363); + setState(2361); match(RPAREN); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(2364); + setState(2362); typeName(); + setState(2363); + match(DOT); + setState(2364); + match(SUPER); setState(2365); match(DOT); - setState(2366); - match(SUPER); setState(2367); - match(DOT); - setState(2369); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2368); + setState(2366); typeArguments(); } } - setState(2371); + setState(2369); match(Identifier); - setState(2372); + setState(2370); match(LPAREN); - setState(2374); + setState(2372); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2373); + setState(2371); argumentList(); } } - setState(2376); + setState(2374); match(RPAREN); } break; @@ -12402,6 +14150,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodInvocation_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodInvocation_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodInvocation_lf_primary(this); + } } public final MethodInvocation_lf_primaryContext methodInvocation_lf_primary() throws RecognitionException { @@ -12411,31 +14167,33 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2380); + setState(2378); match(DOT); - setState(2382); + setState(2380); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2381); + setState(2379); typeArguments(); } } - setState(2384); + setState(2382); match(Identifier); - setState(2385); + setState(2383); match(LPAREN); - setState(2387); + setState(2385); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2386); + setState(2384); argumentList(); } } - setState(2389); + setState(2387); match(RPAREN); } } @@ -12471,6 +14229,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodInvocation_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodInvocation_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodInvocation_lfno_primary(this); + } } public final MethodInvocation_lfno_primaryContext methodInvocation_lfno_primary() throws RecognitionException { @@ -12478,161 +14244,171 @@ public class Java8Parser extends Parser { enterRule(_localctx, 398, RULE_methodInvocation_lfno_primary); int _la; try { - setState(2447); - switch ( getInterpreter().adaptivePredict(_input,277,_ctx) ) { + setState(2445); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,276,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2391); + setState(2389); methodName(); - setState(2392); + setState(2390); match(LPAREN); - setState(2394); + setState(2392); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2393); + setState(2391); argumentList(); } } - setState(2396); + setState(2394); match(RPAREN); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2398); + setState(2396); typeName(); - setState(2399); + setState(2397); match(DOT); - setState(2401); + setState(2399); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2400); + setState(2398); typeArguments(); } } - setState(2403); + setState(2401); match(Identifier); - setState(2404); + setState(2402); match(LPAREN); - setState(2406); + setState(2404); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2405); + setState(2403); argumentList(); } } - setState(2408); + setState(2406); match(RPAREN); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2410); + setState(2408); expressionName(); - setState(2411); + setState(2409); match(DOT); - setState(2413); + setState(2411); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2412); + setState(2410); typeArguments(); } } - setState(2415); + setState(2413); match(Identifier); - setState(2416); + setState(2414); match(LPAREN); - setState(2418); + setState(2416); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2417); + setState(2415); argumentList(); } } - setState(2420); + setState(2418); match(RPAREN); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2422); + setState(2420); match(SUPER); - setState(2423); + setState(2421); match(DOT); - setState(2425); + setState(2423); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2424); + setState(2422); typeArguments(); } } - setState(2427); + setState(2425); match(Identifier); - setState(2428); + setState(2426); match(LPAREN); - setState(2430); + setState(2428); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2429); + setState(2427); argumentList(); } } - setState(2432); + setState(2430); match(RPAREN); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(2433); + setState(2431); typeName(); + setState(2432); + match(DOT); + setState(2433); + match(SUPER); setState(2434); match(DOT); - setState(2435); - match(SUPER); setState(2436); - match(DOT); - setState(2438); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2437); + setState(2435); typeArguments(); } } - setState(2440); + setState(2438); match(Identifier); - setState(2441); + setState(2439); match(LPAREN); - setState(2443); + setState(2441); + _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2442); + setState(2440); argumentList(); } } - setState(2445); + setState(2443); match(RPAREN); } break; @@ -12660,6 +14436,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_argumentList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArgumentList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArgumentList(this); + } } public final ArgumentListContext argumentList() throws RecognitionException { @@ -12669,21 +14453,21 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2449); + setState(2447); expression(); - setState(2454); + setState(2452); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { - setState(2450); + setState(2448); match(COMMA); - setState(2451); + setState(2449); expression(); } } - setState(2456); + setState(2454); _errHandler.sync(this); _la = _input.LA(1); } @@ -12727,6 +14511,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodReference(this); + } } public final MethodReferenceContext methodReference() throws RecognitionException { @@ -12734,140 +14526,147 @@ public class Java8Parser extends Parser { enterRule(_localctx, 402, RULE_methodReference); int _la; try { - setState(2504); - switch ( getInterpreter().adaptivePredict(_input,285,_ctx) ) { + setState(2502); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,284,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2457); + setState(2455); expressionName(); - setState(2458); + setState(2456); match(COLONCOLON); - setState(2460); + setState(2458); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2459); + setState(2457); typeArguments(); } } - setState(2462); + setState(2460); match(Identifier); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2464); + setState(2462); referenceType(); - setState(2465); + setState(2463); match(COLONCOLON); - setState(2467); + setState(2465); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2466); + setState(2464); typeArguments(); } } - setState(2469); + setState(2467); match(Identifier); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2471); + setState(2469); primary(); - setState(2472); + setState(2470); match(COLONCOLON); - setState(2474); + setState(2472); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2473); + setState(2471); typeArguments(); } } - setState(2476); + setState(2474); match(Identifier); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2478); + setState(2476); match(SUPER); - setState(2479); + setState(2477); match(COLONCOLON); - setState(2481); + setState(2479); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2480); + setState(2478); typeArguments(); } } - setState(2483); + setState(2481); match(Identifier); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(2484); + setState(2482); typeName(); - setState(2485); + setState(2483); match(DOT); - setState(2486); + setState(2484); match(SUPER); - setState(2487); + setState(2485); match(COLONCOLON); - setState(2489); + setState(2487); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2488); + setState(2486); typeArguments(); } } - setState(2491); + setState(2489); match(Identifier); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(2493); + setState(2491); classType(); - setState(2494); + setState(2492); match(COLONCOLON); - setState(2496); + setState(2494); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2495); + setState(2493); typeArguments(); } } - setState(2498); + setState(2496); match(NEW); } break; case 7: enterOuterAlt(_localctx, 7); { - setState(2500); + setState(2498); arrayType(); - setState(2501); + setState(2499); match(COLONCOLON); - setState(2502); + setState(2500); match(NEW); } break; @@ -12893,6 +14692,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodReference_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodReference_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodReference_lf_primary(this); + } } public final MethodReference_lf_primaryContext methodReference_lf_primary() throws RecognitionException { @@ -12902,18 +14709,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2506); + setState(2504); match(COLONCOLON); - setState(2508); + setState(2506); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2507); + setState(2505); typeArguments(); } } - setState(2510); + setState(2508); match(Identifier); } } @@ -12952,6 +14760,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodReference_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodReference_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodReference_lfno_primary(this); + } } public final MethodReference_lfno_primaryContext methodReference_lfno_primary() throws RecognitionException { @@ -12959,120 +14775,126 @@ public class Java8Parser extends Parser { enterRule(_localctx, 406, RULE_methodReference_lfno_primary); int _la; try { - setState(2552); - switch ( getInterpreter().adaptivePredict(_input,292,_ctx) ) { + setState(2550); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,291,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2512); + setState(2510); expressionName(); - setState(2513); + setState(2511); match(COLONCOLON); - setState(2515); + setState(2513); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2514); + setState(2512); typeArguments(); } } - setState(2517); + setState(2515); match(Identifier); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2519); + setState(2517); referenceType(); - setState(2520); + setState(2518); match(COLONCOLON); - setState(2522); + setState(2520); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2521); + setState(2519); typeArguments(); } } - setState(2524); + setState(2522); match(Identifier); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2526); + setState(2524); match(SUPER); - setState(2527); + setState(2525); match(COLONCOLON); - setState(2529); + setState(2527); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2528); + setState(2526); typeArguments(); } } - setState(2531); + setState(2529); match(Identifier); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2532); + setState(2530); typeName(); - setState(2533); + setState(2531); match(DOT); - setState(2534); + setState(2532); match(SUPER); - setState(2535); + setState(2533); match(COLONCOLON); - setState(2537); + setState(2535); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2536); + setState(2534); typeArguments(); } } - setState(2539); + setState(2537); match(Identifier); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(2541); + setState(2539); classType(); - setState(2542); + setState(2540); match(COLONCOLON); - setState(2544); + setState(2542); + _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { - setState(2543); + setState(2541); typeArguments(); } } - setState(2546); + setState(2544); match(NEW); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(2548); + setState(2546); arrayType(); - setState(2549); + setState(2547); match(COLONCOLON); - setState(2550); + setState(2548); match(NEW); } break; @@ -13109,28 +14931,38 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayCreationExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayCreationExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayCreationExpression(this); + } } public final ArrayCreationExpressionContext arrayCreationExpression() throws RecognitionException { ArrayCreationExpressionContext _localctx = new ArrayCreationExpressionContext(_ctx, getState()); enterRule(_localctx, 408, RULE_arrayCreationExpression); try { - setState(2576); - switch ( getInterpreter().adaptivePredict(_input,295,_ctx) ) { + setState(2574); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,294,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2554); + setState(2552); match(NEW); - setState(2555); + setState(2553); primitiveType(); - setState(2556); + setState(2554); dimExprs(); - setState(2558); - switch ( getInterpreter().adaptivePredict(_input,293,_ctx) ) { + setState(2556); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,292,_ctx) ) { case 1: { - setState(2557); + setState(2555); dims(); } break; @@ -13140,17 +14972,18 @@ public class Java8Parser extends Parser { case 2: enterOuterAlt(_localctx, 2); { - setState(2560); + setState(2558); match(NEW); - setState(2561); + setState(2559); classOrInterfaceType(); - setState(2562); + setState(2560); dimExprs(); - setState(2564); - switch ( getInterpreter().adaptivePredict(_input,294,_ctx) ) { + setState(2562); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,293,_ctx) ) { case 1: { - setState(2563); + setState(2561); dims(); } break; @@ -13160,26 +14993,26 @@ public class Java8Parser extends Parser { case 3: enterOuterAlt(_localctx, 3); { - setState(2566); + setState(2564); match(NEW); - setState(2567); + setState(2565); primitiveType(); - setState(2568); + setState(2566); dims(); - setState(2569); + setState(2567); arrayInitializer(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2571); + setState(2569); match(NEW); - setState(2572); + setState(2570); classOrInterfaceType(); - setState(2573); + setState(2571); dims(); - setState(2574); + setState(2572); arrayInitializer(); } break; @@ -13207,6 +15040,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_dimExprs; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDimExprs(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDimExprs(this); + } } public final DimExprsContext dimExprs() throws RecognitionException { @@ -13216,23 +15057,23 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(2578); + setState(2576); dimExpr(); - setState(2582); + setState(2580); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,296,_ctx); + _alt = getInterpreter().adaptivePredict(_input,295,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(2579); + setState(2577); dimExpr(); } } } - setState(2584); + setState(2582); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,296,_ctx); + _alt = getInterpreter().adaptivePredict(_input,295,_ctx); } } } @@ -13261,6 +15102,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_dimExpr; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDimExpr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDimExpr(this); + } } public final DimExprContext dimExpr() throws RecognitionException { @@ -13270,25 +15119,25 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2588); + setState(2586); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2585); + setState(2583); annotation(); } } - setState(2590); + setState(2588); _errHandler.sync(this); _la = _input.LA(1); } - setState(2591); + setState(2589); match(LBRACK); - setState(2592); + setState(2590); expression(); - setState(2593); + setState(2591); match(RBRACK); } } @@ -13311,6 +15160,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constantExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantExpression(this); + } } public final ConstantExpressionContext constantExpression() throws RecognitionException { @@ -13319,7 +15176,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2595); + setState(2593); expression(); } } @@ -13345,25 +15202,34 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpression(this); + } } public final ExpressionContext expression() throws RecognitionException { ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); enterRule(_localctx, 416, RULE_expression); try { - setState(2599); - switch ( getInterpreter().adaptivePredict(_input,298,_ctx) ) { + setState(2597); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,297,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2597); + setState(2595); lambdaExpression(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2598); + setState(2596); assignmentExpression(); } break; @@ -13391,6 +15257,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_lambdaExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLambdaExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLambdaExpression(this); + } } public final LambdaExpressionContext lambdaExpression() throws RecognitionException { @@ -13399,11 +15273,11 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2601); + setState(2599); lambdaParameters(); - setState(2602); + setState(2600); match(ARROW); - setState(2603); + setState(2601); lambdaBody(); } } @@ -13427,6 +15301,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_lambdaParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLambdaParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLambdaParameters(this); + } } public final LambdaParametersContext lambdaParameters() throws RecognitionException { @@ -13434,30 +15316,32 @@ public class Java8Parser extends Parser { enterRule(_localctx, 420, RULE_lambdaParameters); int _la; try { - setState(2611); + setState(2609); + _errHandler.sync(this); switch (_input.LA(1)) { case Identifier: enterOuterAlt(_localctx, 1); { - setState(2605); + setState(2603); match(Identifier); } break; case LPAREN: enterOuterAlt(_localctx, 2); { - setState(2606); + setState(2604); match(LPAREN); - setState(2608); + setState(2606); + _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) { { - setState(2607); + setState(2605); formalParameterList(); } } - setState(2610); + setState(2608); match(RPAREN); } break; @@ -13485,6 +15369,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_inferredFormalParameterList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInferredFormalParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInferredFormalParameterList(this); + } } public final InferredFormalParameterListContext inferredFormalParameterList() throws RecognitionException { @@ -13494,21 +15386,21 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2613); + setState(2611); match(Identifier); - setState(2618); + setState(2616); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { - setState(2614); + setState(2612); match(COMMA); - setState(2615); + setState(2613); match(Identifier); } } - setState(2620); + setState(2618); _errHandler.sync(this); _la = _input.LA(1); } @@ -13536,13 +15428,22 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_lambdaBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLambdaBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLambdaBody(this); + } } public final LambdaBodyContext lambdaBody() throws RecognitionException { LambdaBodyContext _localctx = new LambdaBodyContext(_ctx, getState()); enterRule(_localctx, 424, RULE_lambdaBody); try { - setState(2623); + setState(2621); + _errHandler.sync(this); switch (_input.LA(1)) { case BOOLEAN: case BYTE: @@ -13573,14 +15474,14 @@ public class Java8Parser extends Parser { case AT: enterOuterAlt(_localctx, 1); { - setState(2621); + setState(2619); expression(); } break; case LBRACE: enterOuterAlt(_localctx, 2); { - setState(2622); + setState(2620); block(); } break; @@ -13610,25 +15511,34 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_assignmentExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssignmentExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssignmentExpression(this); + } } public final AssignmentExpressionContext assignmentExpression() throws RecognitionException { AssignmentExpressionContext _localctx = new AssignmentExpressionContext(_ctx, getState()); enterRule(_localctx, 426, RULE_assignmentExpression); try { - setState(2627); - switch ( getInterpreter().adaptivePredict(_input,303,_ctx) ) { + setState(2625); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,302,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2625); + setState(2623); conditionalExpression(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2626); + setState(2624); assignment(); } break; @@ -13659,6 +15569,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_assignment; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssignment(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssignment(this); + } } public final AssignmentContext assignment() throws RecognitionException { @@ -13667,11 +15585,11 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2629); + setState(2627); leftHandSide(); - setState(2630); + setState(2628); assignmentOperator(); - setState(2631); + setState(2629); expression(); } } @@ -13700,32 +15618,41 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_leftHandSide; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLeftHandSide(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLeftHandSide(this); + } } public final LeftHandSideContext leftHandSide() throws RecognitionException { LeftHandSideContext _localctx = new LeftHandSideContext(_ctx, getState()); enterRule(_localctx, 430, RULE_leftHandSide); try { - setState(2636); - switch ( getInterpreter().adaptivePredict(_input,304,_ctx) ) { + setState(2634); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,303,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2633); + setState(2631); expressionName(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2634); + setState(2632); fieldAccess(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2635); + setState(2633); arrayAccess(); } break; @@ -13747,6 +15674,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_assignmentOperator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssignmentOperator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssignmentOperator(this); + } } public final AssignmentOperatorContext assignmentOperator() throws RecognitionException { @@ -13756,11 +15691,14 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2638); + setState(2636); _la = _input.LA(1); - if ( !(((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & ((1L << (ASSIGN - 67)) | (1L << (ADD_ASSIGN - 67)) | (1L << (SUB_ASSIGN - 67)) | (1L << (MUL_ASSIGN - 67)) | (1L << (DIV_ASSIGN - 67)) | (1L << (AND_ASSIGN - 67)) | (1L << (OR_ASSIGN - 67)) | (1L << (XOR_ASSIGN - 67)) | (1L << (MOD_ASSIGN - 67)) | (1L << (LSHIFT_ASSIGN - 67)) | (1L << (RSHIFT_ASSIGN - 67)) | (1L << (URSHIFT_ASSIGN - 67)))) != 0)) ) { + if ( !(((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (ASSIGN - 66)) | (1L << (ADD_ASSIGN - 66)) | (1L << (SUB_ASSIGN - 66)) | (1L << (MUL_ASSIGN - 66)) | (1L << (DIV_ASSIGN - 66)) | (1L << (AND_ASSIGN - 66)) | (1L << (OR_ASSIGN - 66)) | (1L << (XOR_ASSIGN - 66)) | (1L << (MOD_ASSIGN - 66)) | (1L << (LSHIFT_ASSIGN - 66)) | (1L << (RSHIFT_ASSIGN - 66)) | (1L << (URSHIFT_ASSIGN - 66)))) != 0)) ) { _errHandler.recoverInline(this); - } else { + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); consume(); } } @@ -13790,33 +15728,42 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_conditionalExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConditionalExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConditionalExpression(this); + } } public final ConditionalExpressionContext conditionalExpression() throws RecognitionException { ConditionalExpressionContext _localctx = new ConditionalExpressionContext(_ctx, getState()); enterRule(_localctx, 434, RULE_conditionalExpression); try { - setState(2647); - switch ( getInterpreter().adaptivePredict(_input,305,_ctx) ) { + setState(2645); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,304,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2640); + setState(2638); conditionalOrExpression(0); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2641); + setState(2639); conditionalOrExpression(0); - setState(2642); + setState(2640); match(QUESTION); - setState(2643); + setState(2641); expression(); - setState(2644); + setState(2642); match(COLON); - setState(2645); + setState(2643); conditionalExpression(); } break; @@ -13844,6 +15791,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_conditionalOrExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConditionalOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConditionalOrExpression(this); + } } public final ConditionalOrExpressionContext conditionalOrExpression() throws RecognitionException { @@ -13862,13 +15817,13 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2650); + setState(2648); conditionalAndExpression(0); } _ctx.stop = _input.LT(-1); - setState(2657); + setState(2655); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,306,_ctx); + _alt = getInterpreter().adaptivePredict(_input,305,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -13877,18 +15832,18 @@ public class Java8Parser extends Parser { { _localctx = new ConditionalOrExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_conditionalOrExpression); - setState(2652); + setState(2650); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2653); + setState(2651); match(OR); - setState(2654); + setState(2652); conditionalAndExpression(0); } } } - setState(2659); + setState(2657); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,306,_ctx); + _alt = getInterpreter().adaptivePredict(_input,305,_ctx); } } } @@ -13914,6 +15869,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_conditionalAndExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConditionalAndExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConditionalAndExpression(this); + } } public final ConditionalAndExpressionContext conditionalAndExpression() throws RecognitionException { @@ -13932,13 +15895,13 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2661); + setState(2659); inclusiveOrExpression(0); } _ctx.stop = _input.LT(-1); - setState(2668); + setState(2666); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,307,_ctx); + _alt = getInterpreter().adaptivePredict(_input,306,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -13947,18 +15910,18 @@ public class Java8Parser extends Parser { { _localctx = new ConditionalAndExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_conditionalAndExpression); - setState(2663); + setState(2661); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2664); + setState(2662); match(AND); - setState(2665); + setState(2663); inclusiveOrExpression(0); } } } - setState(2670); + setState(2668); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,307,_ctx); + _alt = getInterpreter().adaptivePredict(_input,306,_ctx); } } } @@ -13984,6 +15947,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_inclusiveOrExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInclusiveOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInclusiveOrExpression(this); + } } public final InclusiveOrExpressionContext inclusiveOrExpression() throws RecognitionException { @@ -14002,13 +15973,13 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2672); + setState(2670); exclusiveOrExpression(0); } _ctx.stop = _input.LT(-1); - setState(2679); + setState(2677); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,308,_ctx); + _alt = getInterpreter().adaptivePredict(_input,307,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -14017,18 +15988,18 @@ public class Java8Parser extends Parser { { _localctx = new InclusiveOrExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_inclusiveOrExpression); - setState(2674); + setState(2672); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2675); + setState(2673); match(BITOR); - setState(2676); + setState(2674); exclusiveOrExpression(0); } } } - setState(2681); + setState(2679); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,308,_ctx); + _alt = getInterpreter().adaptivePredict(_input,307,_ctx); } } } @@ -14054,6 +16025,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_exclusiveOrExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExclusiveOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExclusiveOrExpression(this); + } } public final ExclusiveOrExpressionContext exclusiveOrExpression() throws RecognitionException { @@ -14072,13 +16051,13 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2683); + setState(2681); andExpression(0); } _ctx.stop = _input.LT(-1); - setState(2690); + setState(2688); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,309,_ctx); + _alt = getInterpreter().adaptivePredict(_input,308,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -14087,18 +16066,18 @@ public class Java8Parser extends Parser { { _localctx = new ExclusiveOrExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_exclusiveOrExpression); - setState(2685); + setState(2683); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2686); + setState(2684); match(CARET); - setState(2687); + setState(2685); andExpression(0); } } } - setState(2692); + setState(2690); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,309,_ctx); + _alt = getInterpreter().adaptivePredict(_input,308,_ctx); } } } @@ -14124,6 +16103,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_andExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAndExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAndExpression(this); + } } public final AndExpressionContext andExpression() throws RecognitionException { @@ -14142,13 +16129,13 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2694); + setState(2692); equalityExpression(0); } _ctx.stop = _input.LT(-1); - setState(2701); + setState(2699); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,310,_ctx); + _alt = getInterpreter().adaptivePredict(_input,309,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -14157,18 +16144,18 @@ public class Java8Parser extends Parser { { _localctx = new AndExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_andExpression); - setState(2696); + setState(2694); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2697); + setState(2695); match(BITAND); - setState(2698); + setState(2696); equalityExpression(0); } } } - setState(2703); + setState(2701); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,310,_ctx); + _alt = getInterpreter().adaptivePredict(_input,309,_ctx); } } } @@ -14194,6 +16181,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_equalityExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEqualityExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEqualityExpression(this); + } } public final EqualityExpressionContext equalityExpression() throws RecognitionException { @@ -14212,29 +16207,30 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2705); + setState(2703); relationalExpression(0); } _ctx.stop = _input.LT(-1); - setState(2715); + setState(2713); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,312,_ctx); + _alt = getInterpreter().adaptivePredict(_input,311,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(2713); - switch ( getInterpreter().adaptivePredict(_input,311,_ctx) ) { + setState(2711); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,310,_ctx) ) { case 1: { _localctx = new EqualityExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); - setState(2707); + setState(2705); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2708); + setState(2706); match(EQUAL); - setState(2709); + setState(2707); relationalExpression(0); } break; @@ -14242,20 +16238,20 @@ public class Java8Parser extends Parser { { _localctx = new EqualityExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); - setState(2710); + setState(2708); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2711); + setState(2709); match(NOTEQUAL); - setState(2712); + setState(2710); relationalExpression(0); } break; } } } - setState(2717); + setState(2715); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,312,_ctx); + _alt = getInterpreter().adaptivePredict(_input,311,_ctx); } } } @@ -14284,6 +16280,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_relationalExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterRelationalExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitRelationalExpression(this); + } } public final RelationalExpressionContext relationalExpression() throws RecognitionException { @@ -14302,29 +16306,30 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2719); + setState(2717); shiftExpression(0); } _ctx.stop = _input.LT(-1); - setState(2738); + setState(2736); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,314,_ctx); + _alt = getInterpreter().adaptivePredict(_input,313,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(2736); - switch ( getInterpreter().adaptivePredict(_input,313,_ctx) ) { + setState(2734); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,312,_ctx) ) { case 1: { _localctx = new RelationalExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2721); + setState(2719); if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); - setState(2722); + setState(2720); match(LT); - setState(2723); + setState(2721); shiftExpression(0); } break; @@ -14332,11 +16337,11 @@ public class Java8Parser extends Parser { { _localctx = new RelationalExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2724); + setState(2722); if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); - setState(2725); + setState(2723); match(GT); - setState(2726); + setState(2724); shiftExpression(0); } break; @@ -14344,11 +16349,11 @@ public class Java8Parser extends Parser { { _localctx = new RelationalExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2727); + setState(2725); if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(2728); + setState(2726); match(LE); - setState(2729); + setState(2727); shiftExpression(0); } break; @@ -14356,11 +16361,11 @@ public class Java8Parser extends Parser { { _localctx = new RelationalExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2730); + setState(2728); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2731); + setState(2729); match(GE); - setState(2732); + setState(2730); shiftExpression(0); } break; @@ -14368,20 +16373,20 @@ public class Java8Parser extends Parser { { _localctx = new RelationalExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2733); + setState(2731); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2734); + setState(2732); match(INSTANCEOF); - setState(2735); + setState(2733); referenceType(); } break; } } } - setState(2740); + setState(2738); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,314,_ctx); + _alt = getInterpreter().adaptivePredict(_input,313,_ctx); } } } @@ -14407,6 +16412,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_shiftExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterShiftExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitShiftExpression(this); + } } public final ShiftExpressionContext shiftExpression() throws RecognitionException { @@ -14425,31 +16438,32 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2742); + setState(2740); additiveExpression(0); } _ctx.stop = _input.LT(-1); - setState(2759); + setState(2757); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,316,_ctx); + _alt = getInterpreter().adaptivePredict(_input,315,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(2757); - switch ( getInterpreter().adaptivePredict(_input,315,_ctx) ) { + setState(2755); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,314,_ctx) ) { case 1: { _localctx = new ShiftExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); - setState(2744); + setState(2742); if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(2743); + match(LT); + setState(2744); + match(LT); setState(2745); - match(LT); - setState(2746); - match(LT); - setState(2747); additiveExpression(0); } break; @@ -14457,13 +16471,13 @@ public class Java8Parser extends Parser { { _localctx = new ShiftExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); - setState(2748); + setState(2746); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2747); + match(GT); + setState(2748); + match(GT); setState(2749); - match(GT); - setState(2750); - match(GT); - setState(2751); additiveExpression(0); } break; @@ -14471,24 +16485,24 @@ public class Java8Parser extends Parser { { _localctx = new ShiftExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); - setState(2752); + setState(2750); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2751); + match(GT); + setState(2752); + match(GT); setState(2753); match(GT); setState(2754); - match(GT); - setState(2755); - match(GT); - setState(2756); additiveExpression(0); } break; } } } - setState(2761); + setState(2759); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,316,_ctx); + _alt = getInterpreter().adaptivePredict(_input,315,_ctx); } } } @@ -14514,6 +16528,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_additiveExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAdditiveExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAdditiveExpression(this); + } } public final AdditiveExpressionContext additiveExpression() throws RecognitionException { @@ -14532,29 +16554,30 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2763); + setState(2761); multiplicativeExpression(0); } _ctx.stop = _input.LT(-1); - setState(2773); + setState(2771); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,318,_ctx); + _alt = getInterpreter().adaptivePredict(_input,317,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(2771); - switch ( getInterpreter().adaptivePredict(_input,317,_ctx) ) { + setState(2769); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,316,_ctx) ) { case 1: { _localctx = new AdditiveExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); - setState(2765); + setState(2763); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2766); + setState(2764); match(ADD); - setState(2767); + setState(2765); multiplicativeExpression(0); } break; @@ -14562,20 +16585,20 @@ public class Java8Parser extends Parser { { _localctx = new AdditiveExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); - setState(2768); + setState(2766); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2769); + setState(2767); match(SUB); - setState(2770); + setState(2768); multiplicativeExpression(0); } break; } } } - setState(2775); + setState(2773); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,318,_ctx); + _alt = getInterpreter().adaptivePredict(_input,317,_ctx); } } } @@ -14601,6 +16624,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_multiplicativeExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMultiplicativeExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMultiplicativeExpression(this); + } } public final MultiplicativeExpressionContext multiplicativeExpression() throws RecognitionException { @@ -14619,29 +16650,30 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2777); + setState(2775); unaryExpression(); } _ctx.stop = _input.LT(-1); - setState(2790); + setState(2788); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,320,_ctx); + _alt = getInterpreter().adaptivePredict(_input,319,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(2788); - switch ( getInterpreter().adaptivePredict(_input,319,_ctx) ) { + setState(2786); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,318,_ctx) ) { case 1: { _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); - setState(2779); + setState(2777); if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(2780); + setState(2778); match(MUL); - setState(2781); + setState(2779); unaryExpression(); } break; @@ -14649,11 +16681,11 @@ public class Java8Parser extends Parser { { _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); - setState(2782); + setState(2780); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2783); + setState(2781); match(DIV); - setState(2784); + setState(2782); unaryExpression(); } break; @@ -14661,20 +16693,20 @@ public class Java8Parser extends Parser { { _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); - setState(2785); + setState(2783); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2786); + setState(2784); match(MOD); - setState(2787); + setState(2785); unaryExpression(); } break; } } } - setState(2792); + setState(2790); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,320,_ctx); + _alt = getInterpreter().adaptivePredict(_input,319,_ctx); } } } @@ -14706,43 +16738,52 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unaryExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnaryExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnaryExpression(this); + } } public final UnaryExpressionContext unaryExpression() throws RecognitionException { UnaryExpressionContext _localctx = new UnaryExpressionContext(_ctx, getState()); enterRule(_localctx, 456, RULE_unaryExpression); try { - setState(2800); + setState(2798); + _errHandler.sync(this); switch (_input.LA(1)) { case INC: enterOuterAlt(_localctx, 1); { - setState(2793); + setState(2791); preIncrementExpression(); } break; case DEC: enterOuterAlt(_localctx, 2); { - setState(2794); + setState(2792); preDecrementExpression(); } break; case ADD: enterOuterAlt(_localctx, 3); { - setState(2795); + setState(2793); match(ADD); - setState(2796); + setState(2794); unaryExpression(); } break; case SUB: enterOuterAlt(_localctx, 4); { - setState(2797); + setState(2795); match(SUB); - setState(2798); + setState(2796); unaryExpression(); } break; @@ -14771,7 +16812,7 @@ public class Java8Parser extends Parser { case AT: enterOuterAlt(_localctx, 5); { - setState(2799); + setState(2797); unaryExpressionNotPlusMinus(); } break; @@ -14798,6 +16839,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_preIncrementExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPreIncrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPreIncrementExpression(this); + } } public final PreIncrementExpressionContext preIncrementExpression() throws RecognitionException { @@ -14806,9 +16855,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2802); + setState(2800); match(INC); - setState(2803); + setState(2801); unaryExpression(); } } @@ -14831,6 +16880,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_preDecrementExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPreDecrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPreDecrementExpression(this); + } } public final PreDecrementExpressionContext preDecrementExpression() throws RecognitionException { @@ -14839,9 +16896,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2805); + setState(2803); match(DEC); - setState(2806); + setState(2804); unaryExpression(); } } @@ -14870,43 +16927,52 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unaryExpressionNotPlusMinus; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnaryExpressionNotPlusMinus(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnaryExpressionNotPlusMinus(this); + } } public final UnaryExpressionNotPlusMinusContext unaryExpressionNotPlusMinus() throws RecognitionException { UnaryExpressionNotPlusMinusContext _localctx = new UnaryExpressionNotPlusMinusContext(_ctx, getState()); enterRule(_localctx, 462, RULE_unaryExpressionNotPlusMinus); try { - setState(2814); - switch ( getInterpreter().adaptivePredict(_input,322,_ctx) ) { + setState(2812); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,321,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2808); + setState(2806); postfixExpression(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2809); + setState(2807); match(TILDE); - setState(2810); + setState(2808); unaryExpression(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2811); + setState(2809); match(BANG); - setState(2812); + setState(2810); unaryExpression(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2813); + setState(2811); castExpression(); } break; @@ -14946,6 +17012,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_postfixExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostfixExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostfixExpression(this); + } } public final PostfixExpressionContext postfixExpression() throws RecognitionException { @@ -14955,38 +17029,40 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(2818); - switch ( getInterpreter().adaptivePredict(_input,323,_ctx) ) { + setState(2816); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,322,_ctx) ) { case 1: { - setState(2816); + setState(2814); primary(); } break; case 2: { - setState(2817); + setState(2815); expressionName(); } break; } - setState(2824); + setState(2822); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,325,_ctx); + _alt = getInterpreter().adaptivePredict(_input,324,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { - setState(2822); + setState(2820); + _errHandler.sync(this); switch (_input.LA(1)) { case INC: { - setState(2820); + setState(2818); postIncrementExpression_lf_postfixExpression(); } break; case DEC: { - setState(2821); + setState(2819); postDecrementExpression_lf_postfixExpression(); } break; @@ -14995,9 +17071,9 @@ public class Java8Parser extends Parser { } } } - setState(2826); + setState(2824); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,325,_ctx); + _alt = getInterpreter().adaptivePredict(_input,324,_ctx); } } } @@ -15020,6 +17096,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_postIncrementExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostIncrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostIncrementExpression(this); + } } public final PostIncrementExpressionContext postIncrementExpression() throws RecognitionException { @@ -15028,9 +17112,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2827); + setState(2825); postfixExpression(); - setState(2828); + setState(2826); match(INC); } } @@ -15050,6 +17134,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_postIncrementExpression_lf_postfixExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostIncrementExpression_lf_postfixExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostIncrementExpression_lf_postfixExpression(this); + } } public final PostIncrementExpression_lf_postfixExpressionContext postIncrementExpression_lf_postfixExpression() throws RecognitionException { @@ -15058,7 +17150,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2830); + setState(2828); match(INC); } } @@ -15081,6 +17173,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_postDecrementExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostDecrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostDecrementExpression(this); + } } public final PostDecrementExpressionContext postDecrementExpression() throws RecognitionException { @@ -15089,9 +17189,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2832); + setState(2830); postfixExpression(); - setState(2833); + setState(2831); match(DEC); } } @@ -15111,6 +17211,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_postDecrementExpression_lf_postfixExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostDecrementExpression_lf_postfixExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostDecrementExpression_lf_postfixExpression(this); + } } public final PostDecrementExpression_lf_postfixExpressionContext postDecrementExpression_lf_postfixExpression() throws RecognitionException { @@ -15119,7 +17227,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2835); + setState(2833); match(DEC); } } @@ -15160,6 +17268,14 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_castExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCastExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCastExpression(this); + } } public final CastExpressionContext castExpression() throws RecognitionException { @@ -15167,72 +17283,73 @@ public class Java8Parser extends Parser { enterRule(_localctx, 474, RULE_castExpression); int _la; try { - setState(2864); - switch ( getInterpreter().adaptivePredict(_input,328,_ctx) ) { + setState(2862); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,327,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2837); + setState(2835); match(LPAREN); - setState(2838); + setState(2836); primitiveType(); - setState(2839); + setState(2837); match(RPAREN); - setState(2840); + setState(2838); unaryExpression(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2842); + setState(2840); match(LPAREN); - setState(2843); + setState(2841); referenceType(); - setState(2847); + setState(2845); _errHandler.sync(this); _la = _input.LA(1); while (_la==BITAND) { { { - setState(2844); + setState(2842); additionalBound(); } } - setState(2849); + setState(2847); _errHandler.sync(this); _la = _input.LA(1); } - setState(2850); + setState(2848); match(RPAREN); - setState(2851); + setState(2849); unaryExpressionNotPlusMinus(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2853); + setState(2851); match(LPAREN); - setState(2854); + setState(2852); referenceType(); - setState(2858); + setState(2856); _errHandler.sync(this); _la = _input.LA(1); while (_la==BITAND) { { { - setState(2855); + setState(2853); additionalBound(); } } - setState(2860); + setState(2858); _errHandler.sync(this); _la = _input.LA(1); } - setState(2861); + setState(2859); match(RPAREN); - setState(2862); + setState(2860); lambdaExpression(); } break; @@ -15394,7 +17511,7 @@ public class Java8Parser extends Parser { private static final int _serializedATNSegments = 2; private static final String _serializedATNSegment0 = - "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3n\u0b35\4\2\t\2\4"+ + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3m\u0b33\4\2\t\2\4"+ "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+ "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ @@ -15506,338 +17623,338 @@ public class Java8Parser extends Parser { "\3\177\7\177\u05d7\n\177\f\177\16\177\u05da\13\177\3\u0080\3\u0080\5\u0080"+ "\u05de\n\u0080\3\u0080\3\u0080\3\u0081\3\u0081\7\u0081\u05e4\n\u0081\f"+ "\u0081\16\u0081\u05e7\13\u0081\3\u0082\3\u0082\3\u0082\5\u0082\u05ec\n"+ - "\u0082\3\u0083\3\u0083\3\u0083\3\u0084\3\u0084\5\u0084\u05f3\n\u0084\3"+ - "\u0085\7\u0085\u05f6\n\u0085\f\u0085\16\u0085\u05f9\13\u0085\3\u0085\3"+ - "\u0085\3\u0085\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\5\u0086"+ - "\u0604\n\u0086\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\5\u0087\u060b\n"+ - "\u0087\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088"+ - "\3\u0088\3\u0088\3\u0088\3\u0088\5\u0088\u0619\n\u0088\3\u0089\3\u0089"+ - "\3\u008a\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b\3\u008b\3\u008b\3\u008c"+ - "\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d"+ - "\5\u008d\u062f\n\u008d\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e"+ - "\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u0090"+ - "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091"+ - "\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\5\u0091"+ - "\u0651\n\u0091\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0093"+ - "\3\u0093\7\u0093\u065b\n\u0093\f\u0093\16\u0093\u065e\13\u0093\3\u0093"+ - "\7\u0093\u0661\n\u0093\f\u0093\16\u0093\u0664\13\u0093\3\u0093\3\u0093"+ - "\3\u0094\3\u0094\3\u0094\3\u0095\3\u0095\7\u0095\u066d\n\u0095\f\u0095"+ - "\16\u0095\u0670\13\u0095\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096"+ - "\3\u0096\3\u0096\3\u0096\3\u0096\5\u0096\u067c\n\u0096\3\u0097\3\u0097"+ - "\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099"+ - "\3\u0099\3\u0099\3\u0099\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a"+ - "\3\u009a\3\u009a\3\u009b\3\u009b\5\u009b\u0696\n\u009b\3\u009c\3\u009c"+ - "\5\u009c\u069a\n\u009c\3\u009d\3\u009d\3\u009d\5\u009d\u069f\n\u009d\3"+ - "\u009d\3\u009d\5\u009d\u06a3\n\u009d\3\u009d\3\u009d\5\u009d\u06a7\n\u009d"+ - "\3\u009d\3\u009d\3\u009d\3\u009e\3\u009e\3\u009e\5\u009e\u06af\n\u009e"+ - "\3\u009e\3\u009e\5\u009e\u06b3\n\u009e\3\u009e\3\u009e\5\u009e\u06b7\n"+ - "\u009e\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\5\u009f\u06be\n\u009f\3"+ - "\u00a0\3\u00a0\3\u00a1\3\u00a1\3\u00a1\7\u00a1\u06c5\n\u00a1\f\u00a1\16"+ - "\u00a1\u06c8\13\u00a1\3\u00a2\3\u00a2\3\u00a2\7\u00a2\u06cd\n\u00a2\f"+ - "\u00a2\16\u00a2\u06d0\13\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2"+ - "\3\u00a2\3\u00a2\3\u00a3\3\u00a3\3\u00a3\7\u00a3\u06dc\n\u00a3\f\u00a3"+ - "\16\u00a3\u06df\13\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3"+ - "\3\u00a3\3\u00a4\3\u00a4\5\u00a4\u06ea\n\u00a4\3\u00a4\3\u00a4\3\u00a5"+ - "\3\u00a5\5\u00a5\u06f0\n\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\5\u00a6"+ - "\u06f6\n\u00a6\3\u00a6\3\u00a6\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a8"+ - "\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a9\3\u00a9\3\u00a9\3\u00a9"+ - "\3\u00a9\3\u00a9\3\u00a9\5\u00a9\u070b\n\u00a9\3\u00a9\3\u00a9\3\u00a9"+ - "\5\u00a9\u0710\n\u00a9\3\u00aa\3\u00aa\7\u00aa\u0714\n\u00aa\f\u00aa\16"+ - "\u00aa\u0717\13\u00aa\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab"+ - "\3\u00ac\7\u00ac\u0720\n\u00ac\f\u00ac\16\u00ac\u0723\13\u00ac\3\u00ac"+ - "\3\u00ac\3\u00ac\3\u00ad\3\u00ad\3\u00ad\7\u00ad\u072b\n\u00ad\f\u00ad"+ - "\16\u00ad\u072e\13\u00ad\3\u00ae\3\u00ae\3\u00ae\3\u00af\3\u00af\3\u00af"+ - "\3\u00af\5\u00af\u0737\n\u00af\3\u00af\5\u00af\u073a\n\u00af\3\u00b0\3"+ - "\u00b0\3\u00b0\5\u00b0\u073f\n\u00b0\3\u00b0\3\u00b0\3\u00b1\3\u00b1\3"+ - "\u00b1\7\u00b1\u0746\n\u00b1\f\u00b1\16\u00b1\u0749\13\u00b1\3\u00b2\7"+ - "\u00b2\u074c\n\u00b2\f\u00b2\16\u00b2\u074f\13\u00b2\3\u00b2\3\u00b2\3"+ - "\u00b2\3\u00b2\3\u00b2\3\u00b3\3\u00b3\5\u00b3\u0758\n\u00b3\3\u00b3\7"+ - "\u00b3\u075b\n\u00b3\f\u00b3\16\u00b3\u075e\13\u00b3\3\u00b4\3\u00b4\3"+ - "\u00b4\3\u00b4\7\u00b4\u0764\n\u00b4\f\u00b4\16\u00b4\u0767\13\u00b4\3"+ - "\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+ + "\u0082\3\u0083\3\u0083\3\u0083\3\u0084\3\u0084\3\u0085\7\u0085\u05f4\n"+ + "\u0085\f\u0085\16\u0085\u05f7\13\u0085\3\u0085\3\u0085\3\u0085\3\u0086"+ + "\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\5\u0086\u0602\n\u0086\3\u0087"+ + "\3\u0087\3\u0087\3\u0087\3\u0087\5\u0087\u0609\n\u0087\3\u0088\3\u0088"+ + "\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088"+ + "\3\u0088\5\u0088\u0617\n\u0088\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a"+ + "\3\u008a\3\u008b\3\u008b\3\u008b\3\u008b\3\u008c\3\u008c\3\u008c\3\u008d"+ + "\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\5\u008d\u062d\n\u008d"+ + "\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008f\3\u008f\3\u008f"+ + "\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090\3\u0090"+ + "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091"+ + "\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\5\u0091\u064f\n\u0091\3\u0092"+ + "\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093\7\u0093\u0659"+ + "\n\u0093\f\u0093\16\u0093\u065c\13\u0093\3\u0093\7\u0093\u065f\n\u0093"+ + "\f\u0093\16\u0093\u0662\13\u0093\3\u0093\3\u0093\3\u0094\3\u0094\3\u0094"+ + "\3\u0095\3\u0095\7\u0095\u066b\n\u0095\f\u0095\16\u0095\u066e\13\u0095"+ + "\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096"+ + "\3\u0096\5\u0096\u067a\n\u0096\3\u0097\3\u0097\3\u0098\3\u0098\3\u0098"+ + "\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099"+ + "\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009b"+ + "\3\u009b\5\u009b\u0694\n\u009b\3\u009c\3\u009c\5\u009c\u0698\n\u009c\3"+ + "\u009d\3\u009d\3\u009d\5\u009d\u069d\n\u009d\3\u009d\3\u009d\5\u009d\u06a1"+ + "\n\u009d\3\u009d\3\u009d\5\u009d\u06a5\n\u009d\3\u009d\3\u009d\3\u009d"+ + "\3\u009e\3\u009e\3\u009e\5\u009e\u06ad\n\u009e\3\u009e\3\u009e\5\u009e"+ + "\u06b1\n\u009e\3\u009e\3\u009e\5\u009e\u06b5\n\u009e\3\u009e\3\u009e\3"+ + "\u009e\3\u009f\3\u009f\5\u009f\u06bc\n\u009f\3\u00a0\3\u00a0\3\u00a1\3"+ + "\u00a1\3\u00a1\7\u00a1\u06c3\n\u00a1\f\u00a1\16\u00a1\u06c6\13\u00a1\3"+ + "\u00a2\3\u00a2\3\u00a2\7\u00a2\u06cb\n\u00a2\f\u00a2\16\u00a2\u06ce\13"+ + "\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a3"+ + "\3\u00a3\3\u00a3\7\u00a3\u06da\n\u00a3\f\u00a3\16\u00a3\u06dd\13\u00a3"+ + "\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a4\3\u00a4"+ + "\5\u00a4\u06e8\n\u00a4\3\u00a4\3\u00a4\3\u00a5\3\u00a5\5\u00a5\u06ee\n"+ + "\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\5\u00a6\u06f4\n\u00a6\3\u00a6\3"+ + "\u00a6\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a8\3\u00a8\3\u00a8\3\u00a8"+ + "\3\u00a8\3\u00a8\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9"+ + "\5\u00a9\u0709\n\u00a9\3\u00a9\3\u00a9\3\u00a9\5\u00a9\u070e\n\u00a9\3"+ + "\u00aa\3\u00aa\7\u00aa\u0712\n\u00aa\f\u00aa\16\u00aa\u0715\13\u00aa\3"+ + "\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ac\7\u00ac\u071e\n"+ + "\u00ac\f\u00ac\16\u00ac\u0721\13\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ad"+ + "\3\u00ad\3\u00ad\7\u00ad\u0729\n\u00ad\f\u00ad\16\u00ad\u072c\13\u00ad"+ + "\3\u00ae\3\u00ae\3\u00ae\3\u00af\3\u00af\3\u00af\3\u00af\5\u00af\u0735"+ + "\n\u00af\3\u00af\5\u00af\u0738\n\u00af\3\u00b0\3\u00b0\3\u00b0\5\u00b0"+ + "\u073d\n\u00b0\3\u00b0\3\u00b0\3\u00b1\3\u00b1\3\u00b1\7\u00b1\u0744\n"+ + "\u00b1\f\u00b1\16\u00b1\u0747\13\u00b1\3\u00b2\7\u00b2\u074a\n\u00b2\f"+ + "\u00b2\16\u00b2\u074d\13\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2"+ + "\3\u00b3\3\u00b3\5\u00b3\u0756\n\u00b3\3\u00b3\7\u00b3\u0759\n\u00b3\f"+ + "\u00b3\16\u00b3\u075c\13\u00b3\3\u00b4\3\u00b4\3\u00b4\3\u00b4\7\u00b4"+ + "\u0762\n\u00b4\f\u00b4\16\u00b4\u0765\13\u00b4\3\u00b4\3\u00b4\3\u00b4"+ "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+ - "\3\u00b4\3\u00b4\5\u00b4\u077d\n\u00b4\3\u00b5\3\u00b5\3\u00b6\3\u00b6"+ - "\3\u00b6\3\u00b6\7\u00b6\u0785\n\u00b6\f\u00b6\16\u00b6\u0788\13\u00b6"+ + "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\5\u00b4"+ + "\u077b\n\u00b4\3\u00b5\3\u00b5\3\u00b6\3\u00b6\3\u00b6\3\u00b6\7\u00b6"+ + "\u0783\n\u00b6\f\u00b6\16\u00b6\u0786\13\u00b6\3\u00b6\3\u00b6\3\u00b6"+ "\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6"+ - "\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6"+ - "\3\u00b6\5\u00b6\u079d\n\u00b6\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7"+ - "\5\u00b7\u07a4\n\u00b7\3\u00b8\3\u00b8\3\u00b9\3\u00b9\3\u00b9\3\u00b9"+ - "\5\u00b9\u07ac\n\u00b9\3\u00ba\3\u00ba\3\u00ba\3\u00ba\7\u00ba\u07b2\n"+ - "\u00ba\f\u00ba\16\u00ba\u07b5\13\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba"+ - "\3\u00ba\3\u00ba\7\u00ba\u07bd\n\u00ba\f\u00ba\16\u00ba\u07c0\13\u00ba"+ + "\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\5\u00b6\u079b"+ + "\n\u00b6\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\5\u00b7\u07a2\n\u00b7"+ + "\3\u00b8\3\u00b8\3\u00b9\3\u00b9\3\u00b9\3\u00b9\5\u00b9\u07aa\n\u00b9"+ + "\3\u00ba\3\u00ba\3\u00ba\3\u00ba\7\u00ba\u07b0\n\u00ba\f\u00ba\16\u00ba"+ + "\u07b3\13\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\7\u00ba"+ + "\u07bb\n\u00ba\f\u00ba\16\u00ba\u07be\13\u00ba\3\u00ba\3\u00ba\3\u00ba"+ "\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba"+ - "\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba"+ - "\3\u00ba\3\u00ba\5\u00ba\u07d6\n\u00ba\3\u00bb\3\u00bb\3\u00bc\3\u00bc"+ - "\3\u00bc\3\u00bc\7\u00bc\u07de\n\u00bc\f\u00bc\16\u00bc\u07e1\13\u00bc"+ - "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\7\u00bc\u07e9\n\u00bc"+ - "\f\u00bc\16\u00bc\u07ec\13\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc"+ + "\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\5\u00ba"+ + "\u07d4\n\u00ba\3\u00bb\3\u00bb\3\u00bc\3\u00bc\3\u00bc\3\u00bc\7\u00bc"+ + "\u07dc\n\u00bc\f\u00bc\16\u00bc\u07df\13\u00bc\3\u00bc\3\u00bc\3\u00bc"+ + "\3\u00bc\3\u00bc\3\u00bc\7\u00bc\u07e7\n\u00bc\f\u00bc\16\u00bc\u07ea"+ + "\13\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc"+ "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc"+ - "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u0801\n\u00bc\3\u00bd"+ - "\3\u00bd\5\u00bd\u0805\n\u00bd\3\u00bd\7\u00bd\u0808\n\u00bd\f\u00bd\16"+ - "\u00bd\u080b\13\u00bd\3\u00bd\3\u00bd\3\u00bd\7\u00bd\u0810\n\u00bd\f"+ - "\u00bd\16\u00bd\u0813\13\u00bd\3\u00bd\7\u00bd\u0816\n\u00bd\f\u00bd\16"+ - "\u00bd\u0819\13\u00bd\3\u00bd\5\u00bd\u081c\n\u00bd\3\u00bd\3\u00bd\5"+ - "\u00bd\u0820\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u0824\n\u00bd\3\u00bd\3\u00bd"+ - "\3\u00bd\3\u00bd\5\u00bd\u082a\n\u00bd\3\u00bd\7\u00bd\u082d\n\u00bd\f"+ - "\u00bd\16\u00bd\u0830\13\u00bd\3\u00bd\3\u00bd\5\u00bd\u0834\n\u00bd\3"+ - "\u00bd\3\u00bd\5\u00bd\u0838\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u083c\n\u00bd"+ - "\3\u00bd\3\u00bd\3\u00bd\3\u00bd\5\u00bd\u0842\n\u00bd\3\u00bd\7\u00bd"+ - "\u0845\n\u00bd\f\u00bd\16\u00bd\u0848\13\u00bd\3\u00bd\3\u00bd\5\u00bd"+ - "\u084c\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u0850\n\u00bd\3\u00bd\3\u00bd\5"+ - "\u00bd\u0854\n\u00bd\5\u00bd\u0856\n\u00bd\3\u00be\3\u00be\3\u00be\5\u00be"+ - "\u085b\n\u00be\3\u00be\7\u00be\u085e\n\u00be\f\u00be\16\u00be\u0861\13"+ - "\u00be\3\u00be\3\u00be\5\u00be\u0865\n\u00be\3\u00be\3\u00be\5\u00be\u0869"+ - "\n\u00be\3\u00be\3\u00be\5\u00be\u086d\n\u00be\3\u00bf\3\u00bf\5\u00bf"+ - "\u0871\n\u00bf\3\u00bf\7\u00bf\u0874\n\u00bf\f\u00bf\16\u00bf\u0877\13"+ - "\u00bf\3\u00bf\3\u00bf\3\u00bf\7\u00bf\u087c\n\u00bf\f\u00bf\16\u00bf"+ - "\u087f\13\u00bf\3\u00bf\7\u00bf\u0882\n\u00bf\f\u00bf\16\u00bf\u0885\13"+ - "\u00bf\3\u00bf\5\u00bf\u0888\n\u00bf\3\u00bf\3\u00bf\5\u00bf\u088c\n\u00bf"+ - "\3\u00bf\3\u00bf\5\u00bf\u0890\n\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf"+ - "\5\u00bf\u0896\n\u00bf\3\u00bf\7\u00bf\u0899\n\u00bf\f\u00bf\16\u00bf"+ - "\u089c\13\u00bf\3\u00bf\3\u00bf\5\u00bf\u08a0\n\u00bf\3\u00bf\3\u00bf"+ - "\5\u00bf\u08a4\n\u00bf\3\u00bf\3\u00bf\5\u00bf\u08a8\n\u00bf\5\u00bf\u08aa"+ - "\n\u00bf\3\u00c0\3\u00c0\3\u00c0\5\u00c0\u08af\n\u00c0\3\u00c1\3\u00c1"+ - "\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1"+ - "\3\u00c1\3\u00c1\5\u00c1\u08be\n\u00c1\3\u00c2\3\u00c2\3\u00c2\3\u00c3"+ - "\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\5\u00c3"+ - "\u08cc\n\u00c3\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4"+ - "\3\u00c4\3\u00c4\3\u00c4\5\u00c4\u08d8\n\u00c4\3\u00c4\3\u00c4\3\u00c4"+ - "\3\u00c4\3\u00c4\7\u00c4\u08df\n\u00c4\f\u00c4\16\u00c4\u08e2\13\u00c4"+ - "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5"+ - "\3\u00c5\7\u00c5\u08ee\n\u00c5\f\u00c5\16\u00c5\u08f1\13\u00c5\3\u00c6"+ - "\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6"+ - "\5\u00c6\u08fd\n\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\7\u00c6"+ - "\u0904\n\u00c6\f\u00c6\16\u00c6\u0907\13\u00c6\3\u00c7\3\u00c7\3\u00c7"+ - "\5\u00c7\u090c\n\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7"+ - "\u0913\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0918\n\u00c7\3\u00c7\3"+ - "\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u091f\n\u00c7\3\u00c7\3\u00c7\3"+ - "\u00c7\5\u00c7\u0924\n\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5"+ - "\u00c7\u092b\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0930\n\u00c7\3\u00c7"+ - "\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0937\n\u00c7\3\u00c7\3\u00c7"+ - "\3\u00c7\5\u00c7\u093c\n\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7"+ - "\3\u00c7\5\u00c7\u0944\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0949\n"+ - "\u00c7\3\u00c7\3\u00c7\5\u00c7\u094d\n\u00c7\3\u00c8\3\u00c8\5\u00c8\u0951"+ - "\n\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u0956\n\u00c8\3\u00c8\3\u00c8"+ - "\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u095d\n\u00c9\3\u00c9\3\u00c9\3\u00c9"+ - "\3\u00c9\3\u00c9\5\u00c9\u0964\n\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9"+ - "\u0969\n\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u0970\n"+ - "\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u0975\n\u00c9\3\u00c9\3\u00c9\3"+ - "\u00c9\3\u00c9\3\u00c9\5\u00c9\u097c\n\u00c9\3\u00c9\3\u00c9\3\u00c9\5"+ - "\u00c9\u0981\n\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\5"+ - "\u00c9\u0989\n\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u098e\n\u00c9\3\u00c9"+ - "\3\u00c9\5\u00c9\u0992\n\u00c9\3\u00ca\3\u00ca\3\u00ca\7\u00ca\u0997\n"+ - "\u00ca\f\u00ca\16\u00ca\u099a\13\u00ca\3\u00cb\3\u00cb\3\u00cb\5\u00cb"+ - "\u099f\n\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09a6\n"+ - "\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09ad\n\u00cb\3"+ - "\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09b4\n\u00cb\3\u00cb\3"+ - "\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09bc\n\u00cb\3\u00cb\3"+ - "\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09c3\n\u00cb\3\u00cb\3\u00cb\3"+ - "\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09cb\n\u00cb\3\u00cc\3\u00cc\5"+ - "\u00cc\u09cf\n\u00cc\3\u00cc\3\u00cc\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09d6"+ - "\n\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09dd\n\u00cd"+ - "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09e4\n\u00cd\3\u00cd"+ - "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09ec\n\u00cd\3\u00cd"+ - "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09f3\n\u00cd\3\u00cd\3\u00cd"+ - "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09fb\n\u00cd\3\u00ce\3\u00ce"+ - "\3\u00ce\3\u00ce\5\u00ce\u0a01\n\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce"+ - "\5\u00ce\u0a07\n\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce"+ - "\3\u00ce\3\u00ce\3\u00ce\3\u00ce\5\u00ce\u0a13\n\u00ce\3\u00cf\3\u00cf"+ - "\7\u00cf\u0a17\n\u00cf\f\u00cf\16\u00cf\u0a1a\13\u00cf\3\u00d0\7\u00d0"+ - "\u0a1d\n\u00d0\f\u00d0\16\u00d0\u0a20\13\u00d0\3\u00d0\3\u00d0\3\u00d0"+ - "\3\u00d0\3\u00d1\3\u00d1\3\u00d2\3\u00d2\5\u00d2\u0a2a\n\u00d2\3\u00d3"+ - "\3\u00d3\3\u00d3\3\u00d3\3\u00d4\3\u00d4\3\u00d4\5\u00d4\u0a33\n\u00d4"+ - "\3\u00d4\5\u00d4\u0a36\n\u00d4\3\u00d5\3\u00d5\3\u00d5\7\u00d5\u0a3b\n"+ - "\u00d5\f\u00d5\16\u00d5\u0a3e\13\u00d5\3\u00d6\3\u00d6\5\u00d6\u0a42\n"+ - "\u00d6\3\u00d7\3\u00d7\5\u00d7\u0a46\n\u00d7\3\u00d8\3\u00d8\3\u00d8\3"+ - "\u00d8\3\u00d9\3\u00d9\3\u00d9\5\u00d9\u0a4f\n\u00d9\3\u00da\3\u00da\3"+ - "\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\5\u00db\u0a5a\n"+ - "\u00db\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc\7\u00dc\u0a62\n"+ - "\u00dc\f\u00dc\16\u00dc\u0a65\13\u00dc\3\u00dd\3\u00dd\3\u00dd\3\u00dd"+ - "\3\u00dd\3\u00dd\7\u00dd\u0a6d\n\u00dd\f\u00dd\16\u00dd\u0a70\13\u00dd"+ - "\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\7\u00de\u0a78\n\u00de"+ - "\f\u00de\16\u00de\u0a7b\13\u00de\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df"+ - "\3\u00df\7\u00df\u0a83\n\u00df\f\u00df\16\u00df\u0a86\13\u00df\3\u00e0"+ - "\3\u00e0\3\u00e0\3\u00e0\3\u00e0\3\u00e0\7\u00e0\u0a8e\n\u00e0\f\u00e0"+ - "\16\u00e0\u0a91\13\u00e0\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1"+ - "\3\u00e1\3\u00e1\3\u00e1\7\u00e1\u0a9c\n\u00e1\f\u00e1\16\u00e1\u0a9f"+ - "\13\u00e1\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2"+ + "\3\u00bc\3\u00bc\5\u00bc\u07ff\n\u00bc\3\u00bd\3\u00bd\5\u00bd\u0803\n"+ + "\u00bd\3\u00bd\7\u00bd\u0806\n\u00bd\f\u00bd\16\u00bd\u0809\13\u00bd\3"+ + "\u00bd\3\u00bd\3\u00bd\7\u00bd\u080e\n\u00bd\f\u00bd\16\u00bd\u0811\13"+ + "\u00bd\3\u00bd\7\u00bd\u0814\n\u00bd\f\u00bd\16\u00bd\u0817\13\u00bd\3"+ + "\u00bd\5\u00bd\u081a\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u081e\n\u00bd\3\u00bd"+ + "\3\u00bd\5\u00bd\u0822\n\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\5\u00bd"+ + "\u0828\n\u00bd\3\u00bd\7\u00bd\u082b\n\u00bd\f\u00bd\16\u00bd\u082e\13"+ + "\u00bd\3\u00bd\3\u00bd\5\u00bd\u0832\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u0836"+ + "\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u083a\n\u00bd\3\u00bd\3\u00bd\3\u00bd"+ + "\3\u00bd\5\u00bd\u0840\n\u00bd\3\u00bd\7\u00bd\u0843\n\u00bd\f\u00bd\16"+ + "\u00bd\u0846\13\u00bd\3\u00bd\3\u00bd\5\u00bd\u084a\n\u00bd\3\u00bd\3"+ + "\u00bd\5\u00bd\u084e\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u0852\n\u00bd\5\u00bd"+ + "\u0854\n\u00bd\3\u00be\3\u00be\3\u00be\5\u00be\u0859\n\u00be\3\u00be\7"+ + "\u00be\u085c\n\u00be\f\u00be\16\u00be\u085f\13\u00be\3\u00be\3\u00be\5"+ + "\u00be\u0863\n\u00be\3\u00be\3\u00be\5\u00be\u0867\n\u00be\3\u00be\3\u00be"+ + "\5\u00be\u086b\n\u00be\3\u00bf\3\u00bf\5\u00bf\u086f\n\u00bf\3\u00bf\7"+ + "\u00bf\u0872\n\u00bf\f\u00bf\16\u00bf\u0875\13\u00bf\3\u00bf\3\u00bf\3"+ + "\u00bf\7\u00bf\u087a\n\u00bf\f\u00bf\16\u00bf\u087d\13\u00bf\3\u00bf\7"+ + "\u00bf\u0880\n\u00bf\f\u00bf\16\u00bf\u0883\13\u00bf\3\u00bf\5\u00bf\u0886"+ + "\n\u00bf\3\u00bf\3\u00bf\5\u00bf\u088a\n\u00bf\3\u00bf\3\u00bf\5\u00bf"+ + "\u088e\n\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\5\u00bf\u0894\n\u00bf\3"+ + "\u00bf\7\u00bf\u0897\n\u00bf\f\u00bf\16\u00bf\u089a\13\u00bf\3\u00bf\3"+ + "\u00bf\5\u00bf\u089e\n\u00bf\3\u00bf\3\u00bf\5\u00bf\u08a2\n\u00bf\3\u00bf"+ + "\3\u00bf\5\u00bf\u08a6\n\u00bf\5\u00bf\u08a8\n\u00bf\3\u00c0\3\u00c0\3"+ + "\u00c0\5\u00c0\u08ad\n\u00c0\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3"+ + "\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\5\u00c1"+ + "\u08bc\n\u00c1\3\u00c2\3\u00c2\3\u00c2\3\u00c3\3\u00c3\3\u00c3\3\u00c3"+ + "\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\5\u00c3\u08ca\n\u00c3\3\u00c4"+ + "\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4"+ + "\5\u00c4\u08d6\n\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\7\u00c4"+ + "\u08dd\n\u00c4\f\u00c4\16\u00c4\u08e0\13\u00c4\3\u00c5\3\u00c5\3\u00c5"+ + "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\7\u00c5\u08ec"+ + "\n\u00c5\f\u00c5\16\u00c5\u08ef\13\u00c5\3\u00c6\3\u00c6\3\u00c6\3\u00c6"+ + "\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u08fb\n\u00c6"+ + "\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\7\u00c6\u0902\n\u00c6\f\u00c6"+ + "\16\u00c6\u0905\13\u00c6\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u090a\n\u00c7"+ + "\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0911\n\u00c7\3\u00c7"+ + "\3\u00c7\3\u00c7\5\u00c7\u0916\n\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7"+ + "\3\u00c7\5\u00c7\u091d\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0922\n"+ + "\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0929\n\u00c7\3"+ + "\u00c7\3\u00c7\3\u00c7\5\u00c7\u092e\n\u00c7\3\u00c7\3\u00c7\3\u00c7\3"+ + "\u00c7\3\u00c7\5\u00c7\u0935\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u093a"+ + "\n\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0942"+ + "\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0947\n\u00c7\3\u00c7\3\u00c7"+ + "\5\u00c7\u094b\n\u00c7\3\u00c8\3\u00c8\5\u00c8\u094f\n\u00c8\3\u00c8\3"+ + "\u00c8\3\u00c8\5\u00c8\u0954\n\u00c8\3\u00c8\3\u00c8\3\u00c9\3\u00c9\3"+ + "\u00c9\5\u00c9\u095b\n\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\5"+ + "\u00c9\u0962\n\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u0967\n\u00c9\3\u00c9"+ + "\3\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u096e\n\u00c9\3\u00c9\3\u00c9"+ + "\3\u00c9\5\u00c9\u0973\n\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9"+ + "\5\u00c9\u097a\n\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u097f\n\u00c9\3"+ + "\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u0987\n\u00c9\3"+ + "\u00c9\3\u00c9\3\u00c9\5\u00c9\u098c\n\u00c9\3\u00c9\3\u00c9\5\u00c9\u0990"+ + "\n\u00c9\3\u00ca\3\u00ca\3\u00ca\7\u00ca\u0995\n\u00ca\f\u00ca\16\u00ca"+ + "\u0998\13\u00ca\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u099d\n\u00cb\3\u00cb"+ + "\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09a4\n\u00cb\3\u00cb\3\u00cb"+ + "\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09ab\n\u00cb\3\u00cb\3\u00cb\3\u00cb"+ + "\3\u00cb\3\u00cb\5\u00cb\u09b2\n\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb"+ + "\3\u00cb\3\u00cb\5\u00cb\u09ba\n\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb"+ + "\3\u00cb\5\u00cb\u09c1\n\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb"+ + "\3\u00cb\5\u00cb\u09c9\n\u00cb\3\u00cc\3\u00cc\5\u00cc\u09cd\n\u00cc\3"+ + "\u00cc\3\u00cc\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09d4\n\u00cd\3\u00cd\3"+ + "\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09db\n\u00cd\3\u00cd\3\u00cd\3"+ + "\u00cd\3\u00cd\3\u00cd\5\u00cd\u09e2\n\u00cd\3\u00cd\3\u00cd\3\u00cd\3"+ + "\u00cd\3\u00cd\3\u00cd\5\u00cd\u09ea\n\u00cd\3\u00cd\3\u00cd\3\u00cd\3"+ + "\u00cd\3\u00cd\5\u00cd\u09f1\n\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3"+ + "\u00cd\3\u00cd\5\u00cd\u09f9\n\u00cd\3\u00ce\3\u00ce\3\u00ce\3\u00ce\5"+ + "\u00ce\u09ff\n\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\5\u00ce\u0a05\n\u00ce"+ + "\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce"+ + "\3\u00ce\5\u00ce\u0a11\n\u00ce\3\u00cf\3\u00cf\7\u00cf\u0a15\n\u00cf\f"+ + "\u00cf\16\u00cf\u0a18\13\u00cf\3\u00d0\7\u00d0\u0a1b\n\u00d0\f\u00d0\16"+ + "\u00d0\u0a1e\13\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d1\3\u00d1"+ + "\3\u00d2\3\u00d2\5\u00d2\u0a28\n\u00d2\3\u00d3\3\u00d3\3\u00d3\3\u00d3"+ + "\3\u00d4\3\u00d4\3\u00d4\5\u00d4\u0a31\n\u00d4\3\u00d4\5\u00d4\u0a34\n"+ + "\u00d4\3\u00d5\3\u00d5\3\u00d5\7\u00d5\u0a39\n\u00d5\f\u00d5\16\u00d5"+ + "\u0a3c\13\u00d5\3\u00d6\3\u00d6\5\u00d6\u0a40\n\u00d6\3\u00d7\3\u00d7"+ + "\5\u00d7\u0a44\n\u00d7\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d9\3\u00d9"+ + "\3\u00d9\5\u00d9\u0a4d\n\u00d9\3\u00da\3\u00da\3\u00db\3\u00db\3\u00db"+ + "\3\u00db\3\u00db\3\u00db\3\u00db\5\u00db\u0a58\n\u00db\3\u00dc\3\u00dc"+ + "\3\u00dc\3\u00dc\3\u00dc\3\u00dc\7\u00dc\u0a60\n\u00dc\f\u00dc\16\u00dc"+ + "\u0a63\13\u00dc\3\u00dd\3\u00dd\3\u00dd\3\u00dd\3\u00dd\3\u00dd\7\u00dd"+ + "\u0a6b\n\u00dd\f\u00dd\16\u00dd\u0a6e\13\u00dd\3\u00de\3\u00de\3\u00de"+ + "\3\u00de\3\u00de\3\u00de\7\u00de\u0a76\n\u00de\f\u00de\16\u00de\u0a79"+ + "\13\u00de\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\7\u00df\u0a81"+ + "\n\u00df\f\u00df\16\u00df\u0a84\13\u00df\3\u00e0\3\u00e0\3\u00e0\3\u00e0"+ + "\3\u00e0\3\u00e0\7\u00e0\u0a8c\n\u00e0\f\u00e0\16\u00e0\u0a8f\13\u00e0"+ + "\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1"+ + "\7\u00e1\u0a9a\n\u00e1\f\u00e1\16\u00e1\u0a9d\13\u00e1\3\u00e2\3\u00e2"+ "\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2"+ - "\3\u00e2\7\u00e2\u0ab3\n\u00e2\f\u00e2\16\u00e2\u0ab6\13\u00e2\3\u00e3"+ + "\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\7\u00e2\u0ab1"+ + "\n\u00e2\f\u00e2\16\u00e2\u0ab4\13\u00e2\3\u00e3\3\u00e3\3\u00e3\3\u00e3"+ "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3"+ - "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\7\u00e3\u0ac8\n\u00e3"+ - "\f\u00e3\16\u00e3\u0acb\13\u00e3\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4"+ - "\3\u00e4\3\u00e4\3\u00e4\3\u00e4\7\u00e4\u0ad6\n\u00e4\f\u00e4\16\u00e4"+ - "\u0ad9\13\u00e4\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5"+ - "\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\7\u00e5\u0ae7\n\u00e5\f\u00e5"+ - "\16\u00e5\u0aea\13\u00e5\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6"+ - "\3\u00e6\5\u00e6\u0af3\n\u00e6\3\u00e7\3\u00e7\3\u00e7\3\u00e8\3\u00e8"+ - "\3\u00e8\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\5\u00e9\u0b01"+ - "\n\u00e9\3\u00ea\3\u00ea\5\u00ea\u0b05\n\u00ea\3\u00ea\3\u00ea\7\u00ea"+ - "\u0b09\n\u00ea\f\u00ea\16\u00ea\u0b0c\13\u00ea\3\u00eb\3\u00eb\3\u00eb"+ - "\3\u00ec\3\u00ec\3\u00ed\3\u00ed\3\u00ed\3\u00ee\3\u00ee\3\u00ef\3\u00ef"+ - "\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\7\u00ef\u0b20\n\u00ef"+ - "\f\u00ef\16\u00ef\u0b23\13\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef"+ - "\3\u00ef\7\u00ef\u0b2b\n\u00ef\f\u00ef\16\u00ef\u0b2e\13\u00ef\3\u00ef"+ - "\3\u00ef\3\u00ef\5\u00ef\u0b33\n\u00ef\3\u00ef\2\17\66:@\u01b6\u01b8\u01ba"+ - "\u01bc\u01be\u01c0\u01c2\u01c4\u01c6\u01c8\u00f0\2\4\6\b\n\f\16\20\22"+ - "\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnp"+ - "rtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094"+ - "\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac"+ - "\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4"+ - "\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc"+ - "\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4"+ - "\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106\u0108\u010a\u010c"+ - "\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124"+ - "\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0138\u013a\u013c"+ - "\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e\u0150\u0152\u0154"+ - "\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c"+ - "\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e\u0180\u0182\u0184"+ - "\u0186\u0188\u018a\u018c\u018e\u0190\u0192\u0194\u0196\u0198\u019a\u019c"+ - "\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4"+ - "\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc"+ - "\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\2\6\3\2\66;\7\2\b\b\13"+ - "\13\36\36 ((\4\2\21\21\27\27\4\2EE^h\u0c28\2\u01de\3\2\2\2\4\u01e2\3"+ - "\2\2\2\6\u01f2\3\2\2\2\b\u01f6\3\2\2\2\n\u01f8\3\2\2\2\f\u01fa\3\2\2\2"+ - "\16\u01ff\3\2\2\2\20\u0203\3\2\2\2\22\u0222\3\2\2\2\24\u0224\3\2\2\2\26"+ - "\u0232\3\2\2\2\30\u0239\3\2\2\2\32\u023b\3\2\2\2\34\u023d\3\2\2\2\36\u0242"+ - "\3\2\2\2 \u0250\3\2\2\2\"\u0255\3\2\2\2$\u026a\3\2\2\2&\u0271\3\2\2\2"+ - "(\u027d\3\2\2\2*\u027f\3\2\2\2,\u0282\3\2\2\2.\u0286\3\2\2\2\60\u0290"+ - "\3\2\2\2\62\u0295\3\2\2\2\64\u02a0\3\2\2\2\66\u02a2\3\2\2\28\u02b2\3\2"+ - "\2\2:\u02b4\3\2\2\2<\u02c4\3\2\2\2>\u02c6\3\2\2\2@\u02c8\3\2\2\2B\u02d4"+ - "\3\2\2\2D\u02e7\3\2\2\2F\u02f5\3\2\2\2H\u02fb\3\2\2\2J\u02fd\3\2\2\2L"+ - "\u0301\3\2\2\2N\u0307\3\2\2\2P\u030e\3\2\2\2R\u0318\3\2\2\2T\u031c\3\2"+ - "\2\2V\u0321\3\2\2\2X\u0339\3\2\2\2Z\u033b\3\2\2\2\\\u033f\3\2\2\2^\u0347"+ - "\3\2\2\2`\u034a\3\2\2\2b\u034d\3\2\2\2d\u0355\3\2\2\2f\u0361\3\2\2\2h"+ - "\u0368\3\2\2\2j\u036d\3\2\2\2l\u037e\3\2\2\2n\u0380\3\2\2\2p\u0388\3\2"+ - "\2\2r\u038d\3\2\2\2t\u0393\3\2\2\2v\u0397\3\2\2\2x\u039b\3\2\2\2z\u03a0"+ - "\3\2\2\2|\u03a4\3\2\2\2~\u03bd\3\2\2\2\u0080\u03bf\3\2\2\2\u0082\u03ca"+ - "\3\2\2\2\u0084\u03ce\3\2\2\2\u0086\u03d0\3\2\2\2\u0088\u03d2\3\2\2\2\u008a"+ - "\u03d4\3\2\2\2\u008c\u03df\3\2\2\2\u008e\u03e4\3\2\2\2\u0090\u03f4\3\2"+ - "\2\2\u0092\u040b\3\2\2\2\u0094\u040f\3\2\2\2\u0096\u0411\3\2\2\2\u0098"+ - "\u041f\3\2\2\2\u009a\u0431\3\2\2\2\u009c\u0436\3\2\2\2\u009e\u0440\3\2"+ - "\2\2\u00a0\u0453\3\2\2\2\u00a2\u0458\3\2\2\2\u00a4\u0462\3\2\2\2\u00a6"+ - "\u0465\3\2\2\2\u00a8\u046f\3\2\2\2\u00aa\u0473\3\2\2\2\u00ac\u0475\3\2"+ - "\2\2\u00ae\u0477\3\2\2\2\u00b0\u047d\3\2\2\2\u00b2\u048a\3\2\2\2\u00b4"+ - "\u048d\3\2\2\2\u00b6\u0496\3\2\2\2\u00b8\u0498\3\2\2\2\u00ba\u04cf\3\2"+ - "\2\2\u00bc\u04d4\3\2\2\2\u00be\u04de\3\2\2\2\u00c0\u04ea\3\2\2\2\u00c2"+ - "\u04f5\3\2\2\2\u00c4\u0503\3\2\2\2\u00c6\u0505\3\2\2\2\u00c8\u050e\3\2"+ - "\2\2\u00ca\u0513\3\2\2\2\u00cc\u0527\3\2\2\2\u00ce\u0529\3\2\2\2\u00d0"+ - "\u052c\3\2\2\2\u00d2\u053a\3\2\2\2\u00d4\u053f\3\2\2\2\u00d6\u054a\3\2"+ - "\2\2\u00d8\u054f\3\2\2\2\u00da\u055b\3\2\2\2\u00dc\u0560\3\2\2\2\u00de"+ - "\u0568\3\2\2\2\u00e0\u0576\3\2\2\2\u00e2\u057b\3\2\2\2\u00e4\u058d\3\2"+ - "\2\2\u00e6\u058f\3\2\2\2\u00e8\u0595\3\2\2\2\u00ea\u0597\3\2\2\2\u00ec"+ - "\u059f\3\2\2\2\u00ee\u05a7\3\2\2\2\u00f0\u05ae\3\2\2\2\u00f2\u05b0\3\2"+ - "\2\2\u00f4\u05b9\3\2\2\2\u00f6\u05c1\3\2\2\2\u00f8\u05c4\3\2\2\2\u00fa"+ - "\u05ca\3\2\2\2\u00fc\u05d3\3\2\2\2\u00fe\u05db\3\2\2\2\u0100\u05e1\3\2"+ - "\2\2\u0102\u05eb\3\2\2\2\u0104\u05ed\3\2\2\2\u0106\u05f2\3\2\2\2\u0108"+ - "\u05f7\3\2\2\2\u010a\u0603\3\2\2\2\u010c\u060a\3\2\2\2\u010e\u0618\3\2"+ - "\2\2\u0110\u061a\3\2\2\2\u0112\u061c\3\2\2\2\u0114\u0620\3\2\2\2\u0116"+ - "\u0624\3\2\2\2\u0118\u062e\3\2\2\2\u011a\u0630\3\2\2\2\u011c\u0636\3\2"+ - "\2\2\u011e\u063e\3\2\2\2\u0120\u0650\3\2\2\2\u0122\u0652\3\2\2\2\u0124"+ - "\u0658\3\2\2\2\u0126\u0667\3\2\2\2\u0128\u066a\3\2\2\2\u012a\u067b\3\2"+ - "\2\2\u012c\u067d\3\2\2\2\u012e\u067f\3\2\2\2\u0130\u0685\3\2\2\2\u0132"+ - "\u068b\3\2\2\2\u0134\u0695\3\2\2\2\u0136\u0699\3\2\2\2\u0138\u069b\3\2"+ - "\2\2\u013a\u06ab\3\2\2\2\u013c\u06bd\3\2\2\2\u013e\u06bf\3\2\2\2\u0140"+ - "\u06c1\3\2\2\2\u0142\u06c9\3\2\2\2\u0144\u06d8\3\2\2\2\u0146\u06e7\3\2"+ - "\2\2\u0148\u06ed\3\2\2\2\u014a\u06f3\3\2\2\2\u014c\u06f9\3\2\2\2\u014e"+ - "\u06fd\3\2\2\2\u0150\u070f\3\2\2\2\u0152\u0711\3\2\2\2\u0154\u0718\3\2"+ - "\2\2\u0156\u0721\3\2\2\2\u0158\u0727\3\2\2\2\u015a\u072f\3\2\2\2\u015c"+ - "\u0732\3\2\2\2\u015e\u073b\3\2\2\2\u0160\u0742\3\2\2\2\u0162\u074d\3\2"+ - "\2\2\u0164\u0757\3\2\2\2\u0166\u077c\3\2\2\2\u0168\u077e\3\2\2\2\u016a"+ - "\u079c\3\2\2\2\u016c\u07a3\3\2\2\2\u016e\u07a5\3\2\2\2\u0170\u07ab\3\2"+ - "\2\2\u0172\u07d5\3\2\2\2\u0174\u07d7\3\2\2\2\u0176\u0800\3\2\2\2\u0178"+ - "\u0855\3\2\2\2\u017a\u0857\3\2\2\2\u017c\u08a9\3\2\2\2\u017e\u08ae\3\2"+ - "\2\2\u0180\u08bd\3\2\2\2\u0182\u08bf\3\2\2\2\u0184\u08cb\3\2\2\2\u0186"+ - "\u08d7\3\2\2\2\u0188\u08e3\3\2\2\2\u018a\u08fc\3\2\2\2\u018c\u094c\3\2"+ - "\2\2\u018e\u094e\3\2\2\2\u0190\u0991\3\2\2\2\u0192\u0993\3\2\2\2\u0194"+ - "\u09ca\3\2\2\2\u0196\u09cc\3\2\2\2\u0198\u09fa\3\2\2\2\u019a\u0a12\3\2"+ - "\2\2\u019c\u0a14\3\2\2\2\u019e\u0a1e\3\2\2\2\u01a0\u0a25\3\2\2\2\u01a2"+ - "\u0a29\3\2\2\2\u01a4\u0a2b\3\2\2\2\u01a6\u0a35\3\2\2\2\u01a8\u0a37\3\2"+ - "\2\2\u01aa\u0a41\3\2\2\2\u01ac\u0a45\3\2\2\2\u01ae\u0a47\3\2\2\2\u01b0"+ - "\u0a4e\3\2\2\2\u01b2\u0a50\3\2\2\2\u01b4\u0a59\3\2\2\2\u01b6\u0a5b\3\2"+ - "\2\2\u01b8\u0a66\3\2\2\2\u01ba\u0a71\3\2\2\2\u01bc\u0a7c\3\2\2\2\u01be"+ - "\u0a87\3\2\2\2\u01c0\u0a92\3\2\2\2\u01c2\u0aa0\3\2\2\2\u01c4\u0ab7\3\2"+ - "\2\2\u01c6\u0acc\3\2\2\2\u01c8\u0ada\3\2\2\2\u01ca\u0af2\3\2\2\2\u01cc"+ - "\u0af4\3\2\2\2\u01ce\u0af7\3\2\2\2\u01d0\u0b00\3\2\2\2\u01d2\u0b04\3\2"+ - "\2\2\u01d4\u0b0d\3\2\2\2\u01d6\u0b10\3\2\2\2\u01d8\u0b12\3\2\2\2\u01da"+ - "\u0b15\3\2\2\2\u01dc\u0b32\3\2\2\2\u01de\u01df\t\2\2\2\u01df\3\3\2\2\2"+ - "\u01e0\u01e3\5\6\4\2\u01e1\u01e3\5\16\b\2\u01e2\u01e0\3\2\2\2\u01e2\u01e1"+ - "\3\2\2\2\u01e3\5\3\2\2\2\u01e4\u01e6\5\u00e8u\2\u01e5\u01e4\3\2\2\2\u01e6"+ - "\u01e9\3\2\2\2\u01e7\u01e5\3\2\2\2\u01e7\u01e8\3\2\2\2\u01e8\u01ea\3\2"+ - "\2\2\u01e9\u01e7\3\2\2\2\u01ea\u01f3\5\b\5\2\u01eb\u01ed\5\u00e8u\2\u01ec"+ - "\u01eb\3\2\2\2\u01ed\u01f0\3\2\2\2\u01ee\u01ec\3\2\2\2\u01ee\u01ef\3\2"+ - "\2\2\u01ef\u01f1\3\2\2\2\u01f0\u01ee\3\2\2\2\u01f1\u01f3\7\6\2\2\u01f2"+ - "\u01e7\3\2\2\2\u01f2\u01ee\3\2\2\2\u01f3\7\3\2\2\2\u01f4\u01f7\5\n\6\2"+ - "\u01f5\u01f7\5\f\7\2\u01f6\u01f4\3\2\2\2\u01f6\u01f5\3\2\2\2\u01f7\t\3"+ - "\2\2\2\u01f8\u01f9\t\3\2\2\u01f9\13\3\2\2\2\u01fa\u01fb\t\4\2\2\u01fb"+ - "\r\3\2\2\2\u01fc\u0200\5\20\t\2\u01fd\u0200\5\36\20\2\u01fe\u0200\5 \21"+ - "\2\u01ff\u01fc\3\2\2\2\u01ff\u01fd\3\2\2\2\u01ff\u01fe\3\2\2\2\u0200\17"+ - "\3\2\2\2\u0201\u0204\5\26\f\2\u0202\u0204\5\34\17\2\u0203\u0201\3\2\2"+ - "\2\u0203\u0202\3\2\2\2\u0204\u0209\3\2\2\2\u0205\u0208\5\24\13\2\u0206"+ - "\u0208\5\32\16\2\u0207\u0205\3\2\2\2\u0207\u0206\3\2\2\2\u0208\u020b\3"+ - "\2\2\2\u0209\u0207\3\2\2\2\u0209\u020a\3\2\2\2\u020a\21\3\2\2\2\u020b"+ - "\u0209\3\2\2\2\u020c\u020e\5\u00e8u\2\u020d\u020c\3\2\2\2\u020e\u0211"+ - "\3\2\2\2\u020f\u020d\3\2\2\2\u020f\u0210\3\2\2\2\u0210\u0212\3\2\2\2\u0211"+ - "\u020f\3\2\2\2\u0212\u0214\7i\2\2\u0213\u0215\5,\27\2\u0214\u0213\3\2"+ - "\2\2\u0214\u0215\3\2\2\2\u0215\u0223\3\2\2\2\u0216\u0217\5\20\t\2\u0217"+ - "\u021b\7D\2\2\u0218\u021a\5\u00e8u\2\u0219\u0218\3\2\2\2\u021a\u021d\3"+ - "\2\2\2\u021b\u0219\3\2\2\2\u021b\u021c\3\2\2\2\u021c\u021e\3\2\2\2\u021d"+ - "\u021b\3\2\2\2\u021e\u0220\7i\2\2\u021f\u0221\5,\27\2\u0220\u021f\3\2"+ - "\2\2\u0220\u0221\3\2\2\2\u0221\u0223\3\2\2\2\u0222\u020f\3\2\2\2\u0222"+ - "\u0216\3\2\2\2\u0223\23\3\2\2\2\u0224\u0228\7D\2\2\u0225\u0227\5\u00e8"+ - "u\2\u0226\u0225\3\2\2\2\u0227\u022a\3\2\2\2\u0228\u0226\3\2\2\2\u0228"+ - "\u0229\3\2\2\2\u0229\u022b\3\2\2\2\u022a\u0228\3\2\2\2\u022b\u022d\7i"+ - "\2\2\u022c\u022e\5,\27\2\u022d\u022c\3\2\2\2\u022d\u022e\3\2\2\2\u022e"+ - "\25\3\2\2\2\u022f\u0231\5\u00e8u\2\u0230\u022f\3\2\2\2\u0231\u0234\3\2"+ - "\2\2\u0232\u0230\3\2\2\2\u0232\u0233\3\2\2\2\u0233\u0235\3\2\2\2\u0234"+ - "\u0232\3\2\2\2\u0235\u0237\7i\2\2\u0236\u0238\5,\27\2\u0237\u0236\3\2"+ - "\2\2\u0237\u0238\3\2\2\2\u0238\27\3\2\2\2\u0239\u023a\5\22\n\2\u023a\31"+ - "\3\2\2\2\u023b\u023c\5\24\13\2\u023c\33\3\2\2\2\u023d\u023e\5\26\f\2\u023e"+ - "\35\3\2\2\2\u023f\u0241\5\u00e8u\2\u0240\u023f\3\2\2\2\u0241\u0244\3\2"+ - "\2\2\u0242\u0240\3\2\2\2\u0242\u0243\3\2\2\2\u0243\u0245\3\2\2\2\u0244"+ - "\u0242\3\2\2\2\u0245\u0246\7i\2\2\u0246\37\3\2\2\2\u0247\u0248\5\6\4\2"+ - "\u0248\u0249\5\"\22\2\u0249\u0251\3\2\2\2\u024a\u024b\5\20\t\2\u024b\u024c"+ - "\5\"\22\2\u024c\u0251\3\2\2\2\u024d\u024e\5\36\20\2\u024e\u024f\5\"\22"+ - "\2\u024f\u0251\3\2\2\2\u0250\u0247\3\2\2\2\u0250\u024a\3\2\2\2\u0250\u024d"+ - "\3\2\2\2\u0251!\3\2\2\2\u0252\u0254\5\u00e8u\2\u0253\u0252\3\2\2\2\u0254"+ - "\u0257\3\2\2\2\u0255\u0253\3\2\2\2\u0255\u0256\3\2\2\2\u0256\u0258\3\2"+ - "\2\2\u0257\u0255\3\2\2\2\u0258\u0259\7@\2\2\u0259\u0264\7A\2\2\u025a\u025c"+ - "\5\u00e8u\2\u025b\u025a\3\2\2\2\u025c\u025f\3\2\2\2\u025d\u025b\3\2\2"+ - "\2\u025d\u025e\3\2\2\2\u025e\u0260\3\2\2\2\u025f\u025d\3\2\2\2\u0260\u0261"+ - "\7@\2\2\u0261\u0263\7A\2\2\u0262\u025d\3\2\2\2\u0263\u0266\3\2\2\2\u0264"+ - "\u0262\3\2\2\2\u0264\u0265\3\2\2\2\u0265#\3\2\2\2\u0266\u0264\3\2\2\2"+ - "\u0267\u0269\5&\24\2\u0268\u0267\3\2\2\2\u0269\u026c\3\2\2\2\u026a\u0268"+ - "\3\2\2\2\u026a\u026b\3\2\2\2\u026b\u026d\3\2\2\2\u026c\u026a\3\2\2\2\u026d"+ - "\u026f\7i\2\2\u026e\u0270\5(\25\2\u026f\u026e\3\2\2\2\u026f\u0270\3\2"+ - "\2\2\u0270%\3\2\2\2\u0271\u0272\5\u00e8u\2\u0272\'\3\2\2\2\u0273\u0274"+ - "\7\24\2\2\u0274\u027e\5\36\20\2\u0275\u0276\7\24\2\2\u0276\u027a\5\20"+ - "\t\2\u0277\u0279\5*\26\2\u0278\u0277\3\2\2\2\u0279\u027c\3\2\2\2\u027a"+ - "\u0278\3\2\2\2\u027a\u027b\3\2\2\2\u027b\u027e\3\2\2\2\u027c\u027a\3\2"+ - "\2\2\u027d\u0273\3\2\2\2\u027d\u0275\3\2\2\2\u027e)\3\2\2\2\u027f\u0280"+ - "\7X\2\2\u0280\u0281\5\30\r\2\u0281+\3\2\2\2\u0282\u0283\7G\2\2\u0283\u0284"+ - "\5.\30\2\u0284\u0285\7F\2\2\u0285-\3\2\2\2\u0286\u028b\5\60\31\2\u0287"+ - "\u0288\7C\2\2\u0288\u028a\5\60\31\2\u0289\u0287\3\2\2\2\u028a\u028d\3"+ - "\2\2\2\u028b\u0289\3\2\2\2\u028b\u028c\3\2\2\2\u028c/\3\2\2\2\u028d\u028b"+ - "\3\2\2\2\u028e\u0291\5\16\b\2\u028f\u0291\5\62\32\2\u0290\u028e\3\2\2"+ - "\2\u0290\u028f\3\2\2\2\u0291\61\3\2\2\2\u0292\u0294\5\u00e8u\2\u0293\u0292"+ - "\3\2\2\2\u0294\u0297\3\2\2\2\u0295\u0293\3\2\2\2\u0295\u0296\3\2\2\2\u0296"+ - "\u0298\3\2\2\2\u0297\u0295\3\2\2\2\u0298\u029a\7J\2\2\u0299\u029b\5\64"+ + "\3\u00e3\3\u00e3\3\u00e3\7\u00e3\u0ac6\n\u00e3\f\u00e3\16\u00e3\u0ac9"+ + "\13\u00e3\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4"+ + "\3\u00e4\7\u00e4\u0ad4\n\u00e4\f\u00e4\16\u00e4\u0ad7\13\u00e4\3\u00e5"+ + "\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5"+ + "\3\u00e5\3\u00e5\7\u00e5\u0ae5\n\u00e5\f\u00e5\16\u00e5\u0ae8\13\u00e5"+ + "\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\5\u00e6\u0af1"+ + "\n\u00e6\3\u00e7\3\u00e7\3\u00e7\3\u00e8\3\u00e8\3\u00e8\3\u00e9\3\u00e9"+ + "\3\u00e9\3\u00e9\3\u00e9\3\u00e9\5\u00e9\u0aff\n\u00e9\3\u00ea\3\u00ea"+ + "\5\u00ea\u0b03\n\u00ea\3\u00ea\3\u00ea\7\u00ea\u0b07\n\u00ea\f\u00ea\16"+ + "\u00ea\u0b0a\13\u00ea\3\u00eb\3\u00eb\3\u00eb\3\u00ec\3\u00ec\3\u00ed"+ + "\3\u00ed\3\u00ed\3\u00ee\3\u00ee\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef"+ + "\3\u00ef\3\u00ef\3\u00ef\7\u00ef\u0b1e\n\u00ef\f\u00ef\16\u00ef\u0b21"+ + "\13\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\7\u00ef\u0b29"+ + "\n\u00ef\f\u00ef\16\u00ef\u0b2c\13\u00ef\3\u00ef\3\u00ef\3\u00ef\5\u00ef"+ + "\u0b31\n\u00ef\3\u00ef\2\17\66:@\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2"+ + "\u01c4\u01c6\u01c8\u00f0\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&("+ + "*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084"+ + "\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c"+ + "\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4"+ + "\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc"+ + "\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4"+ + "\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc"+ + "\u00fe\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114"+ + "\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c"+ + "\u012e\u0130\u0132\u0134\u0136\u0138\u013a\u013c\u013e\u0140\u0142\u0144"+ + "\u0146\u0148\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c"+ + "\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174"+ + "\u0176\u0178\u017a\u017c\u017e\u0180\u0182\u0184\u0186\u0188\u018a\u018c"+ + "\u018e\u0190\u0192\u0194\u0196\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4"+ + "\u01a6\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc"+ + "\u01be\u01c0\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4"+ + "\u01d6\u01d8\u01da\u01dc\2\6\3\2\65:\7\2\7\7\n\n\35\35\37\37\'\'\4\2\20"+ + "\20\26\26\4\2DD]g\2\u0c25\2\u01de\3\2\2\2\4\u01e2\3\2\2\2\6\u01f2\3\2"+ + "\2\2\b\u01f6\3\2\2\2\n\u01f8\3\2\2\2\f\u01fa\3\2\2\2\16\u01ff\3\2\2\2"+ + "\20\u0203\3\2\2\2\22\u0222\3\2\2\2\24\u0224\3\2\2\2\26\u0232\3\2\2\2\30"+ + "\u0239\3\2\2\2\32\u023b\3\2\2\2\34\u023d\3\2\2\2\36\u0242\3\2\2\2 \u0250"+ + "\3\2\2\2\"\u0255\3\2\2\2$\u026a\3\2\2\2&\u0271\3\2\2\2(\u027d\3\2\2\2"+ + "*\u027f\3\2\2\2,\u0282\3\2\2\2.\u0286\3\2\2\2\60\u0290\3\2\2\2\62\u0295"+ + "\3\2\2\2\64\u02a0\3\2\2\2\66\u02a2\3\2\2\28\u02b2\3\2\2\2:\u02b4\3\2\2"+ + "\2<\u02c4\3\2\2\2>\u02c6\3\2\2\2@\u02c8\3\2\2\2B\u02d4\3\2\2\2D\u02e7"+ + "\3\2\2\2F\u02f5\3\2\2\2H\u02fb\3\2\2\2J\u02fd\3\2\2\2L\u0301\3\2\2\2N"+ + "\u0307\3\2\2\2P\u030e\3\2\2\2R\u0318\3\2\2\2T\u031c\3\2\2\2V\u0321\3\2"+ + "\2\2X\u0339\3\2\2\2Z\u033b\3\2\2\2\\\u033f\3\2\2\2^\u0347\3\2\2\2`\u034a"+ + "\3\2\2\2b\u034d\3\2\2\2d\u0355\3\2\2\2f\u0361\3\2\2\2h\u0368\3\2\2\2j"+ + "\u036d\3\2\2\2l\u037e\3\2\2\2n\u0380\3\2\2\2p\u0388\3\2\2\2r\u038d\3\2"+ + "\2\2t\u0393\3\2\2\2v\u0397\3\2\2\2x\u039b\3\2\2\2z\u03a0\3\2\2\2|\u03a4"+ + "\3\2\2\2~\u03bd\3\2\2\2\u0080\u03bf\3\2\2\2\u0082\u03ca\3\2\2\2\u0084"+ + "\u03ce\3\2\2\2\u0086\u03d0\3\2\2\2\u0088\u03d2\3\2\2\2\u008a\u03d4\3\2"+ + "\2\2\u008c\u03df\3\2\2\2\u008e\u03e4\3\2\2\2\u0090\u03f4\3\2\2\2\u0092"+ + "\u040b\3\2\2\2\u0094\u040f\3\2\2\2\u0096\u0411\3\2\2\2\u0098\u041f\3\2"+ + "\2\2\u009a\u0431\3\2\2\2\u009c\u0436\3\2\2\2\u009e\u0440\3\2\2\2\u00a0"+ + "\u0453\3\2\2\2\u00a2\u0458\3\2\2\2\u00a4\u0462\3\2\2\2\u00a6\u0465\3\2"+ + "\2\2\u00a8\u046f\3\2\2\2\u00aa\u0473\3\2\2\2\u00ac\u0475\3\2\2\2\u00ae"+ + "\u0477\3\2\2\2\u00b0\u047d\3\2\2\2\u00b2\u048a\3\2\2\2\u00b4\u048d\3\2"+ + "\2\2\u00b6\u0496\3\2\2\2\u00b8\u0498\3\2\2\2\u00ba\u04cf\3\2\2\2\u00bc"+ + "\u04d4\3\2\2\2\u00be\u04de\3\2\2\2\u00c0\u04ea\3\2\2\2\u00c2\u04f5\3\2"+ + "\2\2\u00c4\u0503\3\2\2\2\u00c6\u0505\3\2\2\2\u00c8\u050e\3\2\2\2\u00ca"+ + "\u0513\3\2\2\2\u00cc\u0527\3\2\2\2\u00ce\u0529\3\2\2\2\u00d0\u052c\3\2"+ + "\2\2\u00d2\u053a\3\2\2\2\u00d4\u053f\3\2\2\2\u00d6\u054a\3\2\2\2\u00d8"+ + "\u054f\3\2\2\2\u00da\u055b\3\2\2\2\u00dc\u0560\3\2\2\2\u00de\u0568\3\2"+ + "\2\2\u00e0\u0576\3\2\2\2\u00e2\u057b\3\2\2\2\u00e4\u058d\3\2\2\2\u00e6"+ + "\u058f\3\2\2\2\u00e8\u0595\3\2\2\2\u00ea\u0597\3\2\2\2\u00ec\u059f\3\2"+ + "\2\2\u00ee\u05a7\3\2\2\2\u00f0\u05ae\3\2\2\2\u00f2\u05b0\3\2\2\2\u00f4"+ + "\u05b9\3\2\2\2\u00f6\u05c1\3\2\2\2\u00f8\u05c4\3\2\2\2\u00fa\u05ca\3\2"+ + "\2\2\u00fc\u05d3\3\2\2\2\u00fe\u05db\3\2\2\2\u0100\u05e1\3\2\2\2\u0102"+ + "\u05eb\3\2\2\2\u0104\u05ed\3\2\2\2\u0106\u05f0\3\2\2\2\u0108\u05f5\3\2"+ + "\2\2\u010a\u0601\3\2\2\2\u010c\u0608\3\2\2\2\u010e\u0616\3\2\2\2\u0110"+ + "\u0618\3\2\2\2\u0112\u061a\3\2\2\2\u0114\u061e\3\2\2\2\u0116\u0622\3\2"+ + "\2\2\u0118\u062c\3\2\2\2\u011a\u062e\3\2\2\2\u011c\u0634\3\2\2\2\u011e"+ + "\u063c\3\2\2\2\u0120\u064e\3\2\2\2\u0122\u0650\3\2\2\2\u0124\u0656\3\2"+ + "\2\2\u0126\u0665\3\2\2\2\u0128\u0668\3\2\2\2\u012a\u0679\3\2\2\2\u012c"+ + "\u067b\3\2\2\2\u012e\u067d\3\2\2\2\u0130\u0683\3\2\2\2\u0132\u0689\3\2"+ + "\2\2\u0134\u0693\3\2\2\2\u0136\u0697\3\2\2\2\u0138\u0699\3\2\2\2\u013a"+ + "\u06a9\3\2\2\2\u013c\u06bb\3\2\2\2\u013e\u06bd\3\2\2\2\u0140\u06bf\3\2"+ + "\2\2\u0142\u06c7\3\2\2\2\u0144\u06d6\3\2\2\2\u0146\u06e5\3\2\2\2\u0148"+ + "\u06eb\3\2\2\2\u014a\u06f1\3\2\2\2\u014c\u06f7\3\2\2\2\u014e\u06fb\3\2"+ + "\2\2\u0150\u070d\3\2\2\2\u0152\u070f\3\2\2\2\u0154\u0716\3\2\2\2\u0156"+ + "\u071f\3\2\2\2\u0158\u0725\3\2\2\2\u015a\u072d\3\2\2\2\u015c\u0730\3\2"+ + "\2\2\u015e\u0739\3\2\2\2\u0160\u0740\3\2\2\2\u0162\u074b\3\2\2\2\u0164"+ + "\u0755\3\2\2\2\u0166\u077a\3\2\2\2\u0168\u077c\3\2\2\2\u016a\u079a\3\2"+ + "\2\2\u016c\u07a1\3\2\2\2\u016e\u07a3\3\2\2\2\u0170\u07a9\3\2\2\2\u0172"+ + "\u07d3\3\2\2\2\u0174\u07d5\3\2\2\2\u0176\u07fe\3\2\2\2\u0178\u0853\3\2"+ + "\2\2\u017a\u0855\3\2\2\2\u017c\u08a7\3\2\2\2\u017e\u08ac\3\2\2\2\u0180"+ + "\u08bb\3\2\2\2\u0182\u08bd\3\2\2\2\u0184\u08c9\3\2\2\2\u0186\u08d5\3\2"+ + "\2\2\u0188\u08e1\3\2\2\2\u018a\u08fa\3\2\2\2\u018c\u094a\3\2\2\2\u018e"+ + "\u094c\3\2\2\2\u0190\u098f\3\2\2\2\u0192\u0991\3\2\2\2\u0194\u09c8\3\2"+ + "\2\2\u0196\u09ca\3\2\2\2\u0198\u09f8\3\2\2\2\u019a\u0a10\3\2\2\2\u019c"+ + "\u0a12\3\2\2\2\u019e\u0a1c\3\2\2\2\u01a0\u0a23\3\2\2\2\u01a2\u0a27\3\2"+ + "\2\2\u01a4\u0a29\3\2\2\2\u01a6\u0a33\3\2\2\2\u01a8\u0a35\3\2\2\2\u01aa"+ + "\u0a3f\3\2\2\2\u01ac\u0a43\3\2\2\2\u01ae\u0a45\3\2\2\2\u01b0\u0a4c\3\2"+ + "\2\2\u01b2\u0a4e\3\2\2\2\u01b4\u0a57\3\2\2\2\u01b6\u0a59\3\2\2\2\u01b8"+ + "\u0a64\3\2\2\2\u01ba\u0a6f\3\2\2\2\u01bc\u0a7a\3\2\2\2\u01be\u0a85\3\2"+ + "\2\2\u01c0\u0a90\3\2\2\2\u01c2\u0a9e\3\2\2\2\u01c4\u0ab5\3\2\2\2\u01c6"+ + "\u0aca\3\2\2\2\u01c8\u0ad8\3\2\2\2\u01ca\u0af0\3\2\2\2\u01cc\u0af2\3\2"+ + "\2\2\u01ce\u0af5\3\2\2\2\u01d0\u0afe\3\2\2\2\u01d2\u0b02\3\2\2\2\u01d4"+ + "\u0b0b\3\2\2\2\u01d6\u0b0e\3\2\2\2\u01d8\u0b10\3\2\2\2\u01da\u0b13\3\2"+ + "\2\2\u01dc\u0b30\3\2\2\2\u01de\u01df\t\2\2\2\u01df\3\3\2\2\2\u01e0\u01e3"+ + "\5\6\4\2\u01e1\u01e3\5\16\b\2\u01e2\u01e0\3\2\2\2\u01e2\u01e1\3\2\2\2"+ + "\u01e3\5\3\2\2\2\u01e4\u01e6\5\u00e8u\2\u01e5\u01e4\3\2\2\2\u01e6\u01e9"+ + "\3\2\2\2\u01e7\u01e5\3\2\2\2\u01e7\u01e8\3\2\2\2\u01e8\u01ea\3\2\2\2\u01e9"+ + "\u01e7\3\2\2\2\u01ea\u01f3\5\b\5\2\u01eb\u01ed\5\u00e8u\2\u01ec\u01eb"+ + "\3\2\2\2\u01ed\u01f0\3\2\2\2\u01ee\u01ec\3\2\2\2\u01ee\u01ef\3\2\2\2\u01ef"+ + "\u01f1\3\2\2\2\u01f0\u01ee\3\2\2\2\u01f1\u01f3\7\5\2\2\u01f2\u01e7\3\2"+ + "\2\2\u01f2\u01ee\3\2\2\2\u01f3\7\3\2\2\2\u01f4\u01f7\5\n\6\2\u01f5\u01f7"+ + "\5\f\7\2\u01f6\u01f4\3\2\2\2\u01f6\u01f5\3\2\2\2\u01f7\t\3\2\2\2\u01f8"+ + "\u01f9\t\3\2\2\u01f9\13\3\2\2\2\u01fa\u01fb\t\4\2\2\u01fb\r\3\2\2\2\u01fc"+ + "\u0200\5\20\t\2\u01fd\u0200\5\36\20\2\u01fe\u0200\5 \21\2\u01ff\u01fc"+ + "\3\2\2\2\u01ff\u01fd\3\2\2\2\u01ff\u01fe\3\2\2\2\u0200\17\3\2\2\2\u0201"+ + "\u0204\5\26\f\2\u0202\u0204\5\34\17\2\u0203\u0201\3\2\2\2\u0203\u0202"+ + "\3\2\2\2\u0204\u0209\3\2\2\2\u0205\u0208\5\24\13\2\u0206\u0208\5\32\16"+ + "\2\u0207\u0205\3\2\2\2\u0207\u0206\3\2\2\2\u0208\u020b\3\2\2\2\u0209\u0207"+ + "\3\2\2\2\u0209\u020a\3\2\2\2\u020a\21\3\2\2\2\u020b\u0209\3\2\2\2\u020c"+ + "\u020e\5\u00e8u\2\u020d\u020c\3\2\2\2\u020e\u0211\3\2\2\2\u020f\u020d"+ + "\3\2\2\2\u020f\u0210\3\2\2\2\u0210\u0212\3\2\2\2\u0211\u020f\3\2\2\2\u0212"+ + "\u0214\7h\2\2\u0213\u0215\5,\27\2\u0214\u0213\3\2\2\2\u0214\u0215\3\2"+ + "\2\2\u0215\u0223\3\2\2\2\u0216\u0217\5\20\t\2\u0217\u021b\7C\2\2\u0218"+ + "\u021a\5\u00e8u\2\u0219\u0218\3\2\2\2\u021a\u021d\3\2\2\2\u021b\u0219"+ + "\3\2\2\2\u021b\u021c\3\2\2\2\u021c\u021e\3\2\2\2\u021d\u021b\3\2\2\2\u021e"+ + "\u0220\7h\2\2\u021f\u0221\5,\27\2\u0220\u021f\3\2\2\2\u0220\u0221\3\2"+ + "\2\2\u0221\u0223\3\2\2\2\u0222\u020f\3\2\2\2\u0222\u0216\3\2\2\2\u0223"+ + "\23\3\2\2\2\u0224\u0228\7C\2\2\u0225\u0227\5\u00e8u\2\u0226\u0225\3\2"+ + "\2\2\u0227\u022a\3\2\2\2\u0228\u0226\3\2\2\2\u0228\u0229\3\2\2\2\u0229"+ + "\u022b\3\2\2\2\u022a\u0228\3\2\2\2\u022b\u022d\7h\2\2\u022c\u022e\5,\27"+ + "\2\u022d\u022c\3\2\2\2\u022d\u022e\3\2\2\2\u022e\25\3\2\2\2\u022f\u0231"+ + "\5\u00e8u\2\u0230\u022f\3\2\2\2\u0231\u0234\3\2\2\2\u0232\u0230\3\2\2"+ + "\2\u0232\u0233\3\2\2\2\u0233\u0235\3\2\2\2\u0234\u0232\3\2\2\2\u0235\u0237"+ + "\7h\2\2\u0236\u0238\5,\27\2\u0237\u0236\3\2\2\2\u0237\u0238\3\2\2\2\u0238"+ + "\27\3\2\2\2\u0239\u023a\5\22\n\2\u023a\31\3\2\2\2\u023b\u023c\5\24\13"+ + "\2\u023c\33\3\2\2\2\u023d\u023e\5\26\f\2\u023e\35\3\2\2\2\u023f\u0241"+ + "\5\u00e8u\2\u0240\u023f\3\2\2\2\u0241\u0244\3\2\2\2\u0242\u0240\3\2\2"+ + "\2\u0242\u0243\3\2\2\2\u0243\u0245\3\2\2\2\u0244\u0242\3\2\2\2\u0245\u0246"+ + "\7h\2\2\u0246\37\3\2\2\2\u0247\u0248\5\6\4\2\u0248\u0249\5\"\22\2\u0249"+ + "\u0251\3\2\2\2\u024a\u024b\5\20\t\2\u024b\u024c\5\"\22\2\u024c\u0251\3"+ + "\2\2\2\u024d\u024e\5\36\20\2\u024e\u024f\5\"\22\2\u024f\u0251\3\2\2\2"+ + "\u0250\u0247\3\2\2\2\u0250\u024a\3\2\2\2\u0250\u024d\3\2\2\2\u0251!\3"+ + "\2\2\2\u0252\u0254\5\u00e8u\2\u0253\u0252\3\2\2\2\u0254\u0257\3\2\2\2"+ + "\u0255\u0253\3\2\2\2\u0255\u0256\3\2\2\2\u0256\u0258\3\2\2\2\u0257\u0255"+ + "\3\2\2\2\u0258\u0259\7?\2\2\u0259\u0264\7@\2\2\u025a\u025c\5\u00e8u\2"+ + "\u025b\u025a\3\2\2\2\u025c\u025f\3\2\2\2\u025d\u025b\3\2\2\2\u025d\u025e"+ + "\3\2\2\2\u025e\u0260\3\2\2\2\u025f\u025d\3\2\2\2\u0260\u0261\7?\2\2\u0261"+ + "\u0263\7@\2\2\u0262\u025d\3\2\2\2\u0263\u0266\3\2\2\2\u0264\u0262\3\2"+ + "\2\2\u0264\u0265\3\2\2\2\u0265#\3\2\2\2\u0266\u0264\3\2\2\2\u0267\u0269"+ + "\5&\24\2\u0268\u0267\3\2\2\2\u0269\u026c\3\2\2\2\u026a\u0268\3\2\2\2\u026a"+ + "\u026b\3\2\2\2\u026b\u026d\3\2\2\2\u026c\u026a\3\2\2\2\u026d\u026f\7h"+ + "\2\2\u026e\u0270\5(\25\2\u026f\u026e\3\2\2\2\u026f\u0270\3\2\2\2\u0270"+ + "%\3\2\2\2\u0271\u0272\5\u00e8u\2\u0272\'\3\2\2\2\u0273\u0274\7\23\2\2"+ + "\u0274\u027e\5\36\20\2\u0275\u0276\7\23\2\2\u0276\u027a\5\20\t\2\u0277"+ + "\u0279\5*\26\2\u0278\u0277\3\2\2\2\u0279\u027c\3\2\2\2\u027a\u0278\3\2"+ + "\2\2\u027a\u027b\3\2\2\2\u027b\u027e\3\2\2\2\u027c\u027a\3\2\2\2\u027d"+ + "\u0273\3\2\2\2\u027d\u0275\3\2\2\2\u027e)\3\2\2\2\u027f\u0280\7W\2\2\u0280"+ + "\u0281\5\30\r\2\u0281+\3\2\2\2\u0282\u0283\7F\2\2\u0283\u0284\5.\30\2"+ + "\u0284\u0285\7E\2\2\u0285-\3\2\2\2\u0286\u028b\5\60\31\2\u0287\u0288\7"+ + "B\2\2\u0288\u028a\5\60\31\2\u0289\u0287\3\2\2\2\u028a\u028d\3\2\2\2\u028b"+ + "\u0289\3\2\2\2\u028b\u028c\3\2\2\2\u028c/\3\2\2\2\u028d\u028b\3\2\2\2"+ + "\u028e\u0291\5\16\b\2\u028f\u0291\5\62\32\2\u0290\u028e\3\2\2\2\u0290"+ + "\u028f\3\2\2\2\u0291\61\3\2\2\2\u0292\u0294\5\u00e8u\2\u0293\u0292\3\2"+ + "\2\2\u0294\u0297\3\2\2\2\u0295\u0293\3\2\2\2\u0295\u0296\3\2\2\2\u0296"+ + "\u0298\3\2\2\2\u0297\u0295\3\2\2\2\u0298\u029a\7I\2\2\u0299\u029b\5\64"+ "\33\2\u029a\u0299\3\2\2\2\u029a\u029b\3\2\2\2\u029b\63\3\2\2\2\u029c\u029d"+ - "\7\24\2\2\u029d\u02a1\5\16\b\2\u029e\u029f\7+\2\2\u029f\u02a1\5\16\b\2"+ + "\7\23\2\2\u029d\u02a1\5\16\b\2\u029e\u029f\7*\2\2\u029f\u02a1\5\16\b\2"+ "\u02a0\u029c\3\2\2\2\u02a0\u029e\3\2\2\2\u02a1\65\3\2\2\2\u02a2\u02a3"+ - "\b\34\1\2\u02a3\u02a4\7i\2\2\u02a4\u02aa\3\2\2\2\u02a5\u02a6\f\3\2\2\u02a6"+ - "\u02a7\7D\2\2\u02a7\u02a9\7i\2\2\u02a8\u02a5\3\2\2\2\u02a9\u02ac\3\2\2"+ + "\b\34\1\2\u02a3\u02a4\7h\2\2\u02a4\u02aa\3\2\2\2\u02a5\u02a6\f\3\2\2\u02a6"+ + "\u02a7\7C\2\2\u02a7\u02a9\7h\2\2\u02a8\u02a5\3\2\2\2\u02a9\u02ac\3\2\2"+ "\2\u02aa\u02a8\3\2\2\2\u02aa\u02ab\3\2\2\2\u02ab\67\3\2\2\2\u02ac\u02aa"+ - "\3\2\2\2\u02ad\u02b3\7i\2\2\u02ae\u02af\5:\36\2\u02af\u02b0\7D\2\2\u02b0"+ - "\u02b1\7i\2\2\u02b1\u02b3\3\2\2\2\u02b2\u02ad\3\2\2\2\u02b2\u02ae\3\2"+ - "\2\2\u02b39\3\2\2\2\u02b4\u02b5\b\36\1\2\u02b5\u02b6\7i\2\2\u02b6\u02bc"+ - "\3\2\2\2\u02b7\u02b8\f\3\2\2\u02b8\u02b9\7D\2\2\u02b9\u02bb\7i\2\2\u02ba"+ + "\3\2\2\2\u02ad\u02b3\7h\2\2\u02ae\u02af\5:\36\2\u02af\u02b0\7C\2\2\u02b0"+ + "\u02b1\7h\2\2\u02b1\u02b3\3\2\2\2\u02b2\u02ad\3\2\2\2\u02b2\u02ae\3\2"+ + "\2\2\u02b39\3\2\2\2\u02b4\u02b5\b\36\1\2\u02b5\u02b6\7h\2\2\u02b6\u02bc"+ + "\3\2\2\2\u02b7\u02b8\f\3\2\2\u02b8\u02b9\7C\2\2\u02b9\u02bb\7h\2\2\u02ba"+ "\u02b7\3\2\2\2\u02bb\u02be\3\2\2\2\u02bc\u02ba\3\2\2\2\u02bc\u02bd\3\2"+ - "\2\2\u02bd;\3\2\2\2\u02be\u02bc\3\2\2\2\u02bf\u02c5\7i\2\2\u02c0\u02c1"+ - "\5@!\2\u02c1\u02c2\7D\2\2\u02c2\u02c3\7i\2\2\u02c3\u02c5\3\2\2\2\u02c4"+ - "\u02bf\3\2\2\2\u02c4\u02c0\3\2\2\2\u02c5=\3\2\2\2\u02c6\u02c7\7i\2\2\u02c7"+ - "?\3\2\2\2\u02c8\u02c9\b!\1\2\u02c9\u02ca\7i\2\2\u02ca\u02d0\3\2\2\2\u02cb"+ - "\u02cc\f\3\2\2\u02cc\u02cd\7D\2\2\u02cd\u02cf\7i\2\2\u02ce\u02cb\3\2\2"+ + "\2\2\u02bd;\3\2\2\2\u02be\u02bc\3\2\2\2\u02bf\u02c5\7h\2\2\u02c0\u02c1"+ + "\5@!\2\u02c1\u02c2\7C\2\2\u02c2\u02c3\7h\2\2\u02c3\u02c5\3\2\2\2\u02c4"+ + "\u02bf\3\2\2\2\u02c4\u02c0\3\2\2\2\u02c5=\3\2\2\2\u02c6\u02c7\7h\2\2\u02c7"+ + "?\3\2\2\2\u02c8\u02c9\b!\1\2\u02c9\u02ca\7h\2\2\u02ca\u02d0\3\2\2\2\u02cb"+ + "\u02cc\f\3\2\2\u02cc\u02cd\7C\2\2\u02cd\u02cf\7h\2\2\u02ce\u02cb\3\2\2"+ "\2\u02cf\u02d2\3\2\2\2\u02d0\u02ce\3\2\2\2\u02d0\u02d1\3\2\2\2\u02d1A"+ "\3\2\2\2\u02d2\u02d0\3\2\2\2\u02d3\u02d5\5D#\2\u02d4\u02d3\3\2\2\2\u02d4"+ "\u02d5\3\2\2\2\u02d5\u02d9\3\2\2\2\u02d6\u02d8\5H%\2\u02d7\u02d6\3\2\2"+ @@ -15846,97 +17963,97 @@ public class Java8Parser extends Parser { "\u02e1\3\2\2\2\u02df\u02dd\3\2\2\2\u02df\u02e0\3\2\2\2\u02e0\u02e2\3\2"+ "\2\2\u02e1\u02df\3\2\2\2\u02e2\u02e3\7\2\2\3\u02e3C\3\2\2\2\u02e4\u02e6"+ "\5F$\2\u02e5\u02e4\3\2\2\2\u02e6\u02e9\3\2\2\2\u02e7\u02e5\3\2\2\2\u02e7"+ - "\u02e8\3\2\2\2\u02e8\u02ea\3\2\2\2\u02e9\u02e7\3\2\2\2\u02ea\u02eb\7#"+ - "\2\2\u02eb\u02f0\7i\2\2\u02ec\u02ed\7D\2\2\u02ed\u02ef\7i\2\2\u02ee\u02ec"+ + "\u02e8\3\2\2\2\u02e8\u02ea\3\2\2\2\u02e9\u02e7\3\2\2\2\u02ea\u02eb\7\""+ + "\2\2\u02eb\u02f0\7h\2\2\u02ec\u02ed\7C\2\2\u02ed\u02ef\7h\2\2\u02ee\u02ec"+ "\3\2\2\2\u02ef\u02f2\3\2\2\2\u02f0\u02ee\3\2\2\2\u02f0\u02f1\3\2\2\2\u02f1"+ - "\u02f3\3\2\2\2\u02f2\u02f0\3\2\2\2\u02f3\u02f4\7B\2\2\u02f4E\3\2\2\2\u02f5"+ + "\u02f3\3\2\2\2\u02f2\u02f0\3\2\2\2\u02f3\u02f4\7A\2\2\u02f4E\3\2\2\2\u02f5"+ "\u02f6\5\u00e8u\2\u02f6G\3\2\2\2\u02f7\u02fc\5J&\2\u02f8\u02fc\5L\'\2"+ "\u02f9\u02fc\5N(\2\u02fa\u02fc\5P)\2\u02fb\u02f7\3\2\2\2\u02fb\u02f8\3"+ "\2\2\2\u02fb\u02f9\3\2\2\2\u02fb\u02fa\3\2\2\2\u02fcI\3\2\2\2\u02fd\u02fe"+ - "\7\34\2\2\u02fe\u02ff\58\35\2\u02ff\u0300\7B\2\2\u0300K\3\2\2\2\u0301"+ - "\u0302\7\34\2\2\u0302\u0303\5:\36\2\u0303\u0304\7D\2\2\u0304\u0305\7V"+ - "\2\2\u0305\u0306\7B\2\2\u0306M\3\2\2\2\u0307\u0308\7\34\2\2\u0308\u0309"+ - "\7)\2\2\u0309\u030a\58\35\2\u030a\u030b\7D\2\2\u030b\u030c\7i\2\2\u030c"+ - "\u030d\7B\2\2\u030dO\3\2\2\2\u030e\u030f\7\34\2\2\u030f\u0310\7)\2\2\u0310"+ - "\u0311\58\35\2\u0311\u0312\7D\2\2\u0312\u0313\7V\2\2\u0313\u0314\7B\2"+ + "\7\33\2\2\u02fe\u02ff\58\35\2\u02ff\u0300\7A\2\2\u0300K\3\2\2\2\u0301"+ + "\u0302\7\33\2\2\u0302\u0303\5:\36\2\u0303\u0304\7C\2\2\u0304\u0305\7U"+ + "\2\2\u0305\u0306\7A\2\2\u0306M\3\2\2\2\u0307\u0308\7\33\2\2\u0308\u0309"+ + "\7(\2\2\u0309\u030a\58\35\2\u030a\u030b\7C\2\2\u030b\u030c\7h\2\2\u030c"+ + "\u030d\7A\2\2\u030dO\3\2\2\2\u030e\u030f\7\33\2\2\u030f\u0310\7(\2\2\u0310"+ + "\u0311\58\35\2\u0311\u0312\7C\2\2\u0312\u0313\7U\2\2\u0313\u0314\7A\2"+ "\2\u0314Q\3\2\2\2\u0315\u0319\5T+\2\u0316\u0319\5\u00c8e\2\u0317\u0319"+ - "\7B\2\2\u0318\u0315\3\2\2\2\u0318\u0316\3\2\2\2\u0318\u0317\3\2\2\2\u0319"+ + "\7A\2\2\u0318\u0315\3\2\2\2\u0318\u0316\3\2\2\2\u0318\u0317\3\2\2\2\u0319"+ "S\3\2\2\2\u031a\u031d\5V,\2\u031b\u031d\5\u00bc_\2\u031c\u031a\3\2\2\2"+ "\u031c\u031b\3\2\2\2\u031dU\3\2\2\2\u031e\u0320\5X-\2\u031f\u031e\3\2"+ "\2\2\u0320\u0323\3\2\2\2\u0321\u031f\3\2\2\2\u0321\u0322\3\2\2\2\u0322"+ - "\u0324\3\2\2\2\u0323\u0321\3\2\2\2\u0324\u0325\7\f\2\2\u0325\u0327\7i"+ - "\2\2\u0326\u0328\5Z.\2\u0327\u0326\3\2\2\2\u0327\u0328\3\2\2\2\u0328\u032a"+ - "\3\2\2\2\u0329\u032b\5^\60\2\u032a\u0329\3\2\2\2\u032a\u032b\3\2\2\2\u032b"+ - "\u032d\3\2\2\2\u032c\u032e\5`\61\2\u032d\u032c\3\2\2\2\u032d\u032e\3\2"+ - "\2\2\u032e\u032f\3\2\2\2\u032f\u0330\5d\63\2\u0330W\3\2\2\2\u0331\u033a"+ - "\5\u00e8u\2\u0332\u033a\7&\2\2\u0333\u033a\7%\2\2\u0334\u033a\7$\2\2\u0335"+ - "\u033a\7\4\2\2\u0336\u033a\7)\2\2\u0337\u033a\7\25\2\2\u0338\u033a\7*"+ - "\2\2\u0339\u0331\3\2\2\2\u0339\u0332\3\2\2\2\u0339\u0333\3\2\2\2\u0339"+ - "\u0334\3\2\2\2\u0339\u0335\3\2\2\2\u0339\u0336\3\2\2\2\u0339\u0337\3\2"+ - "\2\2\u0339\u0338\3\2\2\2\u033aY\3\2\2\2\u033b\u033c\7G\2\2\u033c\u033d"+ - "\5\\/\2\u033d\u033e\7F\2\2\u033e[\3\2\2\2\u033f\u0344\5$\23\2\u0340\u0341"+ - "\7C\2\2\u0341\u0343\5$\23\2\u0342\u0340\3\2\2\2\u0343\u0346\3\2\2\2\u0344"+ - "\u0342\3\2\2\2\u0344\u0345\3\2\2\2\u0345]\3\2\2\2\u0346\u0344\3\2\2\2"+ - "\u0347\u0348\7\24\2\2\u0348\u0349\5\22\n\2\u0349_\3\2\2\2\u034a\u034b"+ - "\7\33\2\2\u034b\u034c\5b\62\2\u034ca\3\2\2\2\u034d\u0352\5\30\r\2\u034e"+ - "\u034f\7C\2\2\u034f\u0351\5\30\r\2\u0350\u034e\3\2\2\2\u0351\u0354\3\2"+ - "\2\2\u0352\u0350\3\2\2\2\u0352\u0353\3\2\2\2\u0353c\3\2\2\2\u0354\u0352"+ - "\3\2\2\2\u0355\u0359\7>\2\2\u0356\u0358\5f\64\2\u0357\u0356\3\2\2\2\u0358"+ - "\u035b\3\2\2\2\u0359\u0357\3\2\2\2\u0359\u035a\3\2\2\2\u035a\u035c\3\2"+ - "\2\2\u035b\u0359\3\2\2\2\u035c\u035d\7?\2\2\u035de\3\2\2\2\u035e\u0362"+ - "\5h\65\2\u035f\u0362\5\u00acW\2\u0360\u0362\5\u00aeX\2\u0361\u035e\3\2"+ - "\2\2\u0361\u035f\3\2\2\2\u0361\u0360\3\2\2\2\u0362g\3\2\2\2\u0363\u0369"+ - "\5j\66\2\u0364\u0369\5\u008eH\2\u0365\u0369\5T+\2\u0366\u0369\5\u00c8"+ - "e\2\u0367\u0369\7B\2\2\u0368\u0363\3\2\2\2\u0368\u0364\3\2\2\2\u0368\u0365"+ - "\3\2\2\2\u0368\u0366\3\2\2\2\u0368\u0367\3\2\2\2\u0369i\3\2\2\2\u036a"+ - "\u036c\5l\67\2\u036b\u036a\3\2\2\2\u036c\u036f\3\2\2\2\u036d\u036b\3\2"+ - "\2\2\u036d\u036e\3\2\2\2\u036e\u0371\3\2\2\2\u036f\u036d\3\2\2\2\u0370"+ + "\u0324\3\2\2\2\u0323\u0321\3\2\2\2\u0324\u0325\7\13\2\2\u0325\u0327\7"+ + "h\2\2\u0326\u0328\5Z.\2\u0327\u0326\3\2\2\2\u0327\u0328\3\2\2\2\u0328"+ + "\u032a\3\2\2\2\u0329\u032b\5^\60\2\u032a\u0329\3\2\2\2\u032a\u032b\3\2"+ + "\2\2\u032b\u032d\3\2\2\2\u032c\u032e\5`\61\2\u032d\u032c\3\2\2\2\u032d"+ + "\u032e\3\2\2\2\u032e\u032f\3\2\2\2\u032f\u0330\5d\63\2\u0330W\3\2\2\2"+ + "\u0331\u033a\5\u00e8u\2\u0332\u033a\7%\2\2\u0333\u033a\7$\2\2\u0334\u033a"+ + "\7#\2\2\u0335\u033a\7\3\2\2\u0336\u033a\7(\2\2\u0337\u033a\7\24\2\2\u0338"+ + "\u033a\7)\2\2\u0339\u0331\3\2\2\2\u0339\u0332\3\2\2\2\u0339\u0333\3\2"+ + "\2\2\u0339\u0334\3\2\2\2\u0339\u0335\3\2\2\2\u0339\u0336\3\2\2\2\u0339"+ + "\u0337\3\2\2\2\u0339\u0338\3\2\2\2\u033aY\3\2\2\2\u033b\u033c\7F\2\2\u033c"+ + "\u033d\5\\/\2\u033d\u033e\7E\2\2\u033e[\3\2\2\2\u033f\u0344\5$\23\2\u0340"+ + "\u0341\7B\2\2\u0341\u0343\5$\23\2\u0342\u0340\3\2\2\2\u0343\u0346\3\2"+ + "\2\2\u0344\u0342\3\2\2\2\u0344\u0345\3\2\2\2\u0345]\3\2\2\2\u0346\u0344"+ + "\3\2\2\2\u0347\u0348\7\23\2\2\u0348\u0349\5\22\n\2\u0349_\3\2\2\2\u034a"+ + "\u034b\7\32\2\2\u034b\u034c\5b\62\2\u034ca\3\2\2\2\u034d\u0352\5\30\r"+ + "\2\u034e\u034f\7B\2\2\u034f\u0351\5\30\r\2\u0350\u034e\3\2\2\2\u0351\u0354"+ + "\3\2\2\2\u0352\u0350\3\2\2\2\u0352\u0353\3\2\2\2\u0353c\3\2\2\2\u0354"+ + "\u0352\3\2\2\2\u0355\u0359\7=\2\2\u0356\u0358\5f\64\2\u0357\u0356\3\2"+ + "\2\2\u0358\u035b\3\2\2\2\u0359\u0357\3\2\2\2\u0359\u035a\3\2\2\2\u035a"+ + "\u035c\3\2\2\2\u035b\u0359\3\2\2\2\u035c\u035d\7>\2\2\u035de\3\2\2\2\u035e"+ + "\u0362\5h\65\2\u035f\u0362\5\u00acW\2\u0360\u0362\5\u00aeX\2\u0361\u035e"+ + "\3\2\2\2\u0361\u035f\3\2\2\2\u0361\u0360\3\2\2\2\u0362g\3\2\2\2\u0363"+ + "\u0369\5j\66\2\u0364\u0369\5\u008eH\2\u0365\u0369\5T+\2\u0366\u0369\5"+ + "\u00c8e\2\u0367\u0369\7A\2\2\u0368\u0363\3\2\2\2\u0368\u0364\3\2\2\2\u0368"+ + "\u0365\3\2\2\2\u0368\u0366\3\2\2\2\u0368\u0367\3\2\2\2\u0369i\3\2\2\2"+ + "\u036a\u036c\5l\67\2\u036b\u036a\3\2\2\2\u036c\u036f\3\2\2\2\u036d\u036b"+ + "\3\2\2\2\u036d\u036e\3\2\2\2\u036e\u0371\3\2\2\2\u036f\u036d\3\2\2\2\u0370"+ "\u0372\5v<\2\u0371\u0370\3\2\2\2\u0371\u0372\3\2\2\2\u0372\u0373\3\2\2"+ - "\2\u0373\u0374\5n8\2\u0374\u0375\7B\2\2\u0375k\3\2\2\2\u0376\u037f\5\u00e8"+ - "u\2\u0377\u037f\7&\2\2\u0378\u037f\7%\2\2\u0379\u037f\7$\2\2\u037a\u037f"+ - "\7)\2\2\u037b\u037f\7\25\2\2\u037c\u037f\7\61\2\2\u037d\u037f\7\64\2\2"+ + "\2\u0373\u0374\5n8\2\u0374\u0375\7A\2\2\u0375k\3\2\2\2\u0376\u037f\5\u00e8"+ + "u\2\u0377\u037f\7%\2\2\u0378\u037f\7$\2\2\u0379\u037f\7#\2\2\u037a\u037f"+ + "\7(\2\2\u037b\u037f\7\24\2\2\u037c\u037f\7\60\2\2\u037d\u037f\7\63\2\2"+ "\u037e\u0376\3\2\2\2\u037e\u0377\3\2\2\2\u037e\u0378\3\2\2\2\u037e\u0379"+ "\3\2\2\2\u037e\u037a\3\2\2\2\u037e\u037b\3\2\2\2\u037e\u037c\3\2\2\2\u037e"+ - "\u037d\3\2\2\2\u037fm\3\2\2\2\u0380\u0385\5p9\2\u0381\u0382\7C\2\2\u0382"+ + "\u037d\3\2\2\2\u037fm\3\2\2\2\u0380\u0385\5p9\2\u0381\u0382\7B\2\2\u0382"+ "\u0384\5p9\2\u0383\u0381\3\2\2\2\u0384\u0387\3\2\2\2\u0385\u0383\3\2\2"+ "\2\u0385\u0386\3\2\2\2\u0386o\3\2\2\2\u0387\u0385\3\2\2\2\u0388\u038b"+ - "\5r:\2\u0389\u038a\7E\2\2\u038a\u038c\5t;\2\u038b\u0389\3\2\2\2\u038b"+ - "\u038c\3\2\2\2\u038cq\3\2\2\2\u038d\u038f\7i\2\2\u038e\u0390\5\"\22\2"+ + "\5r:\2\u0389\u038a\7D\2\2\u038a\u038c\5t;\2\u038b\u0389\3\2\2\2\u038b"+ + "\u038c\3\2\2\2\u038cq\3\2\2\2\u038d\u038f\7h\2\2\u038e\u0390\5\"\22\2"+ "\u038f\u038e\3\2\2\2\u038f\u0390\3\2\2\2\u0390s\3\2\2\2\u0391\u0394\5"+ "\u01a2\u00d2\2\u0392\u0394\5\u00fa~\2\u0393\u0391\3\2\2\2\u0393\u0392"+ "\3\2\2\2\u0394u\3\2\2\2\u0395\u0398\5x=\2\u0396\u0398\5z>\2\u0397\u0395"+ "\3\2\2\2\u0397\u0396\3\2\2\2\u0398w\3\2\2\2\u0399\u039c\5\b\5\2\u039a"+ - "\u039c\7\6\2\2\u039b\u0399\3\2\2\2\u039b\u039a\3\2\2\2\u039cy\3\2\2\2"+ + "\u039c\7\5\2\2\u039b\u0399\3\2\2\2\u039b\u039a\3\2\2\2\u039cy\3\2\2\2"+ "\u039d\u03a1\5|?\2\u039e\u03a1\5\u008aF\2\u039f\u03a1\5\u008cG\2\u03a0"+ "\u039d\3\2\2\2\u03a0\u039e\3\2\2\2\u03a0\u039f\3\2\2\2\u03a1{\3\2\2\2"+ "\u03a2\u03a5\5\u0082B\2\u03a3\u03a5\5\u0088E\2\u03a4\u03a2\3\2\2\2\u03a4"+ "\u03a3\3\2\2\2\u03a5\u03aa\3\2\2\2\u03a6\u03a9\5\u0080A\2\u03a7\u03a9"+ "\5\u0086D\2\u03a8\u03a6\3\2\2\2\u03a8\u03a7\3\2\2\2\u03a9\u03ac\3\2\2"+ "\2\u03aa\u03a8\3\2\2\2\u03aa\u03ab\3\2\2\2\u03ab}\3\2\2\2\u03ac\u03aa"+ - "\3\2\2\2\u03ad\u03af\7i\2\2\u03ae\u03b0\5,\27\2\u03af\u03ae\3\2\2\2\u03af"+ - "\u03b0\3\2\2\2\u03b0\u03be\3\2\2\2\u03b1\u03b2\5|?\2\u03b2\u03b6\7D\2"+ + "\3\2\2\2\u03ad\u03af\7h\2\2\u03ae\u03b0\5,\27\2\u03af\u03ae\3\2\2\2\u03af"+ + "\u03b0\3\2\2\2\u03b0\u03be\3\2\2\2\u03b1\u03b2\5|?\2\u03b2\u03b6\7C\2"+ "\2\u03b3\u03b5\5\u00e8u\2\u03b4\u03b3\3\2\2\2\u03b5\u03b8\3\2\2\2\u03b6"+ "\u03b4\3\2\2\2\u03b6\u03b7\3\2\2\2\u03b7\u03b9\3\2\2\2\u03b8\u03b6\3\2"+ - "\2\2\u03b9\u03bb\7i\2\2\u03ba\u03bc\5,\27\2\u03bb\u03ba\3\2\2\2\u03bb"+ + "\2\2\u03b9\u03bb\7h\2\2\u03ba\u03bc\5,\27\2\u03bb\u03ba\3\2\2\2\u03bb"+ "\u03bc\3\2\2\2\u03bc\u03be\3\2\2\2\u03bd\u03ad\3\2\2\2\u03bd\u03b1\3\2"+ - "\2\2\u03be\177\3\2\2\2\u03bf\u03c3\7D\2\2\u03c0\u03c2\5\u00e8u\2\u03c1"+ + "\2\2\u03be\177\3\2\2\2\u03bf\u03c3\7C\2\2\u03c0\u03c2\5\u00e8u\2\u03c1"+ "\u03c0\3\2\2\2\u03c2\u03c5\3\2\2\2\u03c3\u03c1\3\2\2\2\u03c3\u03c4\3\2"+ - "\2\2\u03c4\u03c6\3\2\2\2\u03c5\u03c3\3\2\2\2\u03c6\u03c8\7i\2\2\u03c7"+ + "\2\2\u03c4\u03c6\3\2\2\2\u03c5\u03c3\3\2\2\2\u03c6\u03c8\7h\2\2\u03c7"+ "\u03c9\5,\27\2\u03c8\u03c7\3\2\2\2\u03c8\u03c9\3\2\2\2\u03c9\u0081\3\2"+ - "\2\2\u03ca\u03cc\7i\2\2\u03cb\u03cd\5,\27\2\u03cc\u03cb\3\2\2\2\u03cc"+ + "\2\2\u03ca\u03cc\7h\2\2\u03cb\u03cd\5,\27\2\u03cc\u03cb\3\2\2\2\u03cc"+ "\u03cd\3\2\2\2\u03cd\u0083\3\2\2\2\u03ce\u03cf\5~@\2\u03cf\u0085\3\2\2"+ "\2\u03d0\u03d1\5\u0080A\2\u03d1\u0087\3\2\2\2\u03d2\u03d3\5\u0082B\2\u03d3"+ - "\u0089\3\2\2\2\u03d4\u03d5\7i\2\2\u03d5\u008b\3\2\2\2\u03d6\u03d7\5x="+ + "\u0089\3\2\2\2\u03d4\u03d5\7h\2\2\u03d5\u008b\3\2\2\2\u03d6\u03d7\5x="+ "\2\u03d7\u03d8\5\"\22\2\u03d8\u03e0\3\2\2\2\u03d9\u03da\5|?\2\u03da\u03db"+ "\5\"\22\2\u03db\u03e0\3\2\2\2\u03dc\u03dd\5\u008aF\2\u03dd\u03de\5\"\22"+ "\2\u03de\u03e0\3\2\2\2\u03df\u03d6\3\2\2\2\u03df\u03d9\3\2\2\2\u03df\u03dc"+ "\3\2\2\2\u03e0\u008d\3\2\2\2\u03e1\u03e3\5\u0090I\2\u03e2\u03e1\3\2\2"+ "\2\u03e3\u03e6\3\2\2\2\u03e4\u03e2\3\2\2\2\u03e4\u03e5\3\2\2\2\u03e5\u03e7"+ "\3\2\2\2\u03e6\u03e4\3\2\2\2\u03e7\u03e8\5\u0092J\2\u03e8\u03e9\5\u00aa"+ - "V\2\u03e9\u008f\3\2\2\2\u03ea\u03f5\5\u00e8u\2\u03eb\u03f5\7&\2\2\u03ec"+ - "\u03f5\7%\2\2\u03ed\u03f5\7$\2\2\u03ee\u03f5\7\4\2\2\u03ef\u03f5\7)\2"+ - "\2\u03f0\u03f5\7\25\2\2\u03f1\u03f5\7-\2\2\u03f2\u03f5\7!\2\2\u03f3\u03f5"+ - "\7*\2\2\u03f4\u03ea\3\2\2\2\u03f4\u03eb\3\2\2\2\u03f4\u03ec\3\2\2\2\u03f4"+ + "V\2\u03e9\u008f\3\2\2\2\u03ea\u03f5\5\u00e8u\2\u03eb\u03f5\7%\2\2\u03ec"+ + "\u03f5\7$\2\2\u03ed\u03f5\7#\2\2\u03ee\u03f5\7\3\2\2\u03ef\u03f5\7(\2"+ + "\2\u03f0\u03f5\7\24\2\2\u03f1\u03f5\7,\2\2\u03f2\u03f5\7 \2\2\u03f3\u03f5"+ + "\7)\2\2\u03f4\u03ea\3\2\2\2\u03f4\u03eb\3\2\2\2\u03f4\u03ec\3\2\2\2\u03f4"+ "\u03ed\3\2\2\2\u03f4\u03ee\3\2\2\2\u03f4\u03ef\3\2\2\2\u03f4\u03f0\3\2"+ "\2\2\u03f4\u03f1\3\2\2\2\u03f4\u03f2\3\2\2\2\u03f4\u03f3\3\2\2\2\u03f5"+ "\u0091\3\2\2\2\u03f6\u03f8\5\u0094K\2\u03f7\u03f6\3\2\2\2\u03f7\u03f8"+ @@ -15948,16 +18065,16 @@ public class Java8Parser extends Parser { "\3\2\2\2\u0406\u0407\3\2\2\2\u0407\u0409\5\u0096L\2\u0408\u040a\5\u00a4"+ "S\2\u0409\u0408\3\2\2\2\u0409\u040a\3\2\2\2\u040a\u040c\3\2\2\2\u040b"+ "\u03f7\3\2\2\2\u040b\u03fd\3\2\2\2\u040c\u0093\3\2\2\2\u040d\u0410\5v"+ - "<\2\u040e\u0410\7\63\2\2\u040f\u040d\3\2\2\2\u040f\u040e\3\2\2\2\u0410"+ - "\u0095\3\2\2\2\u0411\u0412\7i\2\2\u0412\u0414\7<\2\2\u0413\u0415\5\u0098"+ + "<\2\u040e\u0410\7\62\2\2\u040f\u040d\3\2\2\2\u040f\u040e\3\2\2\2\u0410"+ + "\u0095\3\2\2\2\u0411\u0412\7h\2\2\u0412\u0414\7;\2\2\u0413\u0415\5\u0098"+ "M\2\u0414\u0413\3\2\2\2\u0414\u0415\3\2\2\2\u0415\u0416\3\2\2\2\u0416"+ - "\u0418\7=\2\2\u0417\u0419\5\"\22\2\u0418\u0417\3\2\2\2\u0418\u0419\3\2"+ - "\2\2\u0419\u0097\3\2\2\2\u041a\u041b\5\u009aN\2\u041b\u041c\7C\2\2\u041c"+ + "\u0418\7<\2\2\u0417\u0419\5\"\22\2\u0418\u0417\3\2\2\2\u0418\u0419\3\2"+ + "\2\2\u0419\u0097\3\2\2\2\u041a\u041b\5\u009aN\2\u041b\u041c\7B\2\2\u041c"+ "\u041d\5\u00a0Q\2\u041d\u0420\3\2\2\2\u041e\u0420\5\u00a0Q\2\u041f\u041a"+ "\3\2\2\2\u041f\u041e\3\2\2\2\u0420\u0099\3\2\2\2\u0421\u0426\5\u009cO"+ - "\2\u0422\u0423\7C\2\2\u0423\u0425\5\u009cO\2\u0424\u0422\3\2\2\2\u0425"+ + "\2\u0422\u0423\7B\2\2\u0423\u0425\5\u009cO\2\u0424\u0422\3\2\2\2\u0425"+ "\u0428\3\2\2\2\u0426\u0424\3\2\2\2\u0426\u0427\3\2\2\2\u0427\u0432\3\2"+ - "\2\2\u0428\u0426\3\2\2\2\u0429\u042e\5\u00a2R\2\u042a\u042b\7C\2\2\u042b"+ + "\2\2\u0428\u0426\3\2\2\2\u0429\u042e\5\u00a2R\2\u042a\u042b\7B\2\2\u042b"+ "\u042d\5\u009cO\2\u042c\u042a\3\2\2\2\u042d\u0430\3\2\2\2\u042e\u042c"+ "\3\2\2\2\u042e\u042f\3\2\2\2\u042f\u0432\3\2\2\2\u0430\u042e\3\2\2\2\u0431"+ "\u0421\3\2\2\2\u0431\u0429\3\2\2\2\u0432\u009b\3\2\2\2\u0433\u0435\5\u009e"+ @@ -15965,638 +18082,638 @@ public class Java8Parser extends Parser { "\u0437\3\2\2\2\u0437\u043a\3\2\2\2\u0438\u0436\3\2\2\2\u0439\u043b\5v"+ "<\2\u043a\u0439\3\2\2\2\u043a\u043b\3\2\2\2\u043b\u043c\3\2\2\2\u043c"+ "\u043d\5r:\2\u043d\u009d\3\2\2\2\u043e\u0441\5\u00e8u\2\u043f\u0441\7"+ - "\25\2\2\u0440\u043e\3\2\2\2\u0440\u043f\3\2\2\2\u0441\u009f\3\2\2\2\u0442"+ + "\24\2\2\u0440\u043e\3\2\2\2\u0440\u043f\3\2\2\2\u0441\u009f\3\2\2\2\u0442"+ "\u0444\5\u009eP\2\u0443\u0442\3\2\2\2\u0444\u0447\3\2\2\2\u0445\u0443"+ "\3\2\2\2\u0445\u0446\3\2\2\2\u0446\u0448\3\2\2\2\u0447\u0445\3\2\2\2\u0448"+ "\u044c\5v<\2\u0449\u044b\5\u00e8u\2\u044a\u0449\3\2\2\2\u044b\u044e\3"+ "\2\2\2\u044c\u044a\3\2\2\2\u044c\u044d\3\2\2\2\u044d\u044f\3\2\2\2\u044e"+ - "\u044c\3\2\2\2\u044f\u0450\7k\2\2\u0450\u0451\5r:\2\u0451\u0454\3\2\2"+ + "\u044c\3\2\2\2\u044f\u0450\7j\2\2\u0450\u0451\5r:\2\u0451\u0454\3\2\2"+ "\2\u0452\u0454\5\u009cO\2\u0453\u0445\3\2\2\2\u0453\u0452\3\2\2\2\u0454"+ "\u00a1\3\2\2\2\u0455\u0457\5\u00e8u\2\u0456\u0455\3\2\2\2\u0457\u045a"+ "\3\2\2\2\u0458\u0456\3\2\2\2\u0458\u0459\3\2\2\2\u0459\u045b\3\2\2\2\u045a"+ - "\u0458\3\2\2\2\u045b\u045e\5v<\2\u045c\u045d\7i\2\2\u045d\u045f\7D\2\2"+ + "\u0458\3\2\2\2\u045b\u045e\5v<\2\u045c\u045d\7h\2\2\u045d\u045f\7C\2\2"+ "\u045e\u045c\3\2\2\2\u045e\u045f\3\2\2\2\u045f\u0460\3\2\2\2\u0460\u0461"+ - "\7.\2\2\u0461\u00a3\3\2\2\2\u0462\u0463\7\60\2\2\u0463\u0464\5\u00a6T"+ - "\2\u0464\u00a5\3\2\2\2\u0465\u046a\5\u00a8U\2\u0466\u0467\7C\2\2\u0467"+ - "\u0469\5\u00a8U\2\u0468\u0466\3\2\2\2\u0469\u046c\3\2\2\2\u046a\u0468"+ - "\3\2\2\2\u046a\u046b\3\2\2\2\u046b\u00a7\3\2\2\2\u046c\u046a\3\2\2\2\u046d"+ - "\u0470\5\22\n\2\u046e\u0470\5\36\20\2\u046f\u046d\3\2\2\2\u046f\u046e"+ - "\3\2\2\2\u0470\u00a9\3\2\2\2\u0471\u0474\5\u00fe\u0080\2\u0472\u0474\7"+ - "B\2\2\u0473\u0471\3\2\2\2\u0473\u0472\3\2\2\2\u0474\u00ab\3\2\2\2\u0475"+ - "\u0476\5\u00fe\u0080\2\u0476\u00ad\3\2\2\2\u0477\u0478\7)\2\2\u0478\u0479"+ - "\5\u00fe\u0080\2\u0479\u00af\3\2\2\2\u047a\u047c\5\u00b2Z\2\u047b\u047a"+ + "\7-\2\2\u0461\u00a3\3\2\2\2\u0462\u0463\7/\2\2\u0463\u0464\5\u00a6T\2"+ + "\u0464\u00a5\3\2\2\2\u0465\u046a\5\u00a8U\2\u0466\u0467\7B\2\2\u0467\u0469"+ + "\5\u00a8U\2\u0468\u0466\3\2\2\2\u0469\u046c\3\2\2\2\u046a\u0468\3\2\2"+ + "\2\u046a\u046b\3\2\2\2\u046b\u00a7\3\2\2\2\u046c\u046a\3\2\2\2\u046d\u0470"+ + "\5\22\n\2\u046e\u0470\5\36\20\2\u046f\u046d\3\2\2\2\u046f\u046e\3\2\2"+ + "\2\u0470\u00a9\3\2\2\2\u0471\u0474\5\u00fe\u0080\2\u0472\u0474\7A\2\2"+ + "\u0473\u0471\3\2\2\2\u0473\u0472\3\2\2\2\u0474\u00ab\3\2\2\2\u0475\u0476"+ + "\5\u00fe\u0080\2\u0476\u00ad\3\2\2\2\u0477\u0478\7(\2\2\u0478\u0479\5"+ + "\u00fe\u0080\2\u0479\u00af\3\2\2\2\u047a\u047c\5\u00b2Z\2\u047b\u047a"+ "\3\2\2\2\u047c\u047f\3\2\2\2\u047d\u047b\3\2\2\2\u047d\u047e\3\2\2\2\u047e"+ "\u0480\3\2\2\2\u047f\u047d\3\2\2\2\u0480\u0482\5\u00b4[\2\u0481\u0483"+ "\5\u00a4S\2\u0482\u0481\3\2\2\2\u0482\u0483\3\2\2\2\u0483\u0484\3\2\2"+ "\2\u0484\u0485\5\u00b8]\2\u0485\u00b1\3\2\2\2\u0486\u048b\5\u00e8u\2\u0487"+ - "\u048b\7&\2\2\u0488\u048b\7%\2\2\u0489\u048b\7$\2\2\u048a\u0486\3\2\2"+ + "\u048b\7%\2\2\u0488\u048b\7$\2\2\u0489\u048b\7#\2\2\u048a\u0486\3\2\2"+ "\2\u048a\u0487\3\2\2\2\u048a\u0488\3\2\2\2\u048a\u0489\3\2\2\2\u048b\u00b3"+ "\3\2\2\2\u048c\u048e\5Z.\2\u048d\u048c\3\2\2\2\u048d\u048e\3\2\2\2\u048e"+ - "\u048f\3\2\2\2\u048f\u0490\5\u00b6\\\2\u0490\u0492\7<\2\2\u0491\u0493"+ + "\u048f\3\2\2\2\u048f\u0490\5\u00b6\\\2\u0490\u0492\7;\2\2\u0491\u0493"+ "\5\u0098M\2\u0492\u0491\3\2\2\2\u0492\u0493\3\2\2\2\u0493\u0494\3\2\2"+ - "\2\u0494\u0495\7=\2\2\u0495\u00b5\3\2\2\2\u0496\u0497\7i\2\2\u0497\u00b7"+ - "\3\2\2\2\u0498\u049a\7>\2\2\u0499\u049b\5\u00ba^\2\u049a\u0499\3\2\2\2"+ + "\2\u0494\u0495\7<\2\2\u0495\u00b5\3\2\2\2\u0496\u0497\7h\2\2\u0497\u00b7"+ + "\3\2\2\2\u0498\u049a\7=\2\2\u0499\u049b\5\u00ba^\2\u049a\u0499\3\2\2\2"+ "\u049a\u049b\3\2\2\2\u049b\u049d\3\2\2\2\u049c\u049e\5\u0100\u0081\2\u049d"+ - "\u049c\3\2\2\2\u049d\u049e\3\2\2\2\u049e\u049f\3\2\2\2\u049f\u04a0\7?"+ + "\u049c\3\2\2\2\u049d\u049e\3\2\2\2\u049e\u049f\3\2\2\2\u049f\u04a0\7>"+ "\2\2\u04a0\u00b9\3\2\2\2\u04a1\u04a3\5,\27\2\u04a2\u04a1\3\2\2\2\u04a2"+ - "\u04a3\3\2\2\2\u04a3\u04a4\3\2\2\2\u04a4\u04a5\7.\2\2\u04a5\u04a7\7<\2"+ + "\u04a3\3\2\2\2\u04a3\u04a4\3\2\2\2\u04a4\u04a5\7-\2\2\u04a5\u04a7\7;\2"+ "\2\u04a6\u04a8\5\u0192\u00ca\2\u04a7\u04a6\3\2\2\2\u04a7\u04a8\3\2\2\2"+ - "\u04a8\u04a9\3\2\2\2\u04a9\u04aa\7=\2\2\u04aa\u04d0\7B\2\2\u04ab\u04ad"+ + "\u04a8\u04a9\3\2\2\2\u04a9\u04aa\7<\2\2\u04aa\u04d0\7A\2\2\u04ab\u04ad"+ "\5,\27\2\u04ac\u04ab\3\2\2\2\u04ac\u04ad\3\2\2\2\u04ad\u04ae\3\2\2\2\u04ae"+ - "\u04af\7+\2\2\u04af\u04b1\7<\2\2\u04b0\u04b2\5\u0192\u00ca\2\u04b1\u04b0"+ - "\3\2\2\2\u04b1\u04b2\3\2\2\2\u04b2\u04b3\3\2\2\2\u04b3\u04b4\7=\2\2\u04b4"+ - "\u04d0\7B\2\2\u04b5\u04b6\5<\37\2\u04b6\u04b8\7D\2\2\u04b7\u04b9\5,\27"+ + "\u04af\7*\2\2\u04af\u04b1\7;\2\2\u04b0\u04b2\5\u0192\u00ca\2\u04b1\u04b0"+ + "\3\2\2\2\u04b1\u04b2\3\2\2\2\u04b2\u04b3\3\2\2\2\u04b3\u04b4\7<\2\2\u04b4"+ + "\u04d0\7A\2\2\u04b5\u04b6\5<\37\2\u04b6\u04b8\7C\2\2\u04b7\u04b9\5,\27"+ "\2\u04b8\u04b7\3\2\2\2\u04b8\u04b9\3\2\2\2\u04b9\u04ba\3\2\2\2\u04ba\u04bb"+ - "\7+\2\2\u04bb\u04bd\7<\2\2\u04bc\u04be\5\u0192\u00ca\2\u04bd\u04bc\3\2"+ - "\2\2\u04bd\u04be\3\2\2\2\u04be\u04bf\3\2\2\2\u04bf\u04c0\7=\2\2\u04c0"+ - "\u04c1\7B\2\2\u04c1\u04d0\3\2\2\2\u04c2\u04c3\5\u0164\u00b3\2\u04c3\u04c5"+ - "\7D\2\2\u04c4\u04c6\5,\27\2\u04c5\u04c4\3\2\2\2\u04c5\u04c6\3\2\2\2\u04c6"+ - "\u04c7\3\2\2\2\u04c7\u04c8\7+\2\2\u04c8\u04ca\7<\2\2\u04c9\u04cb\5\u0192"+ + "\7*\2\2\u04bb\u04bd\7;\2\2\u04bc\u04be\5\u0192\u00ca\2\u04bd\u04bc\3\2"+ + "\2\2\u04bd\u04be\3\2\2\2\u04be\u04bf\3\2\2\2\u04bf\u04c0\7<\2\2\u04c0"+ + "\u04c1\7A\2\2\u04c1\u04d0\3\2\2\2\u04c2\u04c3\5\u0164\u00b3\2\u04c3\u04c5"+ + "\7C\2\2\u04c4\u04c6\5,\27\2\u04c5\u04c4\3\2\2\2\u04c5\u04c6\3\2\2\2\u04c6"+ + "\u04c7\3\2\2\2\u04c7\u04c8\7*\2\2\u04c8\u04ca\7;\2\2\u04c9\u04cb\5\u0192"+ "\u00ca\2\u04ca\u04c9\3\2\2\2\u04ca\u04cb\3\2\2\2\u04cb\u04cc\3\2\2\2\u04cc"+ - "\u04cd\7=\2\2\u04cd\u04ce\7B\2\2\u04ce\u04d0\3\2\2\2\u04cf\u04a2\3\2\2"+ + "\u04cd\7<\2\2\u04cd\u04ce\7A\2\2\u04ce\u04d0\3\2\2\2\u04cf\u04a2\3\2\2"+ "\2\u04cf\u04ac\3\2\2\2\u04cf\u04b5\3\2\2\2\u04cf\u04c2\3\2\2\2\u04d0\u00bb"+ "\3\2\2\2\u04d1\u04d3\5X-\2\u04d2\u04d1\3\2\2\2\u04d3\u04d6\3\2\2\2\u04d4"+ "\u04d2\3\2\2\2\u04d4\u04d5\3\2\2\2\u04d5\u04d7\3\2\2\2\u04d6\u04d4\3\2"+ - "\2\2\u04d7\u04d8\7\23\2\2\u04d8\u04da\7i\2\2\u04d9\u04db\5`\61\2\u04da"+ + "\2\2\u04d7\u04d8\7\22\2\2\u04d8\u04da\7h\2\2\u04d9\u04db\5`\61\2\u04da"+ "\u04d9\3\2\2\2\u04da\u04db\3\2\2\2\u04db\u04dc\3\2\2\2\u04dc\u04dd\5\u00be"+ - "`\2\u04dd\u00bd\3\2\2\2\u04de\u04e0\7>\2\2\u04df\u04e1\5\u00c0a\2\u04e0"+ - "\u04df\3\2\2\2\u04e0\u04e1\3\2\2\2\u04e1\u04e3\3\2\2\2\u04e2\u04e4\7C"+ + "`\2\u04dd\u00bd\3\2\2\2\u04de\u04e0\7=\2\2\u04df\u04e1\5\u00c0a\2\u04e0"+ + "\u04df\3\2\2\2\u04e0\u04e1\3\2\2\2\u04e1\u04e3\3\2\2\2\u04e2\u04e4\7B"+ "\2\2\u04e3\u04e2\3\2\2\2\u04e3\u04e4\3\2\2\2\u04e4\u04e6\3\2\2\2\u04e5"+ "\u04e7\5\u00c6d\2\u04e6\u04e5\3\2\2\2\u04e6\u04e7\3\2\2\2\u04e7\u04e8"+ - "\3\2\2\2\u04e8\u04e9\7?\2\2\u04e9\u00bf\3\2\2\2\u04ea\u04ef\5\u00c2b\2"+ - "\u04eb\u04ec\7C\2\2\u04ec\u04ee\5\u00c2b\2\u04ed\u04eb\3\2\2\2\u04ee\u04f1"+ + "\3\2\2\2\u04e8\u04e9\7>\2\2\u04e9\u00bf\3\2\2\2\u04ea\u04ef\5\u00c2b\2"+ + "\u04eb\u04ec\7B\2\2\u04ec\u04ee\5\u00c2b\2\u04ed\u04eb\3\2\2\2\u04ee\u04f1"+ "\3\2\2\2\u04ef\u04ed\3\2\2\2\u04ef\u04f0\3\2\2\2\u04f0\u00c1\3\2\2\2\u04f1"+ "\u04ef\3\2\2\2\u04f2\u04f4\5\u00c4c\2\u04f3\u04f2\3\2\2\2\u04f4\u04f7"+ "\3\2\2\2\u04f5\u04f3\3\2\2\2\u04f5\u04f6\3\2\2\2\u04f6\u04f8\3\2\2\2\u04f7"+ - "\u04f5\3\2\2\2\u04f8\u04fe\7i\2\2\u04f9\u04fb\7<\2\2\u04fa\u04fc\5\u0192"+ + "\u04f5\3\2\2\2\u04f8\u04fe\7h\2\2\u04f9\u04fb\7;\2\2\u04fa\u04fc\5\u0192"+ "\u00ca\2\u04fb\u04fa\3\2\2\2\u04fb\u04fc\3\2\2\2\u04fc\u04fd\3\2\2\2\u04fd"+ - "\u04ff\7=\2\2\u04fe\u04f9\3\2\2\2\u04fe\u04ff\3\2\2\2\u04ff\u0501\3\2"+ + "\u04ff\7<\2\2\u04fe\u04f9\3\2\2\2\u04fe\u04ff\3\2\2\2\u04ff\u0501\3\2"+ "\2\2\u0500\u0502\5d\63\2\u0501\u0500\3\2\2\2\u0501\u0502\3\2\2\2\u0502"+ "\u00c3\3\2\2\2\u0503\u0504\5\u00e8u\2\u0504\u00c5\3\2\2\2\u0505\u0509"+ - "\7B\2\2\u0506\u0508\5f\64\2\u0507\u0506\3\2\2\2\u0508\u050b\3\2\2\2\u0509"+ + "\7A\2\2\u0506\u0508\5f\64\2\u0507\u0506\3\2\2\2\u0508\u050b\3\2\2\2\u0509"+ "\u0507\3\2\2\2\u0509\u050a\3\2\2\2\u050a\u00c7\3\2\2\2\u050b\u0509\3\2"+ "\2\2\u050c\u050f\5\u00caf\2\u050d\u050f\5\u00dco\2\u050e\u050c\3\2\2\2"+ "\u050e\u050d\3\2\2\2\u050f\u00c9\3\2\2\2\u0510\u0512\5\u00ccg\2\u0511"+ "\u0510\3\2\2\2\u0512\u0515\3\2\2\2\u0513\u0511\3\2\2\2\u0513\u0514\3\2"+ - "\2\2\u0514\u0516\3\2\2\2\u0515\u0513\3\2\2\2\u0516\u0517\7\37\2\2\u0517"+ - "\u0519\7i\2\2\u0518\u051a\5Z.\2\u0519\u0518\3\2\2\2\u0519\u051a\3\2\2"+ + "\2\2\u0514\u0516\3\2\2\2\u0515\u0513\3\2\2\2\u0516\u0517\7\36\2\2\u0517"+ + "\u0519\7h\2\2\u0518\u051a\5Z.\2\u0519\u0518\3\2\2\2\u0519\u051a\3\2\2"+ "\2\u051a\u051c\3\2\2\2\u051b\u051d\5\u00ceh\2\u051c\u051b\3\2\2\2\u051c"+ "\u051d\3\2\2\2\u051d\u051e\3\2\2\2\u051e\u051f\5\u00d0i\2\u051f\u00cb"+ - "\3\2\2\2\u0520\u0528\5\u00e8u\2\u0521\u0528\7&\2\2\u0522\u0528\7%\2\2"+ - "\u0523\u0528\7$\2\2\u0524\u0528\7\4\2\2\u0525\u0528\7)\2\2\u0526\u0528"+ - "\7*\2\2\u0527\u0520\3\2\2\2\u0527\u0521\3\2\2\2\u0527\u0522\3\2\2\2\u0527"+ + "\3\2\2\2\u0520\u0528\5\u00e8u\2\u0521\u0528\7%\2\2\u0522\u0528\7$\2\2"+ + "\u0523\u0528\7#\2\2\u0524\u0528\7\3\2\2\u0525\u0528\7(\2\2\u0526\u0528"+ + "\7)\2\2\u0527\u0520\3\2\2\2\u0527\u0521\3\2\2\2\u0527\u0522\3\2\2\2\u0527"+ "\u0523\3\2\2\2\u0527\u0524\3\2\2\2\u0527\u0525\3\2\2\2\u0527\u0526\3\2"+ - "\2\2\u0528\u00cd\3\2\2\2\u0529\u052a\7\24\2\2\u052a\u052b\5b\62\2\u052b"+ - "\u00cf\3\2\2\2\u052c\u0530\7>\2\2\u052d\u052f\5\u00d2j\2\u052e\u052d\3"+ + "\2\2\u0528\u00cd\3\2\2\2\u0529\u052a\7\23\2\2\u052a\u052b\5b\62\2\u052b"+ + "\u00cf\3\2\2\2\u052c\u0530\7=\2\2\u052d\u052f\5\u00d2j\2\u052e\u052d\3"+ "\2\2\2\u052f\u0532\3\2\2\2\u0530\u052e\3\2\2\2\u0530\u0531\3\2\2\2\u0531"+ - "\u0533\3\2\2\2\u0532\u0530\3\2\2\2\u0533\u0534\7?\2\2\u0534\u00d1\3\2"+ + "\u0533\3\2\2\2\u0532\u0530\3\2\2\2\u0533\u0534\7>\2\2\u0534\u00d1\3\2"+ "\2\2\u0535\u053b\5\u00d4k\2\u0536\u053b\5\u00d8m\2\u0537\u053b\5T+\2\u0538"+ - "\u053b\5\u00c8e\2\u0539\u053b\7B\2\2\u053a\u0535\3\2\2\2\u053a\u0536\3"+ + "\u053b\5\u00c8e\2\u0539\u053b\7A\2\2\u053a\u0535\3\2\2\2\u053a\u0536\3"+ "\2\2\2\u053a\u0537\3\2\2\2\u053a\u0538\3\2\2\2\u053a\u0539\3\2\2\2\u053b"+ "\u00d3\3\2\2\2\u053c\u053e\5\u00d6l\2\u053d\u053c\3\2\2\2\u053e\u0541"+ "\3\2\2\2\u053f\u053d\3\2\2\2\u053f\u0540\3\2\2\2\u0540\u0542\3\2\2\2\u0541"+ - "\u053f\3\2\2\2\u0542\u0543\5v<\2\u0543\u0544\5n8\2\u0544\u0545\7B\2\2"+ - "\u0545\u00d5\3\2\2\2\u0546\u054b\5\u00e8u\2\u0547\u054b\7&\2\2\u0548\u054b"+ - "\7)\2\2\u0549\u054b\7\25\2\2\u054a\u0546\3\2\2\2\u054a\u0547\3\2\2\2\u054a"+ + "\u053f\3\2\2\2\u0542\u0543\5v<\2\u0543\u0544\5n8\2\u0544\u0545\7A\2\2"+ + "\u0545\u00d5\3\2\2\2\u0546\u054b\5\u00e8u\2\u0547\u054b\7%\2\2\u0548\u054b"+ + "\7(\2\2\u0549\u054b\7\24\2\2\u054a\u0546\3\2\2\2\u054a\u0547\3\2\2\2\u054a"+ "\u0548\3\2\2\2\u054a\u0549\3\2\2\2\u054b\u00d7\3\2\2\2\u054c\u054e\5\u00da"+ "n\2\u054d\u054c\3\2\2\2\u054e\u0551\3\2\2\2\u054f\u054d\3\2\2\2\u054f"+ "\u0550\3\2\2\2\u0550\u0552\3\2\2\2\u0551\u054f\3\2\2\2\u0552\u0553\5\u0092"+ "J\2\u0553\u0554\5\u00aaV\2\u0554\u00d9\3\2\2\2\u0555\u055c\5\u00e8u\2"+ - "\u0556\u055c\7&\2\2\u0557\u055c\7\4\2\2\u0558\u055c\7\17\2\2\u0559\u055c"+ - "\7)\2\2\u055a\u055c\7*\2\2\u055b\u0555\3\2\2\2\u055b\u0556\3\2\2\2\u055b"+ + "\u0556\u055c\7%\2\2\u0557\u055c\7\3\2\2\u0558\u055c\7\16\2\2\u0559\u055c"+ + "\7(\2\2\u055a\u055c\7)\2\2\u055b\u0555\3\2\2\2\u055b\u0556\3\2\2\2\u055b"+ "\u0557\3\2\2\2\u055b\u0558\3\2\2\2\u055b\u0559\3\2\2\2\u055b\u055a\3\2"+ "\2\2\u055c\u00db\3\2\2\2\u055d\u055f\5\u00ccg\2\u055e\u055d\3\2\2\2\u055f"+ "\u0562\3\2\2\2\u0560\u055e\3\2\2\2\u0560\u0561\3\2\2\2\u0561\u0563\3\2"+ - "\2\2\u0562\u0560\3\2\2\2\u0563\u0564\7j\2\2\u0564\u0565\7\37\2\2\u0565"+ - "\u0566\7i\2\2\u0566\u0567\5\u00dep\2\u0567\u00dd\3\2\2\2\u0568\u056c\7"+ - ">\2\2\u0569\u056b\5\u00e0q\2\u056a\u0569\3\2\2\2\u056b\u056e\3\2\2\2\u056c"+ + "\2\2\u0562\u0560\3\2\2\2\u0563\u0564\7i\2\2\u0564\u0565\7\36\2\2\u0565"+ + "\u0566\7h\2\2\u0566\u0567\5\u00dep\2\u0567\u00dd\3\2\2\2\u0568\u056c\7"+ + "=\2\2\u0569\u056b\5\u00e0q\2\u056a\u0569\3\2\2\2\u056b\u056e\3\2\2\2\u056c"+ "\u056a\3\2\2\2\u056c\u056d\3\2\2\2\u056d\u056f\3\2\2\2\u056e\u056c\3\2"+ - "\2\2\u056f\u0570\7?\2\2\u0570\u00df\3\2\2\2\u0571\u0577\5\u00e2r\2\u0572"+ + "\2\2\u056f\u0570\7>\2\2\u0570\u00df\3\2\2\2\u0571\u0577\5\u00e2r\2\u0572"+ "\u0577\5\u00d4k\2\u0573\u0577\5T+\2\u0574\u0577\5\u00c8e\2\u0575\u0577"+ - "\7B\2\2\u0576\u0571\3\2\2\2\u0576\u0572\3\2\2\2\u0576\u0573\3\2\2\2\u0576"+ + "\7A\2\2\u0576\u0571\3\2\2\2\u0576\u0572\3\2\2\2\u0576\u0573\3\2\2\2\u0576"+ "\u0574\3\2\2\2\u0576\u0575\3\2\2\2\u0577\u00e1\3\2\2\2\u0578\u057a\5\u00e4"+ "s\2\u0579\u0578\3\2\2\2\u057a\u057d\3\2\2\2\u057b\u0579\3\2\2\2\u057b"+ "\u057c\3\2\2\2\u057c\u057e\3\2\2\2\u057d\u057b\3\2\2\2\u057e\u057f\5v"+ - "<\2\u057f\u0580\7i\2\2\u0580\u0581\7<\2\2\u0581\u0583\7=\2\2\u0582\u0584"+ + "<\2\u057f\u0580\7h\2\2\u0580\u0581\7;\2\2\u0581\u0583\7<\2\2\u0582\u0584"+ "\5\"\22\2\u0583\u0582\3\2\2\2\u0583\u0584\3\2\2\2\u0584\u0586\3\2\2\2"+ "\u0585\u0587\5\u00e6t\2\u0586\u0585\3\2\2\2\u0586\u0587\3\2\2\2\u0587"+ - "\u0588\3\2\2\2\u0588\u0589\7B\2\2\u0589\u00e3\3\2\2\2\u058a\u058e\5\u00e8"+ - "u\2\u058b\u058e\7&\2\2\u058c\u058e\7\4\2\2\u058d\u058a\3\2\2\2\u058d\u058b"+ - "\3\2\2\2\u058d\u058c\3\2\2\2\u058e\u00e5\3\2\2\2\u058f\u0590\7\17\2\2"+ + "\u0588\3\2\2\2\u0588\u0589\7A\2\2\u0589\u00e3\3\2\2\2\u058a\u058e\5\u00e8"+ + "u\2\u058b\u058e\7%\2\2\u058c\u058e\7\3\2\2\u058d\u058a\3\2\2\2\u058d\u058b"+ + "\3\2\2\2\u058d\u058c\3\2\2\2\u058e\u00e5\3\2\2\2\u058f\u0590\7\16\2\2"+ "\u0590\u0591\5\u00f0y\2\u0591\u00e7\3\2\2\2\u0592\u0596\5\u00eav\2\u0593"+ "\u0596\5\u00f6|\2\u0594\u0596\5\u00f8}\2\u0595\u0592\3\2\2\2\u0595\u0593"+ - "\3\2\2\2\u0595\u0594\3\2\2\2\u0596\u00e9\3\2\2\2\u0597\u0598\7j\2\2\u0598"+ - "\u0599\58\35\2\u0599\u059b\7<\2\2\u059a\u059c\5\u00ecw\2\u059b\u059a\3"+ - "\2\2\2\u059b\u059c\3\2\2\2\u059c\u059d\3\2\2\2\u059d\u059e\7=\2\2\u059e"+ - "\u00eb\3\2\2\2\u059f\u05a4\5\u00eex\2\u05a0\u05a1\7C\2\2\u05a1\u05a3\5"+ + "\3\2\2\2\u0595\u0594\3\2\2\2\u0596\u00e9\3\2\2\2\u0597\u0598\7i\2\2\u0598"+ + "\u0599\58\35\2\u0599\u059b\7;\2\2\u059a\u059c\5\u00ecw\2\u059b\u059a\3"+ + "\2\2\2\u059b\u059c\3\2\2\2\u059c\u059d\3\2\2\2\u059d\u059e\7<\2\2\u059e"+ + "\u00eb\3\2\2\2\u059f\u05a4\5\u00eex\2\u05a0\u05a1\7B\2\2\u05a1\u05a3\5"+ "\u00eex\2\u05a2\u05a0\3\2\2\2\u05a3\u05a6\3\2\2\2\u05a4\u05a2\3\2\2\2"+ "\u05a4\u05a5\3\2\2\2\u05a5\u00ed\3\2\2\2\u05a6\u05a4\3\2\2\2\u05a7\u05a8"+ - "\7i\2\2\u05a8\u05a9\7E\2\2\u05a9\u05aa\5\u00f0y\2\u05aa\u00ef\3\2\2\2"+ + "\7h\2\2\u05a8\u05a9\7D\2\2\u05a9\u05aa\5\u00f0y\2\u05aa\u00ef\3\2\2\2"+ "\u05ab\u05af\5\u01b4\u00db\2\u05ac\u05af\5\u00f2z\2\u05ad\u05af\5\u00e8"+ "u\2\u05ae\u05ab\3\2\2\2\u05ae\u05ac\3\2\2\2\u05ae\u05ad\3\2\2\2\u05af"+ - "\u00f1\3\2\2\2\u05b0\u05b2\7>\2\2\u05b1\u05b3\5\u00f4{\2\u05b2\u05b1\3"+ - "\2\2\2\u05b2\u05b3\3\2\2\2\u05b3\u05b5\3\2\2\2\u05b4\u05b6\7C\2\2\u05b5"+ - "\u05b4\3\2\2\2\u05b5\u05b6\3\2\2\2\u05b6\u05b7\3\2\2\2\u05b7\u05b8\7?"+ - "\2\2\u05b8\u00f3\3\2\2\2\u05b9\u05be\5\u00f0y\2\u05ba\u05bb\7C\2\2\u05bb"+ + "\u00f1\3\2\2\2\u05b0\u05b2\7=\2\2\u05b1\u05b3\5\u00f4{\2\u05b2\u05b1\3"+ + "\2\2\2\u05b2\u05b3\3\2\2\2\u05b3\u05b5\3\2\2\2\u05b4\u05b6\7B\2\2\u05b5"+ + "\u05b4\3\2\2\2\u05b5\u05b6\3\2\2\2\u05b6\u05b7\3\2\2\2\u05b7\u05b8\7>"+ + "\2\2\u05b8\u00f3\3\2\2\2\u05b9\u05be\5\u00f0y\2\u05ba\u05bb\7B\2\2\u05bb"+ "\u05bd\5\u00f0y\2\u05bc\u05ba\3\2\2\2\u05bd\u05c0\3\2\2\2\u05be\u05bc"+ "\3\2\2\2\u05be\u05bf\3\2\2\2\u05bf\u00f5\3\2\2\2\u05c0\u05be\3\2\2\2\u05c1"+ - "\u05c2\7j\2\2\u05c2\u05c3\58\35\2\u05c3\u00f7\3\2\2\2\u05c4\u05c5\7j\2"+ - "\2\u05c5\u05c6\58\35\2\u05c6\u05c7\7<\2\2\u05c7\u05c8\5\u00f0y\2\u05c8"+ - "\u05c9\7=\2\2\u05c9\u00f9\3\2\2\2\u05ca\u05cc\7>\2\2\u05cb\u05cd\5\u00fc"+ + "\u05c2\7i\2\2\u05c2\u05c3\58\35\2\u05c3\u00f7\3\2\2\2\u05c4\u05c5\7i\2"+ + "\2\u05c5\u05c6\58\35\2\u05c6\u05c7\7;\2\2\u05c7\u05c8\5\u00f0y\2\u05c8"+ + "\u05c9\7<\2\2\u05c9\u00f9\3\2\2\2\u05ca\u05cc\7=\2\2\u05cb\u05cd\5\u00fc"+ "\177\2\u05cc\u05cb\3\2\2\2\u05cc\u05cd\3\2\2\2\u05cd\u05cf\3\2\2\2\u05ce"+ - "\u05d0\7C\2\2\u05cf\u05ce\3\2\2\2\u05cf\u05d0\3\2\2\2\u05d0\u05d1\3\2"+ - "\2\2\u05d1\u05d2\7?\2\2\u05d2\u00fb\3\2\2\2\u05d3\u05d8\5t;\2\u05d4\u05d5"+ - "\7C\2\2\u05d5\u05d7\5t;\2\u05d6\u05d4\3\2\2\2\u05d7\u05da\3\2\2\2\u05d8"+ + "\u05d0\7B\2\2\u05cf\u05ce\3\2\2\2\u05cf\u05d0\3\2\2\2\u05d0\u05d1\3\2"+ + "\2\2\u05d1\u05d2\7>\2\2\u05d2\u00fb\3\2\2\2\u05d3\u05d8\5t;\2\u05d4\u05d5"+ + "\7B\2\2\u05d5\u05d7\5t;\2\u05d6\u05d4\3\2\2\2\u05d7\u05da\3\2\2\2\u05d8"+ "\u05d6\3\2\2\2\u05d8\u05d9\3\2\2\2\u05d9\u00fd\3\2\2\2\u05da\u05d8\3\2"+ - "\2\2\u05db\u05dd\7>\2\2\u05dc\u05de\5\u0100\u0081\2\u05dd\u05dc\3\2\2"+ - "\2\u05dd\u05de\3\2\2\2\u05de\u05df\3\2\2\2\u05df\u05e0\7?\2\2\u05e0\u00ff"+ + "\2\2\u05db\u05dd\7=\2\2\u05dc\u05de\5\u0100\u0081\2\u05dd\u05dc\3\2\2"+ + "\2\u05dd\u05de\3\2\2\2\u05de\u05df\3\2\2\2\u05df\u05e0\7>\2\2\u05e0\u00ff"+ "\3\2\2\2\u05e1\u05e5\5\u0102\u0082\2\u05e2\u05e4\5\u0102\u0082\2\u05e3"+ "\u05e2\3\2\2\2\u05e4\u05e7\3\2\2\2\u05e5\u05e3\3\2\2\2\u05e5\u05e6\3\2"+ "\2\2\u05e6\u0101\3\2\2\2\u05e7\u05e5\3\2\2\2\u05e8\u05ec\5\u0104\u0083"+ "\2\u05e9\u05ec\5T+\2\u05ea\u05ec\5\u010a\u0086\2\u05eb\u05e8\3\2\2\2\u05eb"+ "\u05e9\3\2\2\2\u05eb\u05ea\3\2\2\2\u05ec\u0103\3\2\2\2\u05ed\u05ee\5\u0108"+ - "\u0085\2\u05ee\u05ef\7B\2\2\u05ef\u0105\3\2\2\2\u05f0\u05f3\5v<\2\u05f1"+ - "\u05f3\7\3\2\2\u05f2\u05f0\3\2\2\2\u05f2\u05f1\3\2\2\2\u05f3\u0107\3\2"+ - "\2\2\u05f4\u05f6\5\u009eP\2\u05f5\u05f4\3\2\2\2\u05f6\u05f9\3\2\2\2\u05f7"+ - "\u05f5\3\2\2\2\u05f7\u05f8\3\2\2\2\u05f8\u05fa\3\2\2\2\u05f9\u05f7\3\2"+ - "\2\2\u05fa\u05fb\5\u0106\u0084\2\u05fb\u05fc\5n8\2\u05fc\u0109\3\2\2\2"+ - "\u05fd\u0604\5\u010e\u0088\2\u05fe\u0604\5\u0112\u008a\2\u05ff\u0604\5"+ - "\u011a\u008e\2\u0600\u0604\5\u011c\u008f\2\u0601\u0604\5\u012e\u0098\2"+ - "\u0602\u0604\5\u0134\u009b\2\u0603\u05fd\3\2\2\2\u0603\u05fe\3\2\2\2\u0603"+ - "\u05ff\3\2\2\2\u0603\u0600\3\2\2\2\u0603\u0601\3\2\2\2\u0603\u0602\3\2"+ - "\2\2\u0604\u010b\3\2\2\2\u0605\u060b\5\u010e\u0088\2\u0606\u060b\5\u0114"+ - "\u008b\2\u0607\u060b\5\u011e\u0090\2\u0608\u060b\5\u0130\u0099\2\u0609"+ - "\u060b\5\u0136\u009c\2\u060a\u0605\3\2\2\2\u060a\u0606\3\2\2\2\u060a\u0607"+ - "\3\2\2\2\u060a\u0608\3\2\2\2\u060a\u0609\3\2\2\2\u060b\u010d\3\2\2\2\u060c"+ - "\u0619\5\u00fe\u0080\2\u060d\u0619\5\u0110\u0089\2\u060e\u0619\5\u0116"+ - "\u008c\2\u060f\u0619\5\u0120\u0091\2\u0610\u0619\5\u0122\u0092\2\u0611"+ - "\u0619\5\u0132\u009a\2\u0612\u0619\5\u0146\u00a4\2\u0613\u0619\5\u0148"+ - "\u00a5\2\u0614\u0619\5\u014a\u00a6\2\u0615\u0619\5\u014e\u00a8\2\u0616"+ - "\u0619\5\u014c\u00a7\2\u0617\u0619\5\u0150\u00a9\2\u0618\u060c\3\2\2\2"+ - "\u0618\u060d\3\2\2\2\u0618\u060e\3\2\2\2\u0618\u060f\3\2\2\2\u0618\u0610"+ - "\3\2\2\2\u0618\u0611\3\2\2\2\u0618\u0612\3\2\2\2\u0618\u0613\3\2\2\2\u0618"+ - "\u0614\3\2\2\2\u0618\u0615\3\2\2\2\u0618\u0616\3\2\2\2\u0618\u0617\3\2"+ - "\2\2\u0619\u010f\3\2\2\2\u061a\u061b\7B\2\2\u061b\u0111\3\2\2\2\u061c"+ - "\u061d\7i\2\2\u061d\u061e\7K\2\2\u061e\u061f\5\u010a\u0086\2\u061f\u0113"+ - "\3\2\2\2\u0620\u0621\7i\2\2\u0621\u0622\7K\2\2\u0622\u0623\5\u010c\u0087"+ - "\2\u0623\u0115\3\2\2\2\u0624\u0625\5\u0118\u008d\2\u0625\u0626\7B\2\2"+ - "\u0626\u0117\3\2\2\2\u0627\u062f\5\u01ae\u00d8\2\u0628\u062f\5\u01cc\u00e7"+ - "\2\u0629\u062f\5\u01ce\u00e8\2\u062a\u062f\5\u01d4\u00eb\2\u062b\u062f"+ - "\5\u01d8\u00ed\2\u062c\u062f\5\u018c\u00c7\2\u062d\u062f\5\u0178\u00bd"+ - "\2\u062e\u0627\3\2\2\2\u062e\u0628\3\2\2\2\u062e\u0629\3\2\2\2\u062e\u062a"+ - "\3\2\2\2\u062e\u062b\3\2\2\2\u062e\u062c\3\2\2\2\u062e\u062d\3\2\2\2\u062f"+ - "\u0119\3\2\2\2\u0630\u0631\7\31\2\2\u0631\u0632\7<\2\2\u0632\u0633\5\u01a2"+ - "\u00d2\2\u0633\u0634\7=\2\2\u0634\u0635\5\u010a\u0086\2\u0635\u011b\3"+ - "\2\2\2\u0636\u0637\7\31\2\2\u0637\u0638\7<\2\2\u0638\u0639\5\u01a2\u00d2"+ - "\2\u0639\u063a\7=\2\2\u063a\u063b\5\u010c\u0087\2\u063b\u063c\7\22\2\2"+ - "\u063c\u063d\5\u010a\u0086\2\u063d\u011d\3\2\2\2\u063e\u063f\7\31\2\2"+ - "\u063f\u0640\7<\2\2\u0640\u0641\5\u01a2\u00d2\2\u0641\u0642\7=\2\2\u0642"+ - "\u0643\5\u010c\u0087\2\u0643\u0644\7\22\2\2\u0644\u0645\5\u010c\u0087"+ - "\2\u0645\u011f\3\2\2\2\u0646\u0647\7\5\2\2\u0647\u0648\5\u01a2\u00d2\2"+ - "\u0648\u0649\7B\2\2\u0649\u0651\3\2\2\2\u064a\u064b\7\5\2\2\u064b\u064c"+ - "\5\u01a2\u00d2\2\u064c\u064d\7K\2\2\u064d\u064e\5\u01a2\u00d2\2\u064e"+ - "\u064f\7B\2\2\u064f\u0651\3\2\2\2\u0650\u0646\3\2\2\2\u0650\u064a\3\2"+ - "\2\2\u0651\u0121\3\2\2\2\u0652\u0653\7,\2\2\u0653\u0654\7<\2\2\u0654\u0655"+ - "\5\u01a2\u00d2\2\u0655\u0656\7=\2\2\u0656\u0657\5\u0124\u0093\2\u0657"+ - "\u0123\3\2\2\2\u0658\u065c\7>\2\2\u0659\u065b\5\u0126\u0094\2\u065a\u0659"+ - "\3\2\2\2\u065b\u065e\3\2\2\2\u065c\u065a\3\2\2\2\u065c\u065d\3\2\2\2\u065d"+ - "\u0662\3\2\2\2\u065e\u065c\3\2\2\2\u065f\u0661\5\u012a\u0096\2\u0660\u065f"+ - "\3\2\2\2\u0661\u0664\3\2\2\2\u0662\u0660\3\2\2\2\u0662\u0663\3\2\2\2\u0663"+ - "\u0665\3\2\2\2\u0664\u0662\3\2\2\2\u0665\u0666\7?\2\2\u0666\u0125\3\2"+ - "\2\2\u0667\u0668\5\u0128\u0095\2\u0668\u0669\5\u0100\u0081\2\u0669\u0127"+ - "\3\2\2\2\u066a\u066e\5\u012a\u0096\2\u066b\u066d\5\u012a\u0096\2\u066c"+ - "\u066b\3\2\2\2\u066d\u0670\3\2\2\2\u066e\u066c\3\2\2\2\u066e\u066f\3\2"+ - "\2\2\u066f\u0129\3\2\2\2\u0670\u066e\3\2\2\2\u0671\u0672\7\t\2\2\u0672"+ - "\u0673\5\u01a0\u00d1\2\u0673\u0674\7K\2\2\u0674\u067c\3\2\2\2\u0675\u0676"+ - "\7\t\2\2\u0676\u0677\5\u012c\u0097\2\u0677\u0678\7K\2\2\u0678\u067c\3"+ - "\2\2\2\u0679\u067a\7\17\2\2\u067a\u067c\7K\2\2\u067b\u0671\3\2\2\2\u067b"+ - "\u0675\3\2\2\2\u067b\u0679\3\2\2\2\u067c\u012b\3\2\2\2\u067d\u067e\7i"+ - "\2\2\u067e\u012d\3\2\2\2\u067f\u0680\7\65\2\2\u0680\u0681\7<\2\2\u0681"+ - "\u0682\5\u01a2\u00d2\2\u0682\u0683\7=\2\2\u0683\u0684\5\u010a\u0086\2"+ - "\u0684\u012f\3\2\2\2\u0685\u0686\7\65\2\2\u0686\u0687\7<\2\2\u0687\u0688"+ - "\5\u01a2\u00d2\2\u0688\u0689\7=\2\2\u0689\u068a\5\u010c\u0087\2\u068a"+ - "\u0131\3\2\2\2\u068b\u068c\7\20\2\2\u068c\u068d\5\u010a\u0086\2\u068d"+ - "\u068e\7\65\2\2\u068e\u068f\7<\2\2\u068f\u0690\5\u01a2\u00d2\2\u0690\u0691"+ - "\7=\2\2\u0691\u0692\7B\2\2\u0692\u0133\3\2\2\2\u0693\u0696\5\u0138\u009d"+ - "\2\u0694\u0696\5\u0142\u00a2\2\u0695\u0693\3\2\2\2\u0695\u0694\3\2\2\2"+ - "\u0696\u0135\3\2\2\2\u0697\u069a\5\u013a\u009e\2\u0698\u069a\5\u0144\u00a3"+ - "\2\u0699\u0697\3\2\2\2\u0699\u0698\3\2\2\2\u069a\u0137\3\2\2\2\u069b\u069c"+ - "\7\30\2\2\u069c\u069e\7<\2\2\u069d\u069f\5\u013c\u009f\2\u069e\u069d\3"+ - "\2\2\2\u069e\u069f\3\2\2\2\u069f\u06a0\3\2\2\2\u06a0\u06a2\7B\2\2\u06a1"+ - "\u06a3\5\u01a2\u00d2\2\u06a2\u06a1\3\2\2\2\u06a2\u06a3\3\2\2\2\u06a3\u06a4"+ - "\3\2\2\2\u06a4\u06a6\7B\2\2\u06a5\u06a7\5\u013e\u00a0\2\u06a6\u06a5\3"+ - "\2\2\2\u06a6\u06a7\3\2\2\2\u06a7\u06a8\3\2\2\2\u06a8\u06a9\7=\2\2\u06a9"+ - "\u06aa\5\u010a\u0086\2\u06aa\u0139\3\2\2\2\u06ab\u06ac\7\30\2\2\u06ac"+ - "\u06ae\7<\2\2\u06ad\u06af\5\u013c\u009f\2\u06ae\u06ad\3\2\2\2\u06ae\u06af"+ - "\3\2\2\2\u06af\u06b0\3\2\2\2\u06b0\u06b2\7B\2\2\u06b1\u06b3\5\u01a2\u00d2"+ - "\2\u06b2\u06b1\3\2\2\2\u06b2\u06b3\3\2\2\2\u06b3\u06b4\3\2\2\2\u06b4\u06b6"+ - "\7B\2\2\u06b5\u06b7\5\u013e\u00a0\2\u06b6\u06b5\3\2\2\2\u06b6\u06b7\3"+ - "\2\2\2\u06b7\u06b8\3\2\2\2\u06b8\u06b9\7=\2\2\u06b9\u06ba\5\u010c\u0087"+ - "\2\u06ba\u013b\3\2\2\2\u06bb\u06be\5\u0140\u00a1\2\u06bc\u06be\5\u0108"+ - "\u0085\2\u06bd\u06bb\3\2\2\2\u06bd\u06bc\3\2\2\2\u06be\u013d\3\2\2\2\u06bf"+ - "\u06c0\5\u0140\u00a1\2\u06c0\u013f\3\2\2\2\u06c1\u06c6\5\u0118\u008d\2"+ - "\u06c2\u06c3\7C\2\2\u06c3\u06c5\5\u0118\u008d\2\u06c4\u06c2\3\2\2\2\u06c5"+ - "\u06c8\3\2\2\2\u06c6\u06c4\3\2\2\2\u06c6\u06c7\3\2\2\2\u06c7\u0141\3\2"+ - "\2\2\u06c8\u06c6\3\2\2\2\u06c9\u06ca\7\30\2\2\u06ca\u06ce\7<\2\2\u06cb"+ - "\u06cd\5\u009eP\2\u06cc\u06cb\3\2\2\2\u06cd\u06d0\3\2\2\2\u06ce\u06cc"+ - "\3\2\2\2\u06ce\u06cf\3\2\2\2\u06cf\u06d1\3\2\2\2\u06d0\u06ce\3\2\2\2\u06d1"+ - "\u06d2\5v<\2\u06d2\u06d3\5r:\2\u06d3\u06d4\7K\2\2\u06d4\u06d5\5\u01a2"+ - "\u00d2\2\u06d5\u06d6\7=\2\2\u06d6\u06d7\5\u010a\u0086\2\u06d7\u0143\3"+ - "\2\2\2\u06d8\u06d9\7\30\2\2\u06d9\u06dd\7<\2\2\u06da\u06dc\5\u009eP\2"+ - "\u06db\u06da\3\2\2\2\u06dc\u06df\3\2\2\2\u06dd\u06db\3\2\2\2\u06dd\u06de"+ - "\3\2\2\2\u06de\u06e0\3\2\2\2\u06df\u06dd\3\2\2\2\u06e0\u06e1\5v<\2\u06e1"+ - "\u06e2\5r:\2\u06e2\u06e3\7K\2\2\u06e3\u06e4\5\u01a2\u00d2\2\u06e4\u06e5"+ - "\7=\2\2\u06e5\u06e6\5\u010c\u0087\2\u06e6\u0145\3\2\2\2\u06e7\u06e9\7"+ - "\7\2\2\u06e8\u06ea\7i\2\2\u06e9\u06e8\3\2\2\2\u06e9\u06ea\3\2\2\2\u06ea"+ - "\u06eb\3\2\2\2\u06eb\u06ec\7B\2\2\u06ec\u0147\3\2\2\2\u06ed\u06ef\7\16"+ - "\2\2\u06ee\u06f0\7i\2\2\u06ef\u06ee\3\2\2\2\u06ef\u06f0\3\2\2\2\u06f0"+ - "\u06f1\3\2\2\2\u06f1\u06f2\7B\2\2\u06f2\u0149\3\2\2\2\u06f3\u06f5\7\'"+ - "\2\2\u06f4\u06f6\5\u01a2\u00d2\2\u06f5\u06f4\3\2\2\2\u06f5\u06f6\3\2\2"+ - "\2\u06f6\u06f7\3\2\2\2\u06f7\u06f8\7B\2\2\u06f8\u014b\3\2\2\2\u06f9\u06fa"+ - "\7/\2\2\u06fa\u06fb\5\u01a2\u00d2\2\u06fb\u06fc\7B\2\2\u06fc\u014d\3\2"+ - "\2\2\u06fd\u06fe\7-\2\2\u06fe\u06ff\7<\2\2\u06ff\u0700\5\u01a2\u00d2\2"+ - "\u0700\u0701\7=\2\2\u0701\u0702\5\u00fe\u0080\2\u0702\u014f\3\2\2\2\u0703"+ - "\u0704\7\62\2\2\u0704\u0705\5\u00fe\u0080\2\u0705\u0706\5\u0152\u00aa"+ - "\2\u0706\u0710\3\2\2\2\u0707\u0708\7\62\2\2\u0708\u070a\5\u00fe\u0080"+ - "\2\u0709\u070b\5\u0152\u00aa\2\u070a\u0709\3\2\2\2\u070a\u070b\3\2\2\2"+ - "\u070b\u070c\3\2\2\2\u070c\u070d\5\u015a\u00ae\2\u070d\u0710\3\2\2\2\u070e"+ - "\u0710\5\u015c\u00af\2\u070f\u0703\3\2\2\2\u070f\u0707\3\2\2\2\u070f\u070e"+ - "\3\2\2\2\u0710\u0151\3\2\2\2\u0711\u0715\5\u0154\u00ab\2\u0712\u0714\5"+ - "\u0154\u00ab\2\u0713\u0712\3\2\2\2\u0714\u0717\3\2\2\2\u0715\u0713\3\2"+ - "\2\2\u0715\u0716\3\2\2\2\u0716\u0153\3\2\2\2\u0717\u0715\3\2\2\2\u0718"+ - "\u0719\7\n\2\2\u0719\u071a\7<\2\2\u071a\u071b\5\u0156\u00ac\2\u071b\u071c"+ - "\7=\2\2\u071c\u071d\5\u00fe\u0080\2\u071d\u0155\3\2\2\2\u071e\u0720\5"+ - "\u009eP\2\u071f\u071e\3\2\2\2\u0720\u0723\3\2\2\2\u0721\u071f\3\2\2\2"+ - "\u0721\u0722\3\2\2\2\u0722\u0724\3\2\2\2\u0723\u0721\3\2\2\2\u0724\u0725"+ - "\5\u0158\u00ad\2\u0725\u0726\5r:\2\u0726\u0157\3\2\2\2\u0727\u072c\5~"+ - "@\2\u0728\u0729\7Y\2\2\u0729\u072b\5\22\n\2\u072a\u0728\3\2\2\2\u072b"+ - "\u072e\3\2\2\2\u072c\u072a\3\2\2\2\u072c\u072d\3\2\2\2\u072d\u0159\3\2"+ - "\2\2\u072e\u072c\3\2\2\2\u072f\u0730\7\26\2\2\u0730\u0731\5\u00fe\u0080"+ - "\2\u0731\u015b\3\2\2\2\u0732\u0733\7\62\2\2\u0733\u0734\5\u015e\u00b0"+ - "\2\u0734\u0736\5\u00fe\u0080\2\u0735\u0737\5\u0152\u00aa\2\u0736\u0735"+ - "\3\2\2\2\u0736\u0737\3\2\2\2\u0737\u0739\3\2\2\2\u0738\u073a\5\u015a\u00ae"+ - "\2\u0739\u0738\3\2\2\2\u0739\u073a\3\2\2\2\u073a\u015d\3\2\2\2\u073b\u073c"+ - "\7<\2\2\u073c\u073e\5\u0160\u00b1\2\u073d\u073f\7B\2\2\u073e\u073d\3\2"+ - "\2\2\u073e\u073f\3\2\2\2\u073f\u0740\3\2\2\2\u0740\u0741\7=\2\2\u0741"+ - "\u015f\3\2\2\2\u0742\u0747\5\u0162\u00b2\2\u0743\u0744\7B\2\2\u0744\u0746"+ - "\5\u0162\u00b2\2\u0745\u0743\3\2\2\2\u0746\u0749\3\2\2\2\u0747\u0745\3"+ - "\2\2\2\u0747\u0748\3\2\2\2\u0748\u0161\3\2\2\2\u0749\u0747\3\2\2\2\u074a"+ - "\u074c\5\u009eP\2\u074b\u074a\3\2\2\2\u074c\u074f\3\2\2\2\u074d\u074b"+ - "\3\2\2\2\u074d\u074e\3\2\2\2\u074e\u0750\3\2\2\2\u074f\u074d\3\2\2\2\u0750"+ - "\u0751\5v<\2\u0751\u0752\5r:\2\u0752\u0753\7E\2\2\u0753\u0754\5\u01a2"+ - "\u00d2\2\u0754\u0163\3\2\2\2\u0755\u0758\5\u0172\u00ba\2\u0756\u0758\5"+ - "\u019a\u00ce\2\u0757\u0755\3\2\2\2\u0757\u0756\3\2\2\2\u0758\u075c\3\2"+ - "\2\2\u0759\u075b\5\u016c\u00b7\2\u075a\u0759\3\2\2\2\u075b\u075e\3\2\2"+ - "\2\u075c\u075a\3\2\2\2\u075c\u075d\3\2\2\2\u075d\u0165\3\2\2\2\u075e\u075c"+ - "\3\2\2\2\u075f\u077d\5\2\2\2\u0760\u0765\58\35\2\u0761\u0762\7@\2\2\u0762"+ - "\u0764\7A\2\2\u0763\u0761\3\2\2\2\u0764\u0767\3\2\2\2\u0765\u0763\3\2"+ - "\2\2\u0765\u0766\3\2\2\2\u0766\u0768\3\2\2\2\u0767\u0765\3\2\2\2\u0768"+ - "\u0769\7D\2\2\u0769\u076a\7\f\2\2\u076a\u077d\3\2\2\2\u076b\u076c\7\63"+ - "\2\2\u076c\u076d\7D\2\2\u076d\u077d\7\f\2\2\u076e\u077d\7.\2\2\u076f\u0770"+ - "\58\35\2\u0770\u0771\7D\2\2\u0771\u0772\7.\2\2\u0772\u077d\3\2\2\2\u0773"+ - "\u0774\7<\2\2\u0774\u0775\5\u01a2\u00d2\2\u0775\u0776\7=\2\2\u0776\u077d"+ - "\3\2\2\2\u0777\u077d\5\u0178\u00bd\2\u0778\u077d\5\u0180\u00c1\2\u0779"+ - "\u077d\5\u0186\u00c4\2\u077a\u077d\5\u018c\u00c7\2\u077b\u077d\5\u0194"+ - "\u00cb\2\u077c\u075f\3\2\2\2\u077c\u0760\3\2\2\2\u077c\u076b\3\2\2\2\u077c"+ - "\u076e\3\2\2\2\u077c\u076f\3\2\2\2\u077c\u0773\3\2\2\2\u077c\u0777\3\2"+ - "\2\2\u077c\u0778\3\2\2\2\u077c\u0779\3\2\2\2\u077c\u077a\3\2\2\2\u077c"+ - "\u077b\3\2\2\2\u077d\u0167\3\2\2\2\u077e\u077f\3\2\2\2\u077f\u0169\3\2"+ - "\2\2\u0780\u079d\5\2\2\2\u0781\u0786\58\35\2\u0782\u0783\7@\2\2\u0783"+ - "\u0785\7A\2\2\u0784\u0782\3\2\2\2\u0785\u0788\3\2\2\2\u0786\u0784\3\2"+ - "\2\2\u0786\u0787\3\2\2\2\u0787\u0789\3\2\2\2\u0788\u0786\3\2\2\2\u0789"+ - "\u078a\7D\2\2\u078a\u078b\7\f\2\2\u078b\u079d\3\2\2\2\u078c\u078d\7\63"+ - "\2\2\u078d\u078e\7D\2\2\u078e\u079d\7\f\2\2\u078f\u079d\7.\2\2\u0790\u0791"+ - "\58\35\2\u0791\u0792\7D\2\2\u0792\u0793\7.\2\2\u0793\u079d\3\2\2\2\u0794"+ - "\u0795\7<\2\2\u0795\u0796\5\u01a2\u00d2\2\u0796\u0797\7=\2\2\u0797\u079d"+ - "\3\2\2\2\u0798\u079d\5\u0178\u00bd\2\u0799\u079d\5\u0180\u00c1\2\u079a"+ - "\u079d\5\u018c\u00c7\2\u079b\u079d\5\u0194\u00cb\2\u079c\u0780\3\2\2\2"+ - "\u079c\u0781\3\2\2\2\u079c\u078c\3\2\2\2\u079c\u078f\3\2\2\2\u079c\u0790"+ - "\3\2\2\2\u079c\u0794\3\2\2\2\u079c\u0798\3\2\2\2\u079c\u0799\3\2\2\2\u079c"+ - "\u079a\3\2\2\2\u079c\u079b\3\2\2\2\u079d\u016b\3\2\2\2\u079e\u07a4\5\u017a"+ - "\u00be\2\u079f\u07a4\5\u0182\u00c2\2\u07a0\u07a4\5\u0188\u00c5\2\u07a1"+ - "\u07a4\5\u018e\u00c8\2\u07a2\u07a4\5\u0196\u00cc\2\u07a3\u079e\3\2\2\2"+ - "\u07a3\u079f\3\2\2\2\u07a3\u07a0\3\2\2\2\u07a3\u07a1\3\2\2\2\u07a3\u07a2"+ - "\3\2\2\2\u07a4\u016d\3\2\2\2\u07a5\u07a6\3\2\2\2\u07a6\u016f\3\2\2\2\u07a7"+ - "\u07ac\5\u017a\u00be\2\u07a8\u07ac\5\u0182\u00c2\2\u07a9\u07ac\5\u018e"+ - "\u00c8\2\u07aa\u07ac\5\u0196\u00cc\2\u07ab\u07a7\3\2\2\2\u07ab\u07a8\3"+ - "\2\2\2\u07ab\u07a9\3\2\2\2\u07ab\u07aa\3\2\2\2\u07ac\u0171\3\2\2\2\u07ad"+ - "\u07d6\5\2\2\2\u07ae\u07b3\58\35\2\u07af\u07b0\7@\2\2\u07b0\u07b2\7A\2"+ - "\2\u07b1\u07af\3\2\2\2\u07b2\u07b5\3\2\2\2\u07b3\u07b1\3\2\2\2\u07b3\u07b4"+ - "\3\2\2\2\u07b4\u07b6\3\2\2\2\u07b5\u07b3\3\2\2\2\u07b6\u07b7\7D\2\2\u07b7"+ - "\u07b8\7\f\2\2\u07b8\u07d6\3\2\2\2\u07b9\u07be\5x=\2\u07ba\u07bb\7@\2"+ - "\2\u07bb\u07bd\7A\2\2\u07bc\u07ba\3\2\2\2\u07bd\u07c0\3\2\2\2\u07be\u07bc"+ - "\3\2\2\2\u07be\u07bf\3\2\2\2\u07bf\u07c1\3\2\2\2\u07c0\u07be\3\2\2\2\u07c1"+ - "\u07c2\7D\2\2\u07c2\u07c3\7\f\2\2\u07c3\u07d6\3\2\2\2\u07c4\u07c5\7\63"+ - "\2\2\u07c5\u07c6\7D\2\2\u07c6\u07d6\7\f\2\2\u07c7\u07d6\7.\2\2\u07c8\u07c9"+ - "\58\35\2\u07c9\u07ca\7D\2\2\u07ca\u07cb\7.\2\2\u07cb\u07d6\3\2\2\2\u07cc"+ - "\u07cd\7<\2\2\u07cd\u07ce\5\u01a2\u00d2\2\u07ce\u07cf\7=\2\2\u07cf\u07d6"+ - "\3\2\2\2\u07d0\u07d6\5\u017c\u00bf\2\u07d1\u07d6\5\u0184\u00c3\2\u07d2"+ - "\u07d6\5\u018a\u00c6\2\u07d3\u07d6\5\u0190\u00c9\2\u07d4\u07d6\5\u0198"+ - "\u00cd\2\u07d5\u07ad\3\2\2\2\u07d5\u07ae\3\2\2\2\u07d5\u07b9\3\2\2\2\u07d5"+ - "\u07c4\3\2\2\2\u07d5\u07c7\3\2\2\2\u07d5\u07c8\3\2\2\2\u07d5\u07cc\3\2"+ - "\2\2\u07d5\u07d0\3\2\2\2\u07d5\u07d1\3\2\2\2\u07d5\u07d2\3\2\2\2\u07d5"+ - "\u07d3\3\2\2\2\u07d5\u07d4\3\2\2\2\u07d6\u0173\3\2\2\2\u07d7\u07d8\3\2"+ - "\2\2\u07d8\u0175\3\2\2\2\u07d9\u0801\5\2\2\2\u07da\u07df\58\35\2\u07db"+ - "\u07dc\7@\2\2\u07dc\u07de\7A\2\2\u07dd\u07db\3\2\2\2\u07de\u07e1\3\2\2"+ - "\2\u07df\u07dd\3\2\2\2\u07df\u07e0\3\2\2\2\u07e0\u07e2\3\2\2\2\u07e1\u07df"+ - "\3\2\2\2\u07e2\u07e3\7D\2\2\u07e3\u07e4\7\f\2\2\u07e4\u0801\3\2\2\2\u07e5"+ - "\u07ea\5x=\2\u07e6\u07e7\7@\2\2\u07e7\u07e9\7A\2\2\u07e8\u07e6\3\2\2\2"+ - "\u07e9\u07ec\3\2\2\2\u07ea\u07e8\3\2\2\2\u07ea\u07eb\3\2\2\2\u07eb\u07ed"+ - "\3\2\2\2\u07ec\u07ea\3\2\2\2\u07ed\u07ee\7D\2\2\u07ee\u07ef\7\f\2\2\u07ef"+ - "\u0801\3\2\2\2\u07f0\u07f1\7\63\2\2\u07f1\u07f2\7D\2\2\u07f2\u0801\7\f"+ - "\2\2\u07f3\u0801\7.\2\2\u07f4\u07f5\58\35\2\u07f5\u07f6\7D\2\2\u07f6\u07f7"+ - "\7.\2\2\u07f7\u0801\3\2\2\2\u07f8\u07f9\7<\2\2\u07f9\u07fa\5\u01a2\u00d2"+ - "\2\u07fa\u07fb\7=\2\2\u07fb\u0801\3\2\2\2\u07fc\u0801\5\u017c\u00bf\2"+ - "\u07fd\u0801\5\u0184\u00c3\2\u07fe\u0801\5\u0190\u00c9\2\u07ff\u0801\5"+ - "\u0198\u00cd\2\u0800\u07d9\3\2\2\2\u0800\u07da\3\2\2\2\u0800\u07e5\3\2"+ - "\2\2\u0800\u07f0\3\2\2\2\u0800\u07f3\3\2\2\2\u0800\u07f4\3\2\2\2\u0800"+ - "\u07f8\3\2\2\2\u0800\u07fc\3\2\2\2\u0800\u07fd\3\2\2\2\u0800\u07fe\3\2"+ - "\2\2\u0800\u07ff\3\2\2\2\u0801\u0177\3\2\2\2\u0802\u0804\7\"\2\2\u0803"+ - "\u0805\5,\27\2\u0804\u0803\3\2\2\2\u0804\u0805\3\2\2\2\u0805\u0809\3\2"+ - "\2\2\u0806\u0808\5\u00e8u\2\u0807\u0806\3\2\2\2\u0808\u080b\3\2\2\2\u0809"+ - "\u0807\3\2\2\2\u0809\u080a\3\2\2\2\u080a\u080c\3\2\2\2\u080b\u0809\3\2"+ - "\2\2\u080c\u0817\7i\2\2\u080d\u0811\7D\2\2\u080e\u0810\5\u00e8u\2\u080f"+ - "\u080e\3\2\2\2\u0810\u0813\3\2\2\2\u0811\u080f\3\2\2\2\u0811\u0812\3\2"+ - "\2\2\u0812\u0814\3\2\2\2\u0813\u0811\3\2\2\2\u0814\u0816\7i\2\2\u0815"+ - "\u080d\3\2\2\2\u0816\u0819\3\2\2\2\u0817\u0815\3\2\2\2\u0817\u0818\3\2"+ - "\2\2\u0818\u081b\3\2\2\2\u0819\u0817\3\2\2\2\u081a\u081c\5\u017e\u00c0"+ - "\2\u081b\u081a\3\2\2\2\u081b\u081c\3\2\2\2\u081c\u081d\3\2\2\2\u081d\u081f"+ - "\7<\2\2\u081e\u0820\5\u0192\u00ca\2\u081f\u081e\3\2\2\2\u081f\u0820\3"+ - "\2\2\2\u0820\u0821\3\2\2\2\u0821\u0823\7=\2\2\u0822\u0824\5d\63\2\u0823"+ - "\u0822\3\2\2\2\u0823\u0824\3\2\2\2\u0824\u0856\3\2\2\2\u0825\u0826\5<"+ - "\37\2\u0826\u0827\7D\2\2\u0827\u0829\7\"\2\2\u0828\u082a\5,\27\2\u0829"+ - "\u0828\3\2\2\2\u0829\u082a\3\2\2\2\u082a\u082e\3\2\2\2\u082b\u082d\5\u00e8"+ - "u\2\u082c\u082b\3\2\2\2\u082d\u0830\3\2\2\2\u082e\u082c\3\2\2\2\u082e"+ - "\u082f\3\2\2\2\u082f\u0831\3\2\2\2\u0830\u082e\3\2\2\2\u0831\u0833\7i"+ - "\2\2\u0832\u0834\5\u017e\u00c0\2\u0833\u0832\3\2\2\2\u0833\u0834\3\2\2"+ - "\2\u0834\u0835\3\2\2\2\u0835\u0837\7<\2\2\u0836\u0838\5\u0192\u00ca\2"+ - "\u0837\u0836\3\2\2\2\u0837\u0838\3\2\2\2\u0838\u0839\3\2\2\2\u0839\u083b"+ - "\7=\2\2\u083a\u083c\5d\63\2\u083b\u083a\3\2\2\2\u083b\u083c\3\2\2\2\u083c"+ - "\u0856\3\2\2\2\u083d\u083e\5\u0164\u00b3\2\u083e\u083f\7D\2\2\u083f\u0841"+ - "\7\"\2\2\u0840\u0842\5,\27\2\u0841\u0840\3\2\2\2\u0841\u0842\3\2\2\2\u0842"+ - "\u0846\3\2\2\2\u0843\u0845\5\u00e8u\2\u0844\u0843\3\2\2\2\u0845\u0848"+ - "\3\2\2\2\u0846\u0844\3\2\2\2\u0846\u0847\3\2\2\2\u0847\u0849\3\2\2\2\u0848"+ - "\u0846\3\2\2\2\u0849\u084b\7i\2\2\u084a\u084c\5\u017e\u00c0\2\u084b\u084a"+ - "\3\2\2\2\u084b\u084c\3\2\2\2\u084c\u084d\3\2\2\2\u084d\u084f\7<\2\2\u084e"+ - "\u0850\5\u0192\u00ca\2\u084f\u084e\3\2\2\2\u084f\u0850\3\2\2\2\u0850\u0851"+ - "\3\2\2\2\u0851\u0853\7=\2\2\u0852\u0854\5d\63\2\u0853\u0852\3\2\2\2\u0853"+ - "\u0854\3\2\2\2\u0854\u0856\3\2\2\2\u0855\u0802\3\2\2\2\u0855\u0825\3\2"+ - "\2\2\u0855\u083d\3\2\2\2\u0856\u0179\3\2\2\2\u0857\u0858\7D\2\2\u0858"+ - "\u085a\7\"\2\2\u0859\u085b\5,\27\2\u085a\u0859\3\2\2\2\u085a\u085b\3\2"+ - "\2\2\u085b\u085f\3\2\2\2\u085c\u085e\5\u00e8u\2\u085d\u085c\3\2\2\2\u085e"+ - "\u0861\3\2\2\2\u085f\u085d\3\2\2\2\u085f\u0860\3\2\2\2\u0860\u0862\3\2"+ - "\2\2\u0861\u085f\3\2\2\2\u0862\u0864\7i\2\2\u0863\u0865\5\u017e\u00c0"+ - "\2\u0864\u0863\3\2\2\2\u0864\u0865\3\2\2\2\u0865\u0866\3\2\2\2\u0866\u0868"+ - "\7<\2\2\u0867\u0869\5\u0192\u00ca\2\u0868\u0867\3\2\2\2\u0868\u0869\3"+ - "\2\2\2\u0869\u086a\3\2\2\2\u086a\u086c\7=\2\2\u086b\u086d\5d\63\2\u086c"+ - "\u086b\3\2\2\2\u086c\u086d\3\2\2\2\u086d\u017b\3\2\2\2\u086e\u0870\7\""+ - "\2\2\u086f\u0871\5,\27\2\u0870\u086f\3\2\2\2\u0870\u0871\3\2\2\2\u0871"+ - "\u0875\3\2\2\2\u0872\u0874\5\u00e8u\2\u0873\u0872\3\2\2\2\u0874\u0877"+ - "\3\2\2\2\u0875\u0873\3\2\2\2\u0875\u0876\3\2\2\2\u0876\u0878\3\2\2\2\u0877"+ - "\u0875\3\2\2\2\u0878\u0883\7i\2\2\u0879\u087d\7D\2\2\u087a\u087c\5\u00e8"+ - "u\2\u087b\u087a\3\2\2\2\u087c\u087f\3\2\2\2\u087d\u087b\3\2\2\2\u087d"+ - "\u087e\3\2\2\2\u087e\u0880\3\2\2\2\u087f\u087d\3\2\2\2\u0880\u0882\7i"+ - "\2\2\u0881\u0879\3\2\2\2\u0882\u0885\3\2\2\2\u0883\u0881\3\2\2\2\u0883"+ - "\u0884\3\2\2\2\u0884\u0887\3\2\2\2\u0885\u0883\3\2\2\2\u0886\u0888\5\u017e"+ - "\u00c0\2\u0887\u0886\3\2\2\2\u0887\u0888\3\2\2\2\u0888\u0889\3\2\2\2\u0889"+ - "\u088b\7<\2\2\u088a\u088c\5\u0192\u00ca\2\u088b\u088a\3\2\2\2\u088b\u088c"+ - "\3\2\2\2\u088c\u088d\3\2\2\2\u088d\u088f\7=\2\2\u088e\u0890\5d\63\2\u088f"+ - "\u088e\3\2\2\2\u088f\u0890\3\2\2\2\u0890\u08aa\3\2\2\2\u0891\u0892\5<"+ - "\37\2\u0892\u0893\7D\2\2\u0893\u0895\7\"\2\2\u0894\u0896\5,\27\2\u0895"+ - "\u0894\3\2\2\2\u0895\u0896\3\2\2\2\u0896\u089a\3\2\2\2\u0897\u0899\5\u00e8"+ - "u\2\u0898\u0897\3\2\2\2\u0899\u089c\3\2\2\2\u089a\u0898\3\2\2\2\u089a"+ - "\u089b\3\2\2\2\u089b\u089d\3\2\2\2\u089c\u089a\3\2\2\2\u089d\u089f\7i"+ - "\2\2\u089e\u08a0\5\u017e\u00c0\2\u089f\u089e\3\2\2\2\u089f\u08a0\3\2\2"+ - "\2\u08a0\u08a1\3\2\2\2\u08a1\u08a3\7<\2\2\u08a2\u08a4\5\u0192\u00ca\2"+ - "\u08a3\u08a2\3\2\2\2\u08a3\u08a4\3\2\2\2\u08a4\u08a5\3\2\2\2\u08a5\u08a7"+ - "\7=\2\2\u08a6\u08a8\5d\63\2\u08a7\u08a6\3\2\2\2\u08a7\u08a8\3\2\2\2\u08a8"+ - "\u08aa\3\2\2\2\u08a9\u086e\3\2\2\2\u08a9\u0891\3\2\2\2\u08aa\u017d\3\2"+ - "\2\2\u08ab\u08af\5,\27\2\u08ac\u08ad\7G\2\2\u08ad\u08af\7F\2\2\u08ae\u08ab"+ - "\3\2\2\2\u08ae\u08ac\3\2\2\2\u08af\u017f\3\2\2\2\u08b0\u08b1\5\u0164\u00b3"+ - "\2\u08b1\u08b2\7D\2\2\u08b2\u08b3\7i\2\2\u08b3\u08be\3\2\2\2\u08b4\u08b5"+ - "\7+\2\2\u08b5\u08b6\7D\2\2\u08b6\u08be\7i\2\2\u08b7\u08b8\58\35\2\u08b8"+ - "\u08b9\7D\2\2\u08b9\u08ba\7+\2\2\u08ba\u08bb\7D\2\2\u08bb\u08bc\7i\2\2"+ - "\u08bc\u08be\3\2\2\2\u08bd\u08b0\3\2\2\2\u08bd\u08b4\3\2\2\2\u08bd\u08b7"+ - "\3\2\2\2\u08be\u0181\3\2\2\2\u08bf\u08c0\7D\2\2\u08c0\u08c1\7i\2\2\u08c1"+ - "\u0183\3\2\2\2\u08c2\u08c3\7+\2\2\u08c3\u08c4\7D\2\2\u08c4\u08cc\7i\2"+ - "\2\u08c5\u08c6\58\35\2\u08c6\u08c7\7D\2\2\u08c7\u08c8\7+\2\2\u08c8\u08c9"+ - "\7D\2\2\u08c9\u08ca\7i\2\2\u08ca\u08cc\3\2\2\2\u08cb\u08c2\3\2\2\2\u08cb"+ - "\u08c5\3\2\2\2\u08cc\u0185\3\2\2\2\u08cd\u08ce\5<\37\2\u08ce\u08cf\7@"+ - "\2\2\u08cf\u08d0\5\u01a2\u00d2\2\u08d0\u08d1\7A\2\2\u08d1\u08d8\3\2\2"+ - "\2\u08d2\u08d3\5\u016a\u00b6\2\u08d3\u08d4\7@\2\2\u08d4\u08d5\5\u01a2"+ - "\u00d2\2\u08d5\u08d6\7A\2\2\u08d6\u08d8\3\2\2\2\u08d7\u08cd\3\2\2\2\u08d7"+ - "\u08d2\3\2\2\2\u08d8\u08e0\3\2\2\2\u08d9\u08da\5\u0168\u00b5\2\u08da\u08db"+ - "\7@\2\2\u08db\u08dc\5\u01a2\u00d2\2\u08dc\u08dd\7A\2\2\u08dd\u08df\3\2"+ - "\2\2\u08de\u08d9\3\2\2\2\u08df\u08e2\3\2\2\2\u08e0\u08de\3\2\2\2\u08e0"+ - "\u08e1\3\2\2\2\u08e1\u0187\3\2\2\2\u08e2\u08e0\3\2\2\2\u08e3\u08e4\5\u0170"+ - "\u00b9\2\u08e4\u08e5\7@\2\2\u08e5\u08e6\5\u01a2\u00d2\2\u08e6\u08e7\7"+ - "A\2\2\u08e7\u08ef\3\2\2\2\u08e8\u08e9\5\u016e\u00b8\2\u08e9\u08ea\7@\2"+ - "\2\u08ea\u08eb\5\u01a2\u00d2\2\u08eb\u08ec\7A\2\2\u08ec\u08ee\3\2\2\2"+ - "\u08ed\u08e8\3\2\2\2\u08ee\u08f1\3\2\2\2\u08ef\u08ed\3\2\2\2\u08ef\u08f0"+ - "\3\2\2\2\u08f0\u0189\3\2\2\2\u08f1\u08ef\3\2\2\2\u08f2\u08f3\5<\37\2\u08f3"+ - "\u08f4\7@\2\2\u08f4\u08f5\5\u01a2\u00d2\2\u08f5\u08f6\7A\2\2\u08f6\u08fd"+ - "\3\2\2\2\u08f7\u08f8\5\u0176\u00bc\2\u08f8\u08f9\7@\2\2\u08f9\u08fa\5"+ - "\u01a2\u00d2\2\u08fa\u08fb\7A\2\2\u08fb\u08fd\3\2\2\2\u08fc\u08f2\3\2"+ - "\2\2\u08fc\u08f7\3\2\2\2\u08fd\u0905\3\2\2\2\u08fe\u08ff\5\u0174\u00bb"+ - "\2\u08ff\u0900\7@\2\2\u0900\u0901\5\u01a2\u00d2\2\u0901\u0902\7A\2\2\u0902"+ - "\u0904\3\2\2\2\u0903\u08fe\3\2\2\2\u0904\u0907\3\2\2\2\u0905\u0903\3\2"+ - "\2\2\u0905\u0906\3\2\2\2\u0906\u018b\3\2\2\2\u0907\u0905\3\2\2\2\u0908"+ - "\u0909\5> \2\u0909\u090b\7<\2\2\u090a\u090c\5\u0192\u00ca\2\u090b\u090a"+ - "\3\2\2\2\u090b\u090c\3\2\2\2\u090c\u090d\3\2\2\2\u090d\u090e\7=\2\2\u090e"+ - "\u094d\3\2\2\2\u090f\u0910\58\35\2\u0910\u0912\7D\2\2\u0911\u0913\5,\27"+ - "\2\u0912\u0911\3\2\2\2\u0912\u0913\3\2\2\2\u0913\u0914\3\2\2\2\u0914\u0915"+ - "\7i\2\2\u0915\u0917\7<\2\2\u0916\u0918\5\u0192\u00ca\2\u0917\u0916\3\2"+ - "\2\2\u0917\u0918\3\2\2\2\u0918\u0919\3\2\2\2\u0919\u091a\7=\2\2\u091a"+ - "\u094d\3\2\2\2\u091b\u091c\5<\37\2\u091c\u091e\7D\2\2\u091d\u091f\5,\27"+ - "\2\u091e\u091d\3\2\2\2\u091e\u091f\3\2\2\2\u091f\u0920\3\2\2\2\u0920\u0921"+ - "\7i\2\2\u0921\u0923\7<\2\2\u0922\u0924\5\u0192\u00ca\2\u0923\u0922\3\2"+ - "\2\2\u0923\u0924\3\2\2\2\u0924\u0925\3\2\2\2\u0925\u0926\7=\2\2\u0926"+ - "\u094d\3\2\2\2\u0927\u0928\5\u0164\u00b3\2\u0928\u092a\7D\2\2\u0929\u092b"+ - "\5,\27\2\u092a\u0929\3\2\2\2\u092a\u092b\3\2\2\2\u092b\u092c\3\2\2\2\u092c"+ - "\u092d\7i\2\2\u092d\u092f\7<\2\2\u092e\u0930\5\u0192\u00ca\2\u092f\u092e"+ - "\3\2\2\2\u092f\u0930\3\2\2\2\u0930\u0931\3\2\2\2\u0931\u0932\7=\2\2\u0932"+ - "\u094d\3\2\2\2\u0933\u0934\7+\2\2\u0934\u0936\7D\2\2\u0935\u0937\5,\27"+ - "\2\u0936\u0935\3\2\2\2\u0936\u0937\3\2\2\2\u0937\u0938\3\2\2\2\u0938\u0939"+ - "\7i\2\2\u0939\u093b\7<\2\2\u093a\u093c\5\u0192\u00ca\2\u093b\u093a\3\2"+ - "\2\2\u093b\u093c\3\2\2\2\u093c\u093d\3\2\2\2\u093d\u094d\7=\2\2\u093e"+ - "\u093f\58\35\2\u093f\u0940\7D\2\2\u0940\u0941\7+\2\2\u0941\u0943\7D\2"+ - "\2\u0942\u0944\5,\27\2\u0943\u0942\3\2\2\2\u0943\u0944\3\2\2\2\u0944\u0945"+ - "\3\2\2\2\u0945\u0946\7i\2\2\u0946\u0948\7<\2\2\u0947\u0949\5\u0192\u00ca"+ - "\2\u0948\u0947\3\2\2\2\u0948\u0949\3\2\2\2\u0949\u094a\3\2\2\2\u094a\u094b"+ - "\7=\2\2\u094b\u094d\3\2\2\2\u094c\u0908\3\2\2\2\u094c\u090f\3\2\2\2\u094c"+ - "\u091b\3\2\2\2\u094c\u0927\3\2\2\2\u094c\u0933\3\2\2\2\u094c\u093e\3\2"+ - "\2\2\u094d\u018d\3\2\2\2\u094e\u0950\7D\2\2\u094f\u0951\5,\27\2\u0950"+ - "\u094f\3\2\2\2\u0950\u0951\3\2\2\2\u0951\u0952\3\2\2\2\u0952\u0953\7i"+ - "\2\2\u0953\u0955\7<\2\2\u0954\u0956\5\u0192\u00ca\2\u0955\u0954\3\2\2"+ - "\2\u0955\u0956\3\2\2\2\u0956\u0957\3\2\2\2\u0957\u0958\7=\2\2\u0958\u018f"+ - "\3\2\2\2\u0959\u095a\5> \2\u095a\u095c\7<\2\2\u095b\u095d\5\u0192\u00ca"+ - "\2\u095c\u095b\3\2\2\2\u095c\u095d\3\2\2\2\u095d\u095e\3\2\2\2\u095e\u095f"+ - "\7=\2\2\u095f\u0992\3\2\2\2\u0960\u0961\58\35\2\u0961\u0963\7D\2\2\u0962"+ - "\u0964\5,\27\2\u0963\u0962\3\2\2\2\u0963\u0964\3\2\2\2\u0964\u0965\3\2"+ - "\2\2\u0965\u0966\7i\2\2\u0966\u0968\7<\2\2\u0967\u0969\5\u0192"; + "\u0085\2\u05ee\u05ef\7A\2\2\u05ef\u0105\3\2\2\2\u05f0\u05f1\5v<\2\u05f1"+ + "\u0107\3\2\2\2\u05f2\u05f4\5\u009eP\2\u05f3\u05f2\3\2\2\2\u05f4\u05f7"+ + "\3\2\2\2\u05f5\u05f3\3\2\2\2\u05f5\u05f6\3\2\2\2\u05f6\u05f8\3\2\2\2\u05f7"+ + "\u05f5\3\2\2\2\u05f8\u05f9\5\u0106\u0084\2\u05f9\u05fa\5n8\2\u05fa\u0109"+ + "\3\2\2\2\u05fb\u0602\5\u010e\u0088\2\u05fc\u0602\5\u0112\u008a\2\u05fd"+ + "\u0602\5\u011a\u008e\2\u05fe\u0602\5\u011c\u008f\2\u05ff\u0602\5\u012e"+ + "\u0098\2\u0600\u0602\5\u0134\u009b\2\u0601\u05fb\3\2\2\2\u0601\u05fc\3"+ + "\2\2\2\u0601\u05fd\3\2\2\2\u0601\u05fe\3\2\2\2\u0601\u05ff\3\2\2\2\u0601"+ + "\u0600\3\2\2\2\u0602\u010b\3\2\2\2\u0603\u0609\5\u010e\u0088\2\u0604\u0609"+ + "\5\u0114\u008b\2\u0605\u0609\5\u011e\u0090\2\u0606\u0609\5\u0130\u0099"+ + "\2\u0607\u0609\5\u0136\u009c\2\u0608\u0603\3\2\2\2\u0608\u0604\3\2\2\2"+ + "\u0608\u0605\3\2\2\2\u0608\u0606\3\2\2\2\u0608\u0607\3\2\2\2\u0609\u010d"+ + "\3\2\2\2\u060a\u0617\5\u00fe\u0080\2\u060b\u0617\5\u0110\u0089\2\u060c"+ + "\u0617\5\u0116\u008c\2\u060d\u0617\5\u0120\u0091\2\u060e\u0617\5\u0122"+ + "\u0092\2\u060f\u0617\5\u0132\u009a\2\u0610\u0617\5\u0146\u00a4\2\u0611"+ + "\u0617\5\u0148\u00a5\2\u0612\u0617\5\u014a\u00a6\2\u0613\u0617\5\u014e"+ + "\u00a8\2\u0614\u0617\5\u014c\u00a7\2\u0615\u0617\5\u0150\u00a9\2\u0616"+ + "\u060a\3\2\2\2\u0616\u060b\3\2\2\2\u0616\u060c\3\2\2\2\u0616\u060d\3\2"+ + "\2\2\u0616\u060e\3\2\2\2\u0616\u060f\3\2\2\2\u0616\u0610\3\2\2\2\u0616"+ + "\u0611\3\2\2\2\u0616\u0612\3\2\2\2\u0616\u0613\3\2\2\2\u0616\u0614\3\2"+ + "\2\2\u0616\u0615\3\2\2\2\u0617\u010f\3\2\2\2\u0618\u0619\7A\2\2\u0619"+ + "\u0111\3\2\2\2\u061a\u061b\7h\2\2\u061b\u061c\7J\2\2\u061c\u061d\5\u010a"+ + "\u0086\2\u061d\u0113\3\2\2\2\u061e\u061f\7h\2\2\u061f\u0620\7J\2\2\u0620"+ + "\u0621\5\u010c\u0087\2\u0621\u0115\3\2\2\2\u0622\u0623\5\u0118\u008d\2"+ + "\u0623\u0624\7A\2\2\u0624\u0117\3\2\2\2\u0625\u062d\5\u01ae\u00d8\2\u0626"+ + "\u062d\5\u01cc\u00e7\2\u0627\u062d\5\u01ce\u00e8\2\u0628\u062d\5\u01d4"+ + "\u00eb\2\u0629\u062d\5\u01d8\u00ed\2\u062a\u062d\5\u018c\u00c7\2\u062b"+ + "\u062d\5\u0178\u00bd\2\u062c\u0625\3\2\2\2\u062c\u0626\3\2\2\2\u062c\u0627"+ + "\3\2\2\2\u062c\u0628\3\2\2\2\u062c\u0629\3\2\2\2\u062c\u062a\3\2\2\2\u062c"+ + "\u062b\3\2\2\2\u062d\u0119\3\2\2\2\u062e\u062f\7\30\2\2\u062f\u0630\7"+ + ";\2\2\u0630\u0631\5\u01a2\u00d2\2\u0631\u0632\7<\2\2\u0632\u0633\5\u010a"+ + "\u0086\2\u0633\u011b\3\2\2\2\u0634\u0635\7\30\2\2\u0635\u0636\7;\2\2\u0636"+ + "\u0637\5\u01a2\u00d2\2\u0637\u0638\7<\2\2\u0638\u0639\5\u010c\u0087\2"+ + "\u0639\u063a\7\21\2\2\u063a\u063b\5\u010a\u0086\2\u063b\u011d\3\2\2\2"+ + "\u063c\u063d\7\30\2\2\u063d\u063e\7;\2\2\u063e\u063f\5\u01a2\u00d2\2\u063f"+ + "\u0640\7<\2\2\u0640\u0641\5\u010c\u0087\2\u0641\u0642\7\21\2\2\u0642\u0643"+ + "\5\u010c\u0087\2\u0643\u011f\3\2\2\2\u0644\u0645\7\4\2\2\u0645\u0646\5"+ + "\u01a2\u00d2\2\u0646\u0647\7A\2\2\u0647\u064f\3\2\2\2\u0648\u0649\7\4"+ + "\2\2\u0649\u064a\5\u01a2\u00d2\2\u064a\u064b\7J\2\2\u064b\u064c\5\u01a2"+ + "\u00d2\2\u064c\u064d\7A\2\2\u064d\u064f\3\2\2\2\u064e\u0644\3\2\2\2\u064e"+ + "\u0648\3\2\2\2\u064f\u0121\3\2\2\2\u0650\u0651\7+\2\2\u0651\u0652\7;\2"+ + "\2\u0652\u0653\5\u01a2\u00d2\2\u0653\u0654\7<\2\2\u0654\u0655\5\u0124"+ + "\u0093\2\u0655\u0123\3\2\2\2\u0656\u065a\7=\2\2\u0657\u0659\5\u0126\u0094"+ + "\2\u0658\u0657\3\2\2\2\u0659\u065c\3\2\2\2\u065a\u0658\3\2\2\2\u065a\u065b"+ + "\3\2\2\2\u065b\u0660\3\2\2\2\u065c\u065a\3\2\2\2\u065d\u065f\5\u012a\u0096"+ + "\2\u065e\u065d\3\2\2\2\u065f\u0662\3\2\2\2\u0660\u065e\3\2\2\2\u0660\u0661"+ + "\3\2\2\2\u0661\u0663\3\2\2\2\u0662\u0660\3\2\2\2\u0663\u0664\7>\2\2\u0664"+ + "\u0125\3\2\2\2\u0665\u0666\5\u0128\u0095\2\u0666\u0667\5\u0100\u0081\2"+ + "\u0667\u0127\3\2\2\2\u0668\u066c\5\u012a\u0096\2\u0669\u066b\5\u012a\u0096"+ + "\2\u066a\u0669\3\2\2\2\u066b\u066e\3\2\2\2\u066c\u066a\3\2\2\2\u066c\u066d"+ + "\3\2\2\2\u066d\u0129\3\2\2\2\u066e\u066c\3\2\2\2\u066f\u0670\7\b\2\2\u0670"+ + "\u0671\5\u01a0\u00d1\2\u0671\u0672\7J\2\2\u0672\u067a\3\2\2\2\u0673\u0674"+ + "\7\b\2\2\u0674\u0675\5\u012c\u0097\2\u0675\u0676\7J\2\2\u0676\u067a\3"+ + "\2\2\2\u0677\u0678\7\16\2\2\u0678\u067a\7J\2\2\u0679\u066f\3\2\2\2\u0679"+ + "\u0673\3\2\2\2\u0679\u0677\3\2\2\2\u067a\u012b\3\2\2\2\u067b\u067c\7h"+ + "\2\2\u067c\u012d\3\2\2\2\u067d\u067e\7\64\2\2\u067e\u067f\7;\2\2\u067f"+ + "\u0680\5\u01a2\u00d2\2\u0680\u0681\7<\2\2\u0681\u0682\5\u010a\u0086\2"+ + "\u0682\u012f\3\2\2\2\u0683\u0684\7\64\2\2\u0684\u0685\7;\2\2\u0685\u0686"+ + "\5\u01a2\u00d2\2\u0686\u0687\7<\2\2\u0687\u0688\5\u010c\u0087\2\u0688"+ + "\u0131\3\2\2\2\u0689\u068a\7\17\2\2\u068a\u068b\5\u010a\u0086\2\u068b"+ + "\u068c\7\64\2\2\u068c\u068d\7;\2\2\u068d\u068e\5\u01a2\u00d2\2\u068e\u068f"+ + "\7<\2\2\u068f\u0690\7A\2\2\u0690\u0133\3\2\2\2\u0691\u0694\5\u0138\u009d"+ + "\2\u0692\u0694\5\u0142\u00a2\2\u0693\u0691\3\2\2\2\u0693\u0692\3\2\2\2"+ + "\u0694\u0135\3\2\2\2\u0695\u0698\5\u013a\u009e\2\u0696\u0698\5\u0144\u00a3"+ + "\2\u0697\u0695\3\2\2\2\u0697\u0696\3\2\2\2\u0698\u0137\3\2\2\2\u0699\u069a"+ + "\7\27\2\2\u069a\u069c\7;\2\2\u069b\u069d\5\u013c\u009f\2\u069c\u069b\3"+ + "\2\2\2\u069c\u069d\3\2\2\2\u069d\u069e\3\2\2\2\u069e\u06a0\7A\2\2\u069f"+ + "\u06a1\5\u01a2\u00d2\2\u06a0\u069f\3\2\2\2\u06a0\u06a1\3\2\2\2\u06a1\u06a2"+ + "\3\2\2\2\u06a2\u06a4\7A\2\2\u06a3\u06a5\5\u013e\u00a0\2\u06a4\u06a3\3"+ + "\2\2\2\u06a4\u06a5\3\2\2\2\u06a5\u06a6\3\2\2\2\u06a6\u06a7\7<\2\2\u06a7"+ + "\u06a8\5\u010a\u0086\2\u06a8\u0139\3\2\2\2\u06a9\u06aa\7\27\2\2\u06aa"+ + "\u06ac\7;\2\2\u06ab\u06ad\5\u013c\u009f\2\u06ac\u06ab\3\2\2\2\u06ac\u06ad"+ + "\3\2\2\2\u06ad\u06ae\3\2\2\2\u06ae\u06b0\7A\2\2\u06af\u06b1\5\u01a2\u00d2"+ + "\2\u06b0\u06af\3\2\2\2\u06b0\u06b1\3\2\2\2\u06b1\u06b2\3\2\2\2\u06b2\u06b4"+ + "\7A\2\2\u06b3\u06b5\5\u013e\u00a0\2\u06b4\u06b3\3\2\2\2\u06b4\u06b5\3"+ + "\2\2\2\u06b5\u06b6\3\2\2\2\u06b6\u06b7\7<\2\2\u06b7\u06b8\5\u010c\u0087"+ + "\2\u06b8\u013b\3\2\2\2\u06b9\u06bc\5\u0140\u00a1\2\u06ba\u06bc\5\u0108"+ + "\u0085\2\u06bb\u06b9\3\2\2\2\u06bb\u06ba\3\2\2\2\u06bc\u013d\3\2\2\2\u06bd"+ + "\u06be\5\u0140\u00a1\2\u06be\u013f\3\2\2\2\u06bf\u06c4\5\u0118\u008d\2"+ + "\u06c0\u06c1\7B\2\2\u06c1\u06c3\5\u0118\u008d\2\u06c2\u06c0\3\2\2\2\u06c3"+ + "\u06c6\3\2\2\2\u06c4\u06c2\3\2\2\2\u06c4\u06c5\3\2\2\2\u06c5\u0141\3\2"+ + "\2\2\u06c6\u06c4\3\2\2\2\u06c7\u06c8\7\27\2\2\u06c8\u06cc\7;\2\2\u06c9"+ + "\u06cb\5\u009eP\2\u06ca\u06c9\3\2\2\2\u06cb\u06ce\3\2\2\2\u06cc\u06ca"+ + "\3\2\2\2\u06cc\u06cd\3\2\2\2\u06cd\u06cf\3\2\2\2\u06ce\u06cc\3\2\2\2\u06cf"+ + "\u06d0\5v<\2\u06d0\u06d1\5r:\2\u06d1\u06d2\7J\2\2\u06d2\u06d3\5\u01a2"+ + "\u00d2\2\u06d3\u06d4\7<\2\2\u06d4\u06d5\5\u010a\u0086\2\u06d5\u0143\3"+ + "\2\2\2\u06d6\u06d7\7\27\2\2\u06d7\u06db\7;\2\2\u06d8\u06da\5\u009eP\2"+ + "\u06d9\u06d8\3\2\2\2\u06da\u06dd\3\2\2\2\u06db\u06d9\3\2\2\2\u06db\u06dc"+ + "\3\2\2\2\u06dc\u06de\3\2\2\2\u06dd\u06db\3\2\2\2\u06de\u06df\5v<\2\u06df"+ + "\u06e0\5r:\2\u06e0\u06e1\7J\2\2\u06e1\u06e2\5\u01a2\u00d2\2\u06e2\u06e3"+ + "\7<\2\2\u06e3\u06e4\5\u010c\u0087\2\u06e4\u0145\3\2\2\2\u06e5\u06e7\7"+ + "\6\2\2\u06e6\u06e8\7h\2\2\u06e7\u06e6\3\2\2\2\u06e7\u06e8\3\2\2\2\u06e8"+ + "\u06e9\3\2\2\2\u06e9\u06ea\7A\2\2\u06ea\u0147\3\2\2\2\u06eb\u06ed\7\r"+ + "\2\2\u06ec\u06ee\7h\2\2\u06ed\u06ec\3\2\2\2\u06ed\u06ee\3\2\2\2\u06ee"+ + "\u06ef\3\2\2\2\u06ef\u06f0\7A\2\2\u06f0\u0149\3\2\2\2\u06f1\u06f3\7&\2"+ + "\2\u06f2\u06f4\5\u01a2\u00d2\2\u06f3\u06f2\3\2\2\2\u06f3\u06f4\3\2\2\2"+ + "\u06f4\u06f5\3\2\2\2\u06f5\u06f6\7A\2\2\u06f6\u014b\3\2\2\2\u06f7\u06f8"+ + "\7.\2\2\u06f8\u06f9\5\u01a2\u00d2\2\u06f9\u06fa\7A\2\2\u06fa\u014d\3\2"+ + "\2\2\u06fb\u06fc\7,\2\2\u06fc\u06fd\7;\2\2\u06fd\u06fe\5\u01a2\u00d2\2"+ + "\u06fe\u06ff\7<\2\2\u06ff\u0700\5\u00fe\u0080\2\u0700\u014f\3\2\2\2\u0701"+ + "\u0702\7\61\2\2\u0702\u0703\5\u00fe\u0080\2\u0703\u0704\5\u0152\u00aa"+ + "\2\u0704\u070e\3\2\2\2\u0705\u0706\7\61\2\2\u0706\u0708\5\u00fe\u0080"+ + "\2\u0707\u0709\5\u0152\u00aa\2\u0708\u0707\3\2\2\2\u0708\u0709\3\2\2\2"+ + "\u0709\u070a\3\2\2\2\u070a\u070b\5\u015a\u00ae\2\u070b\u070e\3\2\2\2\u070c"+ + "\u070e\5\u015c\u00af\2\u070d\u0701\3\2\2\2\u070d\u0705\3\2\2\2\u070d\u070c"+ + "\3\2\2\2\u070e\u0151\3\2\2\2\u070f\u0713\5\u0154\u00ab\2\u0710\u0712\5"+ + "\u0154\u00ab\2\u0711\u0710\3\2\2\2\u0712\u0715\3\2\2\2\u0713\u0711\3\2"+ + "\2\2\u0713\u0714\3\2\2\2\u0714\u0153\3\2\2\2\u0715\u0713\3\2\2\2\u0716"+ + "\u0717\7\t\2\2\u0717\u0718\7;\2\2\u0718\u0719\5\u0156\u00ac\2\u0719\u071a"+ + "\7<\2\2\u071a\u071b\5\u00fe\u0080\2\u071b\u0155\3\2\2\2\u071c\u071e\5"+ + "\u009eP\2\u071d\u071c\3\2\2\2\u071e\u0721\3\2\2\2\u071f\u071d\3\2\2\2"+ + "\u071f\u0720\3\2\2\2\u0720\u0722\3\2\2\2\u0721\u071f\3\2\2\2\u0722\u0723"+ + "\5\u0158\u00ad\2\u0723\u0724\5r:\2\u0724\u0157\3\2\2\2\u0725\u072a\5~"+ + "@\2\u0726\u0727\7X\2\2\u0727\u0729\5\22\n\2\u0728\u0726\3\2\2\2\u0729"+ + "\u072c\3\2\2\2\u072a\u0728\3\2\2\2\u072a\u072b\3\2\2\2\u072b\u0159\3\2"+ + "\2\2\u072c\u072a\3\2\2\2\u072d\u072e\7\25\2\2\u072e\u072f\5\u00fe\u0080"+ + "\2\u072f\u015b\3\2\2\2\u0730\u0731\7\61\2\2\u0731\u0732\5\u015e\u00b0"+ + "\2\u0732\u0734\5\u00fe\u0080\2\u0733\u0735\5\u0152\u00aa\2\u0734\u0733"+ + "\3\2\2\2\u0734\u0735\3\2\2\2\u0735\u0737\3\2\2\2\u0736\u0738\5\u015a\u00ae"+ + "\2\u0737\u0736\3\2\2\2\u0737\u0738\3\2\2\2\u0738\u015d\3\2\2\2\u0739\u073a"+ + "\7;\2\2\u073a\u073c\5\u0160\u00b1\2\u073b\u073d\7A\2\2\u073c\u073b\3\2"+ + "\2\2\u073c\u073d\3\2\2\2\u073d\u073e\3\2\2\2\u073e\u073f\7<\2\2\u073f"+ + "\u015f\3\2\2\2\u0740\u0745\5\u0162\u00b2\2\u0741\u0742\7A\2\2\u0742\u0744"+ + "\5\u0162\u00b2\2\u0743\u0741\3\2\2\2\u0744\u0747\3\2\2\2\u0745\u0743\3"+ + "\2\2\2\u0745\u0746\3\2\2\2\u0746\u0161\3\2\2\2\u0747\u0745\3\2\2\2\u0748"+ + "\u074a\5\u009eP\2\u0749\u0748\3\2\2\2\u074a\u074d\3\2\2\2\u074b\u0749"+ + "\3\2\2\2\u074b\u074c\3\2\2\2\u074c\u074e\3\2\2\2\u074d\u074b\3\2\2\2\u074e"+ + "\u074f\5v<\2\u074f\u0750\5r:\2\u0750\u0751\7D\2\2\u0751\u0752\5\u01a2"+ + "\u00d2\2\u0752\u0163\3\2\2\2\u0753\u0756\5\u0172\u00ba\2\u0754\u0756\5"+ + "\u019a\u00ce\2\u0755\u0753\3\2\2\2\u0755\u0754\3\2\2\2\u0756\u075a\3\2"+ + "\2\2\u0757\u0759\5\u016c\u00b7\2\u0758\u0757\3\2\2\2\u0759\u075c\3\2\2"+ + "\2\u075a\u0758\3\2\2\2\u075a\u075b\3\2\2\2\u075b\u0165\3\2\2\2\u075c\u075a"+ + "\3\2\2\2\u075d\u077b\5\2\2\2\u075e\u0763\58\35\2\u075f\u0760\7?\2\2\u0760"+ + "\u0762\7@\2\2\u0761\u075f\3\2\2\2\u0762\u0765\3\2\2\2\u0763\u0761\3\2"+ + "\2\2\u0763\u0764\3\2\2\2\u0764\u0766\3\2\2\2\u0765\u0763\3\2\2\2\u0766"+ + "\u0767\7C\2\2\u0767\u0768\7\13\2\2\u0768\u077b\3\2\2\2\u0769\u076a\7\62"+ + "\2\2\u076a\u076b\7C\2\2\u076b\u077b\7\13\2\2\u076c\u077b\7-\2\2\u076d"+ + "\u076e\58\35\2\u076e\u076f\7C\2\2\u076f\u0770\7-\2\2\u0770\u077b\3\2\2"+ + "\2\u0771\u0772\7;\2\2\u0772\u0773\5\u01a2\u00d2\2\u0773\u0774\7<\2\2\u0774"+ + "\u077b\3\2\2\2\u0775\u077b\5\u0178\u00bd\2\u0776\u077b\5\u0180\u00c1\2"+ + "\u0777\u077b\5\u0186\u00c4\2\u0778\u077b\5\u018c\u00c7\2\u0779\u077b\5"+ + "\u0194\u00cb\2\u077a\u075d\3\2\2\2\u077a\u075e\3\2\2\2\u077a\u0769\3\2"+ + "\2\2\u077a\u076c\3\2\2\2\u077a\u076d\3\2\2\2\u077a\u0771\3\2\2\2\u077a"+ + "\u0775\3\2\2\2\u077a\u0776\3\2\2\2\u077a\u0777\3\2\2\2\u077a\u0778\3\2"+ + "\2\2\u077a\u0779\3\2\2\2\u077b\u0167\3\2\2\2\u077c\u077d\3\2\2\2\u077d"+ + "\u0169\3\2\2\2\u077e\u079b\5\2\2\2\u077f\u0784\58\35\2\u0780\u0781\7?"+ + "\2\2\u0781\u0783\7@\2\2\u0782\u0780\3\2\2\2\u0783\u0786\3\2\2\2\u0784"+ + "\u0782\3\2\2\2\u0784\u0785\3\2\2\2\u0785\u0787\3\2\2\2\u0786\u0784\3\2"+ + "\2\2\u0787\u0788\7C\2\2\u0788\u0789\7\13\2\2\u0789\u079b\3\2\2\2\u078a"+ + "\u078b\7\62\2\2\u078b\u078c\7C\2\2\u078c\u079b\7\13\2\2\u078d\u079b\7"+ + "-\2\2\u078e\u078f\58\35\2\u078f\u0790\7C\2\2\u0790\u0791\7-\2\2\u0791"+ + "\u079b\3\2\2\2\u0792\u0793\7;\2\2\u0793\u0794\5\u01a2\u00d2\2\u0794\u0795"+ + "\7<\2\2\u0795\u079b\3\2\2\2\u0796\u079b\5\u0178\u00bd\2\u0797\u079b\5"+ + "\u0180\u00c1\2\u0798\u079b\5\u018c\u00c7\2\u0799\u079b\5\u0194\u00cb\2"+ + "\u079a\u077e\3\2\2\2\u079a\u077f\3\2\2\2\u079a\u078a\3\2\2\2\u079a\u078d"+ + "\3\2\2\2\u079a\u078e\3\2\2\2\u079a\u0792\3\2\2\2\u079a\u0796\3\2\2\2\u079a"+ + "\u0797\3\2\2\2\u079a\u0798\3\2\2\2\u079a\u0799\3\2\2\2\u079b\u016b\3\2"+ + "\2\2\u079c\u07a2\5\u017a\u00be\2\u079d\u07a2\5\u0182\u00c2\2\u079e\u07a2"+ + "\5\u0188\u00c5\2\u079f\u07a2\5\u018e\u00c8\2\u07a0\u07a2\5\u0196\u00cc"+ + "\2\u07a1\u079c\3\2\2\2\u07a1\u079d\3\2\2\2\u07a1\u079e\3\2\2\2\u07a1\u079f"+ + "\3\2\2\2\u07a1\u07a0\3\2\2\2\u07a2\u016d\3\2\2\2\u07a3\u07a4\3\2\2\2\u07a4"+ + "\u016f\3\2\2\2\u07a5\u07aa\5\u017a\u00be\2\u07a6\u07aa\5\u0182\u00c2\2"+ + "\u07a7\u07aa\5\u018e\u00c8\2\u07a8\u07aa\5\u0196\u00cc\2\u07a9\u07a5\3"+ + "\2\2\2\u07a9\u07a6\3\2\2\2\u07a9\u07a7\3\2\2\2\u07a9\u07a8\3\2\2\2\u07aa"+ + "\u0171\3\2\2\2\u07ab\u07d4\5\2\2\2\u07ac\u07b1\58\35\2\u07ad\u07ae\7?"+ + "\2\2\u07ae\u07b0\7@\2\2\u07af\u07ad\3\2\2\2\u07b0\u07b3\3\2\2\2\u07b1"+ + "\u07af\3\2\2\2\u07b1\u07b2\3\2\2\2\u07b2\u07b4\3\2\2\2\u07b3\u07b1\3\2"+ + "\2\2\u07b4\u07b5\7C\2\2\u07b5\u07b6\7\13\2\2\u07b6\u07d4\3\2\2\2\u07b7"+ + "\u07bc\5x=\2\u07b8\u07b9\7?\2\2\u07b9\u07bb\7@\2\2\u07ba\u07b8\3\2\2\2"+ + "\u07bb\u07be\3\2\2\2\u07bc\u07ba\3\2\2\2\u07bc\u07bd\3\2\2\2\u07bd\u07bf"+ + "\3\2\2\2\u07be\u07bc\3\2\2\2\u07bf\u07c0\7C\2\2\u07c0\u07c1\7\13\2\2\u07c1"+ + "\u07d4\3\2\2\2\u07c2\u07c3\7\62\2\2\u07c3\u07c4\7C\2\2\u07c4\u07d4\7\13"+ + "\2\2\u07c5\u07d4\7-\2\2\u07c6\u07c7\58\35\2\u07c7\u07c8\7C\2\2\u07c8\u07c9"+ + "\7-\2\2\u07c9\u07d4\3\2\2\2\u07ca\u07cb\7;\2\2\u07cb\u07cc\5\u01a2\u00d2"+ + "\2\u07cc\u07cd\7<\2\2\u07cd\u07d4\3\2\2\2\u07ce\u07d4\5\u017c\u00bf\2"+ + "\u07cf\u07d4\5\u0184\u00c3\2\u07d0\u07d4\5\u018a\u00c6\2\u07d1\u07d4\5"+ + "\u0190\u00c9\2\u07d2\u07d4\5\u0198\u00cd\2\u07d3\u07ab\3\2\2\2\u07d3\u07ac"+ + "\3\2\2\2\u07d3\u07b7\3\2\2\2\u07d3\u07c2\3\2\2\2\u07d3\u07c5\3\2\2\2\u07d3"+ + "\u07c6\3\2\2\2\u07d3\u07ca\3\2\2\2\u07d3\u07ce\3\2\2\2\u07d3\u07cf\3\2"+ + "\2\2\u07d3\u07d0\3\2\2\2\u07d3\u07d1\3\2\2\2\u07d3\u07d2\3\2\2\2\u07d4"+ + "\u0173\3\2\2\2\u07d5\u07d6\3\2\2\2\u07d6\u0175\3\2\2\2\u07d7\u07ff\5\2"+ + "\2\2\u07d8\u07dd\58\35\2\u07d9\u07da\7?\2\2\u07da\u07dc\7@\2\2\u07db\u07d9"+ + "\3\2\2\2\u07dc\u07df\3\2\2\2\u07dd\u07db\3\2\2\2\u07dd\u07de\3\2\2\2\u07de"+ + "\u07e0\3\2\2\2\u07df\u07dd\3\2\2\2\u07e0\u07e1\7C\2\2\u07e1\u07e2\7\13"+ + "\2\2\u07e2\u07ff\3\2\2\2\u07e3\u07e8\5x=\2\u07e4\u07e5\7?\2\2\u07e5\u07e7"+ + "\7@\2\2\u07e6\u07e4\3\2\2\2\u07e7\u07ea\3\2\2\2\u07e8\u07e6\3\2\2\2\u07e8"+ + "\u07e9\3\2\2\2\u07e9\u07eb\3\2\2\2\u07ea\u07e8\3\2\2\2\u07eb\u07ec\7C"+ + "\2\2\u07ec\u07ed\7\13\2\2\u07ed\u07ff\3\2\2\2\u07ee\u07ef\7\62\2\2\u07ef"+ + "\u07f0\7C\2\2\u07f0\u07ff\7\13\2\2\u07f1\u07ff\7-\2\2\u07f2\u07f3\58\35"+ + "\2\u07f3\u07f4\7C\2\2\u07f4\u07f5\7-\2\2\u07f5\u07ff\3\2\2\2\u07f6\u07f7"+ + "\7;\2\2\u07f7\u07f8\5\u01a2\u00d2\2\u07f8\u07f9\7<\2\2\u07f9\u07ff\3\2"+ + "\2\2\u07fa\u07ff\5\u017c\u00bf\2\u07fb\u07ff\5\u0184\u00c3\2\u07fc\u07ff"+ + "\5\u0190\u00c9\2\u07fd\u07ff\5\u0198\u00cd\2\u07fe\u07d7\3\2\2\2\u07fe"+ + "\u07d8\3\2\2\2\u07fe\u07e3\3\2\2\2\u07fe\u07ee\3\2\2\2\u07fe\u07f1\3\2"+ + "\2\2\u07fe\u07f2\3\2\2\2\u07fe\u07f6\3\2\2\2\u07fe\u07fa\3\2\2\2\u07fe"+ + "\u07fb\3\2\2\2\u07fe\u07fc\3\2\2\2\u07fe\u07fd\3\2\2\2\u07ff\u0177\3\2"+ + "\2\2\u0800\u0802\7!\2\2\u0801\u0803\5,\27\2\u0802\u0801\3\2\2\2\u0802"+ + "\u0803\3\2\2\2\u0803\u0807\3\2\2\2\u0804\u0806\5\u00e8u\2\u0805\u0804"+ + "\3\2\2\2\u0806\u0809\3\2\2\2\u0807\u0805\3\2\2\2\u0807\u0808\3\2\2\2\u0808"+ + "\u080a\3\2\2\2\u0809\u0807\3\2\2\2\u080a\u0815\7h\2\2\u080b\u080f\7C\2"+ + "\2\u080c\u080e\5\u00e8u\2\u080d\u080c\3\2\2\2\u080e\u0811\3\2\2\2\u080f"+ + "\u080d\3\2\2\2\u080f\u0810\3\2\2\2\u0810\u0812\3\2\2\2\u0811\u080f\3\2"+ + "\2\2\u0812\u0814\7h\2\2\u0813\u080b\3\2\2\2\u0814\u0817\3\2\2\2\u0815"+ + "\u0813\3\2\2\2\u0815\u0816\3\2\2\2\u0816\u0819\3\2\2\2\u0817\u0815\3\2"+ + "\2\2\u0818\u081a\5\u017e\u00c0\2\u0819\u0818\3\2\2\2\u0819\u081a\3\2\2"+ + "\2\u081a\u081b\3\2\2\2\u081b\u081d\7;\2\2\u081c\u081e\5\u0192\u00ca\2"+ + "\u081d\u081c\3\2\2\2\u081d\u081e\3\2\2\2\u081e\u081f\3\2\2\2\u081f\u0821"+ + "\7<\2\2\u0820\u0822\5d\63\2\u0821\u0820\3\2\2\2\u0821\u0822\3\2\2\2\u0822"+ + "\u0854\3\2\2\2\u0823\u0824\5<\37\2\u0824\u0825\7C\2\2\u0825\u0827\7!\2"+ + "\2\u0826\u0828\5,\27\2\u0827\u0826\3\2\2\2\u0827\u0828\3\2\2\2\u0828\u082c"+ + "\3\2\2\2\u0829\u082b\5\u00e8u\2\u082a\u0829\3\2\2\2\u082b\u082e\3\2\2"+ + "\2\u082c\u082a\3\2\2\2\u082c\u082d\3\2\2\2\u082d\u082f\3\2\2\2\u082e\u082c"+ + "\3\2\2\2\u082f\u0831\7h\2\2\u0830\u0832\5\u017e\u00c0\2\u0831\u0830\3"+ + "\2\2\2\u0831\u0832\3\2\2\2\u0832\u0833\3\2\2\2\u0833\u0835\7;\2\2\u0834"+ + "\u0836\5\u0192\u00ca\2\u0835\u0834\3\2\2\2\u0835\u0836\3\2\2\2\u0836\u0837"+ + "\3\2\2\2\u0837\u0839\7<\2\2\u0838\u083a\5d\63\2\u0839\u0838\3\2\2\2\u0839"+ + "\u083a\3\2\2\2\u083a\u0854\3\2\2\2\u083b\u083c\5\u0164\u00b3\2\u083c\u083d"+ + "\7C\2\2\u083d\u083f\7!\2\2\u083e\u0840\5,\27\2\u083f\u083e\3\2\2\2\u083f"+ + "\u0840\3\2\2\2\u0840\u0844\3\2\2\2\u0841\u0843\5\u00e8u\2\u0842\u0841"+ + "\3\2\2\2\u0843\u0846\3\2\2\2\u0844\u0842\3\2\2\2\u0844\u0845\3\2\2\2\u0845"+ + "\u0847\3\2\2\2\u0846\u0844\3\2\2\2\u0847\u0849\7h\2\2\u0848\u084a\5\u017e"+ + "\u00c0\2\u0849\u0848\3\2\2\2\u0849\u084a\3\2\2\2\u084a\u084b\3\2\2\2\u084b"+ + "\u084d\7;\2\2\u084c\u084e\5\u0192\u00ca\2\u084d\u084c\3\2\2\2\u084d\u084e"+ + "\3\2\2\2\u084e\u084f\3\2\2\2\u084f\u0851\7<\2\2\u0850\u0852\5d\63\2\u0851"+ + "\u0850\3\2\2\2\u0851\u0852\3\2\2\2\u0852\u0854\3\2\2\2\u0853\u0800\3\2"+ + "\2\2\u0853\u0823\3\2\2\2\u0853\u083b\3\2\2\2\u0854\u0179\3\2\2\2\u0855"+ + "\u0856\7C\2\2\u0856\u0858\7!\2\2\u0857\u0859\5,\27\2\u0858\u0857\3\2\2"+ + "\2\u0858\u0859\3\2\2\2\u0859\u085d\3\2\2\2\u085a\u085c\5\u00e8u\2\u085b"+ + "\u085a\3\2\2\2\u085c\u085f\3\2\2\2\u085d\u085b\3\2\2\2\u085d\u085e\3\2"+ + "\2\2\u085e\u0860\3\2\2\2\u085f\u085d\3\2\2\2\u0860\u0862\7h\2\2\u0861"+ + "\u0863\5\u017e\u00c0\2\u0862\u0861\3\2\2\2\u0862\u0863\3\2\2\2\u0863\u0864"+ + "\3\2\2\2\u0864\u0866\7;\2\2\u0865\u0867\5\u0192\u00ca\2\u0866\u0865\3"+ + "\2\2\2\u0866\u0867\3\2\2\2\u0867\u0868\3\2\2\2\u0868\u086a\7<\2\2\u0869"+ + "\u086b\5d\63\2\u086a\u0869\3\2\2\2\u086a\u086b\3\2\2\2\u086b\u017b\3\2"+ + "\2\2\u086c\u086e\7!\2\2\u086d\u086f\5,\27\2\u086e\u086d\3\2\2\2\u086e"+ + "\u086f\3\2\2\2\u086f\u0873\3\2\2\2\u0870\u0872\5\u00e8u\2\u0871\u0870"+ + "\3\2\2\2\u0872\u0875\3\2\2\2\u0873\u0871\3\2\2\2\u0873\u0874\3\2\2\2\u0874"+ + "\u0876\3\2\2\2\u0875\u0873\3\2\2\2\u0876\u0881\7h\2\2\u0877\u087b\7C\2"+ + "\2\u0878\u087a\5\u00e8u\2\u0879\u0878\3\2\2\2\u087a\u087d\3\2\2\2\u087b"+ + "\u0879\3\2\2\2\u087b\u087c\3\2\2\2\u087c\u087e\3\2\2\2\u087d\u087b\3\2"+ + "\2\2\u087e\u0880\7h\2\2\u087f\u0877\3\2\2\2\u0880\u0883\3\2\2\2\u0881"+ + "\u087f\3\2\2\2\u0881\u0882\3\2\2\2\u0882\u0885\3\2\2\2\u0883\u0881\3\2"+ + "\2\2\u0884\u0886\5\u017e\u00c0\2\u0885\u0884\3\2\2\2\u0885\u0886\3\2\2"+ + "\2\u0886\u0887\3\2\2\2\u0887\u0889\7;\2\2\u0888\u088a\5\u0192\u00ca\2"+ + "\u0889\u0888\3\2\2\2\u0889\u088a\3\2\2\2\u088a\u088b\3\2\2\2\u088b\u088d"+ + "\7<\2\2\u088c\u088e\5d\63\2\u088d\u088c\3\2\2\2\u088d\u088e\3\2\2\2\u088e"+ + "\u08a8\3\2\2\2\u088f\u0890\5<\37\2\u0890\u0891\7C\2\2\u0891\u0893\7!\2"+ + "\2\u0892\u0894\5,\27\2\u0893\u0892\3\2\2\2\u0893\u0894\3\2\2\2\u0894\u0898"+ + "\3\2\2\2\u0895\u0897\5\u00e8u\2\u0896\u0895\3\2\2\2\u0897\u089a\3\2\2"+ + "\2\u0898\u0896\3\2\2\2\u0898\u0899\3\2\2\2\u0899\u089b\3\2\2\2\u089a\u0898"+ + "\3\2\2\2\u089b\u089d\7h\2\2\u089c\u089e\5\u017e\u00c0\2\u089d\u089c\3"+ + "\2\2\2\u089d\u089e\3\2\2\2\u089e\u089f\3\2\2\2\u089f\u08a1\7;\2\2\u08a0"+ + "\u08a2\5\u0192\u00ca\2\u08a1\u08a0\3\2\2\2\u08a1\u08a2\3\2\2\2\u08a2\u08a3"+ + "\3\2\2\2\u08a3\u08a5\7<\2\2\u08a4\u08a6\5d\63\2\u08a5\u08a4\3\2\2\2\u08a5"+ + "\u08a6\3\2\2\2\u08a6\u08a8\3\2\2\2\u08a7\u086c\3\2\2\2\u08a7\u088f\3\2"+ + "\2\2\u08a8\u017d\3\2\2\2\u08a9\u08ad\5,\27\2\u08aa\u08ab\7F\2\2\u08ab"+ + "\u08ad\7E\2\2\u08ac\u08a9\3\2\2\2\u08ac\u08aa\3\2\2\2\u08ad\u017f\3\2"+ + "\2\2\u08ae\u08af\5\u0164\u00b3\2\u08af\u08b0\7C\2\2\u08b0\u08b1\7h\2\2"+ + "\u08b1\u08bc\3\2\2\2\u08b2\u08b3\7*\2\2\u08b3\u08b4\7C\2\2\u08b4\u08bc"+ + "\7h\2\2\u08b5\u08b6\58\35\2\u08b6\u08b7\7C\2\2\u08b7\u08b8\7*\2\2\u08b8"+ + "\u08b9\7C\2\2\u08b9\u08ba\7h\2\2\u08ba\u08bc\3\2\2\2\u08bb\u08ae\3\2\2"+ + "\2\u08bb\u08b2\3\2\2\2\u08bb\u08b5\3\2\2\2\u08bc\u0181\3\2\2\2\u08bd\u08be"+ + "\7C\2\2\u08be\u08bf\7h\2\2\u08bf\u0183\3\2\2\2\u08c0\u08c1\7*\2\2\u08c1"+ + "\u08c2\7C\2\2\u08c2\u08ca\7h\2\2\u08c3\u08c4\58\35\2\u08c4\u08c5\7C\2"+ + "\2\u08c5\u08c6\7*\2\2\u08c6\u08c7\7C\2\2\u08c7\u08c8\7h\2\2\u08c8\u08ca"+ + "\3\2\2\2\u08c9\u08c0\3\2\2\2\u08c9\u08c3\3\2\2\2\u08ca\u0185\3\2\2\2\u08cb"+ + "\u08cc\5<\37\2\u08cc\u08cd\7?\2\2\u08cd\u08ce\5\u01a2\u00d2\2\u08ce\u08cf"+ + "\7@\2\2\u08cf\u08d6\3\2\2\2\u08d0\u08d1\5\u016a\u00b6\2\u08d1\u08d2\7"+ + "?\2\2\u08d2\u08d3\5\u01a2\u00d2\2\u08d3\u08d4\7@\2\2\u08d4\u08d6\3\2\2"+ + "\2\u08d5\u08cb\3\2\2\2\u08d5\u08d0\3\2\2\2\u08d6\u08de\3\2\2\2\u08d7\u08d8"+ + "\5\u0168\u00b5\2\u08d8\u08d9\7?\2\2\u08d9\u08da\5\u01a2\u00d2\2\u08da"+ + "\u08db\7@\2\2\u08db\u08dd\3\2\2\2\u08dc\u08d7\3\2\2\2\u08dd\u08e0\3\2"+ + "\2\2\u08de\u08dc\3\2\2\2\u08de\u08df\3\2\2\2\u08df\u0187\3\2\2\2\u08e0"+ + "\u08de\3\2\2\2\u08e1\u08e2\5\u0170\u00b9\2\u08e2\u08e3\7?\2\2\u08e3\u08e4"+ + "\5\u01a2\u00d2\2\u08e4\u08e5\7@\2\2\u08e5\u08ed\3\2\2\2\u08e6\u08e7\5"+ + "\u016e\u00b8\2\u08e7\u08e8\7?\2\2\u08e8\u08e9\5\u01a2\u00d2\2\u08e9\u08ea"+ + "\7@\2\2\u08ea\u08ec\3\2\2\2\u08eb\u08e6\3\2\2\2\u08ec\u08ef\3\2\2\2\u08ed"+ + "\u08eb\3\2\2\2\u08ed\u08ee\3\2\2\2\u08ee\u0189\3\2\2\2\u08ef\u08ed\3\2"+ + "\2\2\u08f0\u08f1\5<\37\2\u08f1\u08f2\7?\2\2\u08f2\u08f3\5\u01a2\u00d2"+ + "\2\u08f3\u08f4\7@\2\2\u08f4\u08fb\3\2\2\2\u08f5\u08f6\5\u0176\u00bc\2"+ + "\u08f6\u08f7\7?\2\2\u08f7\u08f8\5\u01a2\u00d2\2\u08f8\u08f9\7@\2\2\u08f9"+ + "\u08fb\3\2\2\2\u08fa\u08f0\3\2\2\2\u08fa\u08f5\3\2\2\2\u08fb\u0903\3\2"+ + "\2\2\u08fc\u08fd\5\u0174\u00bb\2\u08fd\u08fe\7?\2\2\u08fe\u08ff\5\u01a2"+ + "\u00d2\2\u08ff\u0900\7@\2\2\u0900\u0902\3\2\2\2\u0901\u08fc\3\2\2\2\u0902"+ + "\u0905\3\2\2\2\u0903\u0901\3\2\2\2\u0903\u0904\3\2\2\2\u0904\u018b\3\2"+ + "\2\2\u0905\u0903\3\2\2\2\u0906\u0907\5> \2\u0907\u0909\7;\2\2\u0908\u090a"+ + "\5\u0192\u00ca\2\u0909\u0908\3\2\2\2\u0909\u090a\3\2\2\2\u090a\u090b\3"+ + "\2\2\2\u090b\u090c\7<\2\2\u090c\u094b\3\2\2\2\u090d\u090e\58\35\2\u090e"+ + "\u0910\7C\2\2\u090f\u0911\5,\27\2\u0910\u090f\3\2\2\2\u0910\u0911\3\2"+ + "\2\2\u0911\u0912\3\2\2\2\u0912\u0913\7h\2\2\u0913\u0915\7;\2\2\u0914\u0916"+ + "\5\u0192\u00ca\2\u0915\u0914\3\2\2\2\u0915\u0916\3\2\2\2\u0916\u0917\3"+ + "\2\2\2\u0917\u0918\7<\2\2\u0918\u094b\3\2\2\2\u0919\u091a\5<\37\2\u091a"+ + "\u091c\7C\2\2\u091b\u091d\5,\27\2\u091c\u091b\3\2\2\2\u091c\u091d\3\2"+ + "\2\2\u091d\u091e\3\2\2\2\u091e\u091f\7h\2\2\u091f\u0921\7;\2\2\u0920\u0922"+ + "\5\u0192\u00ca\2\u0921\u0920\3\2\2\2\u0921\u0922\3\2\2\2\u0922\u0923\3"+ + "\2\2\2\u0923\u0924\7<\2\2\u0924\u094b\3\2\2\2\u0925\u0926\5\u0164\u00b3"+ + "\2\u0926\u0928\7C\2\2\u0927\u0929\5,\27\2\u0928\u0927\3\2\2\2\u0928\u0929"+ + "\3\2\2\2\u0929\u092a\3\2\2\2\u092a\u092b\7h\2\2\u092b\u092d\7;\2\2\u092c"+ + "\u092e\5\u0192\u00ca\2\u092d\u092c\3\2\2\2\u092d\u092e\3\2\2\2\u092e\u092f"+ + "\3\2\2\2\u092f\u0930\7<\2\2\u0930\u094b\3\2\2\2\u0931\u0932\7*\2\2\u0932"+ + "\u0934\7C\2\2\u0933\u0935\5,\27\2\u0934\u0933\3\2\2\2\u0934\u0935\3\2"+ + "\2\2\u0935\u0936\3\2\2\2\u0936\u0937\7h\2\2\u0937\u0939\7;\2\2\u0938\u093a"+ + "\5\u0192\u00ca\2\u0939\u0938\3\2\2\2\u0939\u093a\3\2\2\2\u093a\u093b\3"+ + "\2\2\2\u093b\u094b\7<\2\2\u093c\u093d\58\35\2\u093d\u093e\7C\2\2\u093e"+ + "\u093f\7*\2\2\u093f\u0941\7C\2\2\u0940\u0942\5,\27\2\u0941\u0940\3\2\2"+ + "\2\u0941\u0942\3\2\2\2\u0942\u0943\3\2\2\2\u0943\u0944\7h\2\2\u0944\u0946"+ + "\7;\2\2\u0945\u0947\5\u0192\u00ca\2\u0946\u0945\3\2\2\2\u0946\u0947\3"+ + "\2\2\2\u0947\u0948\3\2\2\2\u0948\u0949\7<\2\2\u0949\u094b\3\2\2\2\u094a"+ + "\u0906\3\2\2\2\u094a\u090d\3\2\2\2\u094a\u0919\3\2\2\2\u094a\u0925\3\2"+ + "\2\2\u094a\u0931\3\2\2\2\u094a\u093c\3\2\2\2\u094b\u018d\3\2\2\2\u094c"+ + "\u094e\7C\2\2\u094d\u094f\5,\27\2\u094e\u094d\3\2\2\2\u094e\u094f\3\2"+ + "\2\2\u094f\u0950\3\2\2\2\u0950\u0951\7h\2\2\u0951\u0953\7;\2\2\u0952\u0954"+ + "\5\u0192\u00ca\2\u0953\u0952\3\2\2\2\u0953\u0954\3\2\2\2\u0954\u0955\3"+ + "\2\2\2\u0955\u0956\7<\2\2\u0956\u018f\3\2\2\2\u0957\u0958\5> \2\u0958"+ + "\u095a\7;\2\2\u0959\u095b\5\u0192\u00ca\2\u095a\u0959\3\2\2\2\u095a\u095b"+ + "\3\2\2\2\u095b\u095c\3\2\2\2\u095c\u095d\7<\2\2\u095d\u0990\3\2\2\2\u095e"+ + "\u095f\58\35\2\u095f\u0961\7C\2\2\u0960\u0962\5,\27\2\u0961\u0960\3\2"+ + "\2\2\u0961\u0962\3\2\2\2\u0962\u0963\3\2\2\2\u0963\u0964\7h\2\2\u0964"+ + "\u0966\7;\2\2\u0965\u0967\5\u0192\u00ca\2\u0966\u0965\3\2\2\2\u0966\u0967"+ + "\3\2\2\2\u0967\u0968\3\2\2\2\u0968\u0969"; private static final String _serializedATNSegment1 = - "\u00ca\2\u0968\u0967\3\2\2\2\u0968\u0969\3\2\2\2\u0969\u096a\3\2\2\2\u096a"+ - "\u096b\7=\2\2\u096b\u0992\3\2\2\2\u096c\u096d\5<\37\2\u096d\u096f\7D\2"+ - "\2\u096e\u0970\5,\27\2\u096f\u096e\3\2\2\2\u096f\u0970\3\2\2\2\u0970\u0971"+ - "\3\2\2\2\u0971\u0972\7i\2\2\u0972\u0974\7<\2\2\u0973\u0975\5\u0192\u00ca"+ - "\2\u0974\u0973\3\2\2\2\u0974\u0975\3\2\2\2\u0975\u0976\3\2\2\2\u0976\u0977"+ - "\7=\2\2\u0977\u0992\3\2\2\2\u0978\u0979\7+\2\2\u0979\u097b\7D\2\2\u097a"+ - "\u097c\5,\27\2\u097b\u097a\3\2\2\2\u097b\u097c\3\2\2\2\u097c\u097d\3\2"+ - "\2\2\u097d\u097e\7i\2\2\u097e\u0980\7<\2\2\u097f\u0981\5\u0192\u00ca\2"+ - "\u0980\u097f\3\2\2\2\u0980\u0981\3\2\2\2\u0981\u0982\3\2\2\2\u0982\u0992"+ - "\7=\2\2\u0983\u0984\58\35\2\u0984\u0985\7D\2\2\u0985\u0986\7+\2\2\u0986"+ - "\u0988\7D\2\2\u0987\u0989\5,\27\2\u0988\u0987\3\2\2\2\u0988\u0989\3\2"+ - "\2\2\u0989\u098a\3\2\2\2\u098a\u098b\7i\2\2\u098b\u098d\7<\2\2\u098c\u098e"+ - "\5\u0192\u00ca\2\u098d\u098c\3\2\2\2\u098d\u098e\3\2\2\2\u098e\u098f\3"+ - "\2\2\2\u098f\u0990\7=\2\2\u0990\u0992\3\2\2\2\u0991\u0959\3\2\2\2\u0991"+ - "\u0960\3\2\2\2\u0991\u096c\3\2\2\2\u0991\u0978\3\2\2\2\u0991\u0983\3\2"+ - "\2\2\u0992\u0191\3\2\2\2\u0993\u0998\5\u01a2\u00d2\2\u0994\u0995\7C\2"+ - "\2\u0995\u0997\5\u01a2\u00d2\2\u0996\u0994\3\2\2\2\u0997\u099a\3\2\2\2"+ - "\u0998\u0996\3\2\2\2\u0998\u0999\3\2\2\2\u0999\u0193\3\2\2\2\u099a\u0998"+ - "\3\2\2\2\u099b\u099c\5<\37\2\u099c\u099e\7]\2\2\u099d\u099f\5,\27\2\u099e"+ - "\u099d\3\2\2\2\u099e\u099f\3\2\2\2\u099f\u09a0\3\2\2\2\u09a0\u09a1\7i"+ - "\2\2\u09a1\u09cb\3\2\2\2\u09a2\u09a3\5\16\b\2\u09a3\u09a5\7]\2\2\u09a4"+ - "\u09a6\5,\27\2\u09a5\u09a4\3\2\2\2\u09a5\u09a6\3\2\2\2\u09a6\u09a7\3\2"+ - "\2\2\u09a7\u09a8\7i\2\2\u09a8\u09cb\3\2\2\2\u09a9\u09aa\5\u0164\u00b3"+ - "\2\u09aa\u09ac\7]\2\2\u09ab\u09ad\5,\27\2\u09ac\u09ab\3\2\2\2\u09ac\u09ad"+ - "\3\2\2\2\u09ad\u09ae\3\2\2\2\u09ae\u09af\7i\2\2\u09af\u09cb\3\2\2\2\u09b0"+ - "\u09b1\7+\2\2\u09b1\u09b3\7]\2\2\u09b2\u09b4\5,\27\2\u09b3\u09b2\3\2\2"+ - "\2\u09b3\u09b4\3\2\2\2\u09b4\u09b5\3\2\2\2\u09b5\u09cb\7i\2\2\u09b6\u09b7"+ - "\58\35\2\u09b7\u09b8\7D\2\2\u09b8\u09b9\7+\2\2\u09b9\u09bb\7]\2\2\u09ba"+ - "\u09bc\5,\27\2\u09bb\u09ba\3\2\2\2\u09bb\u09bc\3\2\2\2\u09bc\u09bd\3\2"+ - "\2\2\u09bd\u09be\7i\2\2\u09be\u09cb\3\2\2\2\u09bf\u09c0\5\22\n\2\u09c0"+ - "\u09c2\7]\2\2\u09c1\u09c3\5,\27\2\u09c2\u09c1\3\2\2\2\u09c2\u09c3\3\2"+ - "\2\2\u09c3\u09c4\3\2\2\2\u09c4\u09c5\7\"\2\2\u09c5\u09cb\3\2\2\2\u09c6"+ - "\u09c7\5 \21\2\u09c7\u09c8\7]\2\2\u09c8\u09c9\7\"\2\2\u09c9\u09cb\3\2"+ - "\2\2\u09ca\u099b\3\2\2\2\u09ca\u09a2\3\2\2\2\u09ca\u09a9\3\2\2\2\u09ca"+ - "\u09b0\3\2\2\2\u09ca\u09b6\3\2\2\2\u09ca\u09bf\3\2\2\2\u09ca\u09c6\3\2"+ - "\2\2\u09cb\u0195\3\2\2\2\u09cc\u09ce\7]\2\2\u09cd\u09cf\5,\27\2\u09ce"+ - "\u09cd\3\2\2\2\u09ce\u09cf\3\2\2\2\u09cf\u09d0\3\2\2\2\u09d0\u09d1\7i"+ - "\2\2\u09d1\u0197\3\2\2\2\u09d2\u09d3\5<\37\2\u09d3\u09d5\7]\2\2\u09d4"+ - "\u09d6\5,\27\2\u09d5\u09d4\3\2\2\2\u09d5\u09d6\3\2\2\2\u09d6\u09d7\3\2"+ - "\2\2\u09d7\u09d8\7i\2\2\u09d8\u09fb\3\2\2\2\u09d9\u09da\5\16\b\2\u09da"+ - "\u09dc\7]\2\2\u09db\u09dd\5,\27\2\u09dc\u09db\3\2\2\2\u09dc\u09dd\3\2"+ - "\2\2\u09dd\u09de\3\2\2\2\u09de\u09df\7i\2\2\u09df\u09fb\3\2\2\2\u09e0"+ - "\u09e1\7+\2\2\u09e1\u09e3\7]\2\2\u09e2\u09e4\5,\27\2\u09e3\u09e2\3\2\2"+ - "\2\u09e3\u09e4\3\2\2\2\u09e4\u09e5\3\2\2\2\u09e5\u09fb\7i\2\2\u09e6\u09e7"+ - "\58\35\2\u09e7\u09e8\7D\2\2\u09e8\u09e9\7+\2\2\u09e9\u09eb\7]\2\2\u09ea"+ - "\u09ec\5,\27\2\u09eb\u09ea\3\2\2\2\u09eb\u09ec\3\2\2\2\u09ec\u09ed\3\2"+ - "\2\2\u09ed\u09ee\7i\2\2\u09ee\u09fb\3\2\2\2\u09ef\u09f0\5\22\n\2\u09f0"+ - "\u09f2\7]\2\2\u09f1\u09f3\5,\27\2\u09f2\u09f1\3\2\2\2\u09f2\u09f3\3\2"+ - "\2\2\u09f3\u09f4\3\2\2\2\u09f4\u09f5\7\"\2\2\u09f5\u09fb\3\2\2\2\u09f6"+ - "\u09f7\5 \21\2\u09f7\u09f8\7]\2\2\u09f8\u09f9\7\"\2\2\u09f9\u09fb\3\2"+ - "\2\2\u09fa\u09d2\3\2\2\2\u09fa\u09d9\3\2\2\2\u09fa\u09e0\3\2\2\2\u09fa"+ - "\u09e6\3\2\2\2\u09fa\u09ef\3\2\2\2\u09fa\u09f6\3\2\2\2\u09fb\u0199\3\2"+ - "\2\2\u09fc\u09fd\7\"\2\2\u09fd\u09fe\5\6\4\2\u09fe\u0a00\5\u019c\u00cf"+ - "\2\u09ff\u0a01\5\"\22\2\u0a00\u09ff\3\2\2\2\u0a00\u0a01\3\2\2\2\u0a01"+ - "\u0a13\3\2\2\2\u0a02\u0a03\7\"\2\2\u0a03\u0a04\5\20\t\2\u0a04\u0a06\5"+ - "\u019c\u00cf\2\u0a05\u0a07\5\"\22\2\u0a06\u0a05\3\2\2\2\u0a06\u0a07\3"+ - "\2\2\2\u0a07\u0a13\3\2\2\2\u0a08\u0a09\7\"\2\2\u0a09\u0a0a\5\6\4\2\u0a0a"+ - "\u0a0b\5\"\22\2\u0a0b\u0a0c\5\u00fa~\2\u0a0c\u0a13\3\2\2\2\u0a0d\u0a0e"+ - "\7\"\2\2\u0a0e\u0a0f\5\20\t\2\u0a0f\u0a10\5\"\22\2\u0a10\u0a11\5\u00fa"+ - "~\2\u0a11\u0a13\3\2\2\2\u0a12\u09fc\3\2\2\2\u0a12\u0a02\3\2\2\2\u0a12"+ - "\u0a08\3\2\2\2\u0a12\u0a0d\3\2\2\2\u0a13\u019b\3\2\2\2\u0a14\u0a18\5\u019e"+ - "\u00d0\2\u0a15\u0a17\5\u019e\u00d0\2\u0a16\u0a15\3\2\2\2\u0a17\u0a1a\3"+ - "\2\2\2\u0a18\u0a16\3\2\2\2\u0a18\u0a19\3\2\2\2\u0a19\u019d\3\2\2\2\u0a1a"+ - "\u0a18\3\2\2\2\u0a1b\u0a1d\5\u00e8u\2\u0a1c\u0a1b\3\2\2\2\u0a1d\u0a20"+ - "\3\2\2\2\u0a1e\u0a1c\3\2\2\2\u0a1e\u0a1f\3\2\2\2\u0a1f\u0a21\3\2\2\2\u0a20"+ - "\u0a1e\3\2\2\2\u0a21\u0a22\7@\2\2\u0a22\u0a23\5\u01a2\u00d2\2\u0a23\u0a24"+ - "\7A\2\2\u0a24\u019f\3\2\2\2\u0a25\u0a26\5\u01a2\u00d2\2\u0a26\u01a1\3"+ - "\2\2\2\u0a27\u0a2a\5\u01a4\u00d3\2\u0a28\u0a2a\5\u01ac\u00d7\2\u0a29\u0a27"+ - "\3\2\2\2\u0a29\u0a28\3\2\2\2\u0a2a\u01a3\3\2\2\2\u0a2b\u0a2c\5\u01a6\u00d4"+ - "\2\u0a2c\u0a2d\7\\\2\2\u0a2d\u0a2e\5\u01aa\u00d6\2\u0a2e\u01a5\3\2\2\2"+ - "\u0a2f\u0a36\7i\2\2\u0a30\u0a32\7<\2\2\u0a31\u0a33\5\u0098M\2\u0a32\u0a31"+ - "\3\2\2\2\u0a32\u0a33\3\2\2\2\u0a33\u0a34\3\2\2\2\u0a34\u0a36\7=\2\2\u0a35"+ - "\u0a2f\3\2\2\2\u0a35\u0a30\3\2\2\2\u0a36\u01a7\3\2\2\2\u0a37\u0a3c\7i"+ - "\2\2\u0a38\u0a39\7C\2\2\u0a39\u0a3b\7i\2\2\u0a3a\u0a38\3\2\2\2\u0a3b\u0a3e"+ - "\3\2\2\2\u0a3c\u0a3a\3\2\2\2\u0a3c\u0a3d\3\2\2\2\u0a3d\u01a9\3\2\2\2\u0a3e"+ - "\u0a3c\3\2\2\2\u0a3f\u0a42\5\u01a2\u00d2\2\u0a40\u0a42\5\u00fe\u0080\2"+ - "\u0a41\u0a3f\3\2\2\2\u0a41\u0a40\3\2\2\2\u0a42\u01ab\3\2\2\2\u0a43\u0a46"+ - "\5\u01b4\u00db\2\u0a44\u0a46\5\u01ae\u00d8\2\u0a45\u0a43\3\2\2\2\u0a45"+ - "\u0a44\3\2\2\2\u0a46\u01ad\3\2\2\2\u0a47\u0a48\5\u01b0\u00d9\2\u0a48\u0a49"+ - "\5\u01b2\u00da\2\u0a49\u0a4a\5\u01a2\u00d2\2\u0a4a\u01af\3\2\2\2\u0a4b"+ - "\u0a4f\5<\37\2\u0a4c\u0a4f\5\u0180\u00c1\2\u0a4d\u0a4f\5\u0186\u00c4\2"+ - "\u0a4e\u0a4b\3\2\2\2\u0a4e\u0a4c\3\2\2\2\u0a4e\u0a4d\3\2\2\2\u0a4f\u01b1"+ - "\3\2\2\2\u0a50\u0a51\t\5\2\2\u0a51\u01b3\3\2\2\2\u0a52\u0a5a\5\u01b6\u00dc"+ - "\2\u0a53\u0a54\5\u01b6\u00dc\2\u0a54\u0a55\7J\2\2\u0a55\u0a56\5\u01a2"+ - "\u00d2\2\u0a56\u0a57\7K\2\2\u0a57\u0a58\5\u01b4\u00db\2\u0a58\u0a5a\3"+ - "\2\2\2\u0a59\u0a52\3\2\2\2\u0a59\u0a53\3\2\2\2\u0a5a\u01b5\3\2\2\2\u0a5b"+ - "\u0a5c\b\u00dc\1\2\u0a5c\u0a5d\5\u01b8\u00dd\2\u0a5d\u0a63\3\2\2\2\u0a5e"+ - "\u0a5f\f\3\2\2\u0a5f\u0a60\7Q\2\2\u0a60\u0a62\5\u01b8\u00dd\2\u0a61\u0a5e"+ - "\3\2\2\2\u0a62\u0a65\3\2\2\2\u0a63\u0a61\3\2\2\2\u0a63\u0a64\3\2\2\2\u0a64"+ - "\u01b7\3\2\2\2\u0a65\u0a63\3\2\2\2\u0a66\u0a67\b\u00dd\1\2\u0a67\u0a68"+ - "\5\u01ba\u00de\2\u0a68\u0a6e\3\2\2\2\u0a69\u0a6a\f\3\2\2\u0a6a\u0a6b\7"+ - "P\2\2\u0a6b\u0a6d\5\u01ba\u00de\2\u0a6c\u0a69\3\2\2\2\u0a6d\u0a70\3\2"+ - "\2\2\u0a6e\u0a6c\3\2\2\2\u0a6e\u0a6f\3\2\2\2\u0a6f\u01b9\3\2\2\2\u0a70"+ - "\u0a6e\3\2\2\2\u0a71\u0a72\b\u00de\1\2\u0a72\u0a73\5\u01bc\u00df\2\u0a73"+ - "\u0a79\3\2\2\2\u0a74\u0a75\f\3\2\2\u0a75\u0a76\7Y\2\2\u0a76\u0a78\5\u01bc"+ - "\u00df\2\u0a77\u0a74\3\2\2\2\u0a78\u0a7b\3\2\2\2\u0a79\u0a77\3\2\2\2\u0a79"+ - "\u0a7a\3\2\2\2\u0a7a\u01bb\3\2\2\2\u0a7b\u0a79\3\2\2\2\u0a7c\u0a7d\b\u00df"+ - "\1\2\u0a7d\u0a7e\5\u01be\u00e0\2\u0a7e\u0a84\3\2\2\2\u0a7f\u0a80\f\3\2"+ - "\2\u0a80\u0a81\7Z\2\2\u0a81\u0a83\5\u01be\u00e0\2\u0a82\u0a7f\3\2\2\2"+ - "\u0a83\u0a86\3\2\2\2\u0a84\u0a82\3\2\2\2\u0a84\u0a85\3\2\2\2\u0a85\u01bd"+ - "\3\2\2\2\u0a86\u0a84\3\2\2\2\u0a87\u0a88\b\u00e0\1\2\u0a88\u0a89\5\u01c0"+ - "\u00e1\2\u0a89\u0a8f\3\2\2\2\u0a8a\u0a8b\f\3\2\2\u0a8b\u0a8c\7X\2\2\u0a8c"+ - "\u0a8e\5\u01c0\u00e1\2\u0a8d\u0a8a\3\2\2\2\u0a8e\u0a91\3\2\2\2\u0a8f\u0a8d"+ - "\3\2\2\2\u0a8f\u0a90\3\2\2\2\u0a90\u01bf\3\2\2\2\u0a91\u0a8f\3\2\2\2\u0a92"+ - "\u0a93\b\u00e1\1\2\u0a93\u0a94\5\u01c2\u00e2\2\u0a94\u0a9d\3\2\2\2\u0a95"+ - "\u0a96\f\4\2\2\u0a96\u0a97\7L\2\2\u0a97\u0a9c\5\u01c2\u00e2\2\u0a98\u0a99"+ - "\f\3\2\2\u0a99\u0a9a\7O\2\2\u0a9a\u0a9c\5\u01c2\u00e2\2\u0a9b\u0a95\3"+ - "\2\2\2\u0a9b\u0a98\3\2\2\2\u0a9c\u0a9f\3\2\2\2\u0a9d\u0a9b\3\2\2\2\u0a9d"+ - "\u0a9e\3\2\2\2\u0a9e\u01c1\3\2\2\2\u0a9f\u0a9d\3\2\2\2\u0aa0\u0aa1\b\u00e2"+ - "\1\2\u0aa1\u0aa2\5\u01c4\u00e3\2\u0aa2\u0ab4\3\2\2\2\u0aa3\u0aa4\f\7\2"+ - "\2\u0aa4\u0aa5\7G\2\2\u0aa5\u0ab3\5\u01c4\u00e3\2\u0aa6\u0aa7\f\6\2\2"+ - "\u0aa7\u0aa8\7F\2\2\u0aa8\u0ab3\5\u01c4\u00e3\2\u0aa9\u0aaa\f\5\2\2\u0aaa"+ - "\u0aab\7M\2\2\u0aab\u0ab3\5\u01c4\u00e3\2\u0aac\u0aad\f\4\2\2\u0aad\u0aae"+ - "\7N\2\2\u0aae\u0ab3\5\u01c4\u00e3\2\u0aaf\u0ab0\f\3\2\2\u0ab0\u0ab1\7"+ - "\35\2\2\u0ab1\u0ab3\5\16\b\2\u0ab2\u0aa3\3\2\2\2\u0ab2\u0aa6\3\2\2\2\u0ab2"+ - "\u0aa9\3\2\2\2\u0ab2\u0aac\3\2\2\2\u0ab2\u0aaf\3\2\2\2\u0ab3\u0ab6\3\2"+ - "\2\2\u0ab4\u0ab2\3\2\2\2\u0ab4\u0ab5\3\2\2\2\u0ab5\u01c3\3\2\2\2\u0ab6"+ - "\u0ab4\3\2\2\2\u0ab7\u0ab8\b\u00e3\1\2\u0ab8\u0ab9\5\u01c6\u00e4\2\u0ab9"+ - "\u0ac9\3\2\2\2\u0aba\u0abb\f\5\2\2\u0abb\u0abc\7G\2\2\u0abc\u0abd\7G\2"+ - "\2\u0abd\u0ac8\5\u01c6\u00e4\2\u0abe\u0abf\f\4\2\2\u0abf\u0ac0\7F\2\2"+ - "\u0ac0\u0ac1\7F\2\2\u0ac1\u0ac8\5\u01c6\u00e4\2\u0ac2\u0ac3\f\3\2\2\u0ac3"+ - "\u0ac4\7F\2\2\u0ac4\u0ac5\7F\2\2\u0ac5\u0ac6\7F\2\2\u0ac6\u0ac8\5\u01c6"+ - "\u00e4\2\u0ac7\u0aba\3\2\2\2\u0ac7\u0abe\3\2\2\2\u0ac7\u0ac2\3\2\2\2\u0ac8"+ - "\u0acb\3\2\2\2\u0ac9\u0ac7\3\2\2\2\u0ac9\u0aca\3\2\2\2\u0aca\u01c5\3\2"+ - "\2\2\u0acb\u0ac9\3\2\2\2\u0acc\u0acd\b\u00e4\1\2\u0acd\u0ace\5\u01c8\u00e5"+ - "\2\u0ace\u0ad7\3\2\2\2\u0acf\u0ad0\f\4\2\2\u0ad0\u0ad1\7T\2\2\u0ad1\u0ad6"+ - "\5\u01c8\u00e5\2\u0ad2\u0ad3\f\3\2\2\u0ad3\u0ad4\7U\2\2\u0ad4\u0ad6\5"+ - "\u01c8\u00e5\2\u0ad5\u0acf\3\2\2\2\u0ad5\u0ad2\3\2\2\2\u0ad6\u0ad9\3\2"+ - "\2\2\u0ad7\u0ad5\3\2\2\2\u0ad7\u0ad8\3\2\2\2\u0ad8\u01c7\3\2\2\2\u0ad9"+ - "\u0ad7\3\2\2\2\u0ada\u0adb\b\u00e5\1\2\u0adb\u0adc\5\u01ca\u00e6\2\u0adc"+ - "\u0ae8\3\2\2\2\u0add\u0ade\f\5\2\2\u0ade\u0adf\7V\2\2\u0adf\u0ae7\5\u01ca"+ - "\u00e6\2\u0ae0\u0ae1\f\4\2\2\u0ae1\u0ae2\7W\2\2\u0ae2\u0ae7\5\u01ca\u00e6"+ - "\2\u0ae3\u0ae4\f\3\2\2\u0ae4\u0ae5\7[\2\2\u0ae5\u0ae7\5\u01ca\u00e6\2"+ - "\u0ae6\u0add\3\2\2\2\u0ae6\u0ae0\3\2\2\2\u0ae6\u0ae3\3\2\2\2\u0ae7\u0aea"+ - "\3\2\2\2\u0ae8\u0ae6\3\2\2\2\u0ae8\u0ae9\3\2\2\2\u0ae9\u01c9\3\2\2\2\u0aea"+ - "\u0ae8\3\2\2\2\u0aeb\u0af3\5\u01cc\u00e7\2\u0aec\u0af3\5\u01ce\u00e8\2"+ - "\u0aed\u0aee\7T\2\2\u0aee\u0af3\5\u01ca\u00e6\2\u0aef\u0af0\7U\2\2\u0af0"+ - "\u0af3\5\u01ca\u00e6\2\u0af1\u0af3\5\u01d0\u00e9\2\u0af2\u0aeb\3\2\2\2"+ - "\u0af2\u0aec\3\2\2\2\u0af2\u0aed\3\2\2\2\u0af2\u0aef\3\2\2\2\u0af2\u0af1"+ - "\3\2\2\2\u0af3\u01cb\3\2\2\2\u0af4\u0af5\7R\2\2\u0af5\u0af6\5\u01ca\u00e6"+ - "\2\u0af6\u01cd\3\2\2\2\u0af7\u0af8\7S\2\2\u0af8\u0af9\5\u01ca\u00e6\2"+ - "\u0af9\u01cf\3\2\2\2\u0afa\u0b01\5\u01d2\u00ea\2\u0afb\u0afc\7I\2\2\u0afc"+ - "\u0b01\5\u01ca\u00e6\2\u0afd\u0afe\7H\2\2\u0afe\u0b01\5\u01ca\u00e6\2"+ - "\u0aff\u0b01\5\u01dc\u00ef\2\u0b00\u0afa\3\2\2\2\u0b00\u0afb\3\2\2\2\u0b00"+ - "\u0afd\3\2\2\2\u0b00\u0aff\3\2\2\2\u0b01\u01d1\3\2\2\2\u0b02\u0b05\5\u0164"+ - "\u00b3\2\u0b03\u0b05\5<\37\2\u0b04\u0b02\3\2\2\2\u0b04\u0b03\3\2\2\2\u0b05"+ - "\u0b0a\3\2\2\2\u0b06\u0b09\5\u01d6\u00ec\2\u0b07\u0b09\5\u01da\u00ee\2"+ - "\u0b08\u0b06\3\2\2\2\u0b08\u0b07\3\2\2\2\u0b09\u0b0c\3\2\2\2\u0b0a\u0b08"+ - "\3\2\2\2\u0b0a\u0b0b\3\2\2\2\u0b0b\u01d3\3\2\2\2\u0b0c\u0b0a\3\2\2\2\u0b0d"+ - "\u0b0e\5\u01d2\u00ea\2\u0b0e\u0b0f\7R\2\2\u0b0f\u01d5\3\2\2\2\u0b10\u0b11"+ - "\7R\2\2\u0b11\u01d7\3\2\2\2\u0b12\u0b13\5\u01d2\u00ea\2\u0b13\u0b14\7"+ - "S\2\2\u0b14\u01d9\3\2\2\2\u0b15\u0b16\7S\2\2\u0b16\u01db\3\2\2\2\u0b17"+ - "\u0b18\7<\2\2\u0b18\u0b19\5\6\4\2\u0b19\u0b1a\7=\2\2\u0b1a\u0b1b\5\u01ca"+ - "\u00e6\2\u0b1b\u0b33\3\2\2\2\u0b1c\u0b1d\7<\2\2\u0b1d\u0b21\5\16\b\2\u0b1e"+ - "\u0b20\5*\26\2\u0b1f\u0b1e\3\2\2\2\u0b20\u0b23\3\2\2\2\u0b21\u0b1f\3\2"+ - "\2\2\u0b21\u0b22\3\2\2\2\u0b22\u0b24\3\2\2\2\u0b23\u0b21\3\2\2\2\u0b24"+ - "\u0b25\7=\2\2\u0b25\u0b26\5\u01d0\u00e9\2\u0b26\u0b33\3\2\2\2\u0b27\u0b28"+ - "\7<\2\2\u0b28\u0b2c\5\16\b\2\u0b29\u0b2b\5*\26\2\u0b2a\u0b29\3\2\2\2\u0b2b"+ - "\u0b2e\3\2\2\2\u0b2c\u0b2a\3\2\2\2\u0b2c\u0b2d\3\2\2\2\u0b2d\u0b2f\3\2"+ - "\2\2\u0b2e\u0b2c\3\2\2\2\u0b2f\u0b30\7=\2\2\u0b30\u0b31\5\u01a4\u00d3"+ - "\2\u0b31\u0b33\3\2\2\2\u0b32\u0b17\3\2\2\2\u0b32\u0b1c\3\2\2\2\u0b32\u0b27"+ - "\3\2\2\2\u0b33\u01dd\3\2\2\2\u014b\u01e2\u01e7\u01ee\u01f2\u01f6\u01ff"+ + "\7<\2\2\u0969\u0990\3\2\2\2\u096a\u096b\5<\37\2\u096b\u096d\7C\2\2\u096c"+ + "\u096e\5,\27\2\u096d\u096c\3\2\2\2\u096d\u096e\3\2\2\2\u096e\u096f\3\2"+ + "\2\2\u096f\u0970\7h\2\2\u0970\u0972\7;\2\2\u0971\u0973\5\u0192\u00ca\2"+ + "\u0972\u0971\3\2\2\2\u0972\u0973\3\2\2\2\u0973\u0974\3\2\2\2\u0974\u0975"+ + "\7<\2\2\u0975\u0990\3\2\2\2\u0976\u0977\7*\2\2\u0977\u0979\7C\2\2\u0978"+ + "\u097a\5,\27\2\u0979\u0978\3\2\2\2\u0979\u097a\3\2\2\2\u097a\u097b\3\2"+ + "\2\2\u097b\u097c\7h\2\2\u097c\u097e\7;\2\2\u097d\u097f\5\u0192\u00ca\2"+ + "\u097e\u097d\3\2\2\2\u097e\u097f\3\2\2\2\u097f\u0980\3\2\2\2\u0980\u0990"+ + "\7<\2\2\u0981\u0982\58\35\2\u0982\u0983\7C\2\2\u0983\u0984\7*\2\2\u0984"+ + "\u0986\7C\2\2\u0985\u0987\5,\27\2\u0986\u0985\3\2\2\2\u0986\u0987\3\2"+ + "\2\2\u0987\u0988\3\2\2\2\u0988\u0989\7h\2\2\u0989\u098b\7;\2\2\u098a\u098c"+ + "\5\u0192\u00ca\2\u098b\u098a\3\2\2\2\u098b\u098c\3\2\2\2\u098c\u098d\3"+ + "\2\2\2\u098d\u098e\7<\2\2\u098e\u0990\3\2\2\2\u098f\u0957\3\2\2\2\u098f"+ + "\u095e\3\2\2\2\u098f\u096a\3\2\2\2\u098f\u0976\3\2\2\2\u098f\u0981\3\2"+ + "\2\2\u0990\u0191\3\2\2\2\u0991\u0996\5\u01a2\u00d2\2\u0992\u0993\7B\2"+ + "\2\u0993\u0995\5\u01a2\u00d2\2\u0994\u0992\3\2\2\2\u0995\u0998\3\2\2\2"+ + "\u0996\u0994\3\2\2\2\u0996\u0997\3\2\2\2\u0997\u0193\3\2\2\2\u0998\u0996"+ + "\3\2\2\2\u0999\u099a\5<\37\2\u099a\u099c\7\\\2\2\u099b\u099d\5,\27\2\u099c"+ + "\u099b\3\2\2\2\u099c\u099d\3\2\2\2\u099d\u099e\3\2\2\2\u099e\u099f\7h"+ + "\2\2\u099f\u09c9\3\2\2\2\u09a0\u09a1\5\16\b\2\u09a1\u09a3\7\\\2\2\u09a2"+ + "\u09a4\5,\27\2\u09a3\u09a2\3\2\2\2\u09a3\u09a4\3\2\2\2\u09a4\u09a5\3\2"+ + "\2\2\u09a5\u09a6\7h\2\2\u09a6\u09c9\3\2\2\2\u09a7\u09a8\5\u0164\u00b3"+ + "\2\u09a8\u09aa\7\\\2\2\u09a9\u09ab\5,\27\2\u09aa\u09a9\3\2\2\2\u09aa\u09ab"+ + "\3\2\2\2\u09ab\u09ac\3\2\2\2\u09ac\u09ad\7h\2\2\u09ad\u09c9\3\2\2\2\u09ae"+ + "\u09af\7*\2\2\u09af\u09b1\7\\\2\2\u09b0\u09b2\5,\27\2\u09b1\u09b0\3\2"+ + "\2\2\u09b1\u09b2\3\2\2\2\u09b2\u09b3\3\2\2\2\u09b3\u09c9\7h\2\2\u09b4"+ + "\u09b5\58\35\2\u09b5\u09b6\7C\2\2\u09b6\u09b7\7*\2\2\u09b7\u09b9\7\\\2"+ + "\2\u09b8\u09ba\5,\27\2\u09b9\u09b8\3\2\2\2\u09b9\u09ba\3\2\2\2\u09ba\u09bb"+ + "\3\2\2\2\u09bb\u09bc\7h\2\2\u09bc\u09c9\3\2\2\2\u09bd\u09be\5\22\n\2\u09be"+ + "\u09c0\7\\\2\2\u09bf\u09c1\5,\27\2\u09c0\u09bf\3\2\2\2\u09c0\u09c1\3\2"+ + "\2\2\u09c1\u09c2\3\2\2\2\u09c2\u09c3\7!\2\2\u09c3\u09c9\3\2\2\2\u09c4"+ + "\u09c5\5 \21\2\u09c5\u09c6\7\\\2\2\u09c6\u09c7\7!\2\2\u09c7\u09c9\3\2"+ + "\2\2\u09c8\u0999\3\2\2\2\u09c8\u09a0\3\2\2\2\u09c8\u09a7\3\2\2\2\u09c8"+ + "\u09ae\3\2\2\2\u09c8\u09b4\3\2\2\2\u09c8\u09bd\3\2\2\2\u09c8\u09c4\3\2"+ + "\2\2\u09c9\u0195\3\2\2\2\u09ca\u09cc\7\\\2\2\u09cb\u09cd\5,\27\2\u09cc"+ + "\u09cb\3\2\2\2\u09cc\u09cd\3\2\2\2\u09cd\u09ce\3\2\2\2\u09ce\u09cf\7h"+ + "\2\2\u09cf\u0197\3\2\2\2\u09d0\u09d1\5<\37\2\u09d1\u09d3\7\\\2\2\u09d2"+ + "\u09d4\5,\27\2\u09d3\u09d2\3\2\2\2\u09d3\u09d4\3\2\2\2\u09d4\u09d5\3\2"+ + "\2\2\u09d5\u09d6\7h\2\2\u09d6\u09f9\3\2\2\2\u09d7\u09d8\5\16\b\2\u09d8"+ + "\u09da\7\\\2\2\u09d9\u09db\5,\27\2\u09da\u09d9\3\2\2\2\u09da\u09db\3\2"+ + "\2\2\u09db\u09dc\3\2\2\2\u09dc\u09dd\7h\2\2\u09dd\u09f9\3\2\2\2\u09de"+ + "\u09df\7*\2\2\u09df\u09e1\7\\\2\2\u09e0\u09e2\5,\27\2\u09e1\u09e0\3\2"+ + "\2\2\u09e1\u09e2\3\2\2\2\u09e2\u09e3\3\2\2\2\u09e3\u09f9\7h\2\2\u09e4"+ + "\u09e5\58\35\2\u09e5\u09e6\7C\2\2\u09e6\u09e7\7*\2\2\u09e7\u09e9\7\\\2"+ + "\2\u09e8\u09ea\5,\27\2\u09e9\u09e8\3\2\2\2\u09e9\u09ea\3\2\2\2\u09ea\u09eb"+ + "\3\2\2\2\u09eb\u09ec\7h\2\2\u09ec\u09f9\3\2\2\2\u09ed\u09ee\5\22\n\2\u09ee"+ + "\u09f0\7\\\2\2\u09ef\u09f1\5,\27\2\u09f0\u09ef\3\2\2\2\u09f0\u09f1\3\2"+ + "\2\2\u09f1\u09f2\3\2\2\2\u09f2\u09f3\7!\2\2\u09f3\u09f9\3\2\2\2\u09f4"+ + "\u09f5\5 \21\2\u09f5\u09f6\7\\\2\2\u09f6\u09f7\7!\2\2\u09f7\u09f9\3\2"+ + "\2\2\u09f8\u09d0\3\2\2\2\u09f8\u09d7\3\2\2\2\u09f8\u09de\3\2\2\2\u09f8"+ + "\u09e4\3\2\2\2\u09f8\u09ed\3\2\2\2\u09f8\u09f4\3\2\2\2\u09f9\u0199\3\2"+ + "\2\2\u09fa\u09fb\7!\2\2\u09fb\u09fc\5\6\4\2\u09fc\u09fe\5\u019c\u00cf"+ + "\2\u09fd\u09ff\5\"\22\2\u09fe\u09fd\3\2\2\2\u09fe\u09ff\3\2\2\2\u09ff"+ + "\u0a11\3\2\2\2\u0a00\u0a01\7!\2\2\u0a01\u0a02\5\20\t\2\u0a02\u0a04\5\u019c"+ + "\u00cf\2\u0a03\u0a05\5\"\22\2\u0a04\u0a03\3\2\2\2\u0a04\u0a05\3\2\2\2"+ + "\u0a05\u0a11\3\2\2\2\u0a06\u0a07\7!\2\2\u0a07\u0a08\5\6\4\2\u0a08\u0a09"+ + "\5\"\22\2\u0a09\u0a0a\5\u00fa~\2\u0a0a\u0a11\3\2\2\2\u0a0b\u0a0c\7!\2"+ + "\2\u0a0c\u0a0d\5\20\t\2\u0a0d\u0a0e\5\"\22\2\u0a0e\u0a0f\5\u00fa~\2\u0a0f"+ + "\u0a11\3\2\2\2\u0a10\u09fa\3\2\2\2\u0a10\u0a00\3\2\2\2\u0a10\u0a06\3\2"+ + "\2\2\u0a10\u0a0b\3\2\2\2\u0a11\u019b\3\2\2\2\u0a12\u0a16\5\u019e\u00d0"+ + "\2\u0a13\u0a15\5\u019e\u00d0\2\u0a14\u0a13\3\2\2\2\u0a15\u0a18\3\2\2\2"+ + "\u0a16\u0a14\3\2\2\2\u0a16\u0a17\3\2\2\2\u0a17\u019d\3\2\2\2\u0a18\u0a16"+ + "\3\2\2\2\u0a19\u0a1b\5\u00e8u\2\u0a1a\u0a19\3\2\2\2\u0a1b\u0a1e\3\2\2"+ + "\2\u0a1c\u0a1a\3\2\2\2\u0a1c\u0a1d\3\2\2\2\u0a1d\u0a1f\3\2\2\2\u0a1e\u0a1c"+ + "\3\2\2\2\u0a1f\u0a20\7?\2\2\u0a20\u0a21\5\u01a2\u00d2\2\u0a21\u0a22\7"+ + "@\2\2\u0a22\u019f\3\2\2\2\u0a23\u0a24\5\u01a2\u00d2\2\u0a24\u01a1\3\2"+ + "\2\2\u0a25\u0a28\5\u01a4\u00d3\2\u0a26\u0a28\5\u01ac\u00d7\2\u0a27\u0a25"+ + "\3\2\2\2\u0a27\u0a26\3\2\2\2\u0a28\u01a3\3\2\2\2\u0a29\u0a2a\5\u01a6\u00d4"+ + "\2\u0a2a\u0a2b\7[\2\2\u0a2b\u0a2c\5\u01aa\u00d6\2\u0a2c\u01a5\3\2\2\2"+ + "\u0a2d\u0a34\7h\2\2\u0a2e\u0a30\7;\2\2\u0a2f\u0a31\5\u0098M\2\u0a30\u0a2f"+ + "\3\2\2\2\u0a30\u0a31\3\2\2\2\u0a31\u0a32\3\2\2\2\u0a32\u0a34\7<\2\2\u0a33"+ + "\u0a2d\3\2\2\2\u0a33\u0a2e\3\2\2\2\u0a34\u01a7\3\2\2\2\u0a35\u0a3a\7h"+ + "\2\2\u0a36\u0a37\7B\2\2\u0a37\u0a39\7h\2\2\u0a38\u0a36\3\2\2\2\u0a39\u0a3c"+ + "\3\2\2\2\u0a3a\u0a38\3\2\2\2\u0a3a\u0a3b\3\2\2\2\u0a3b\u01a9\3\2\2\2\u0a3c"+ + "\u0a3a\3\2\2\2\u0a3d\u0a40\5\u01a2\u00d2\2\u0a3e\u0a40\5\u00fe\u0080\2"+ + "\u0a3f\u0a3d\3\2\2\2\u0a3f\u0a3e\3\2\2\2\u0a40\u01ab\3\2\2\2\u0a41\u0a44"+ + "\5\u01b4\u00db\2\u0a42\u0a44\5\u01ae\u00d8\2\u0a43\u0a41\3\2\2\2\u0a43"+ + "\u0a42\3\2\2\2\u0a44\u01ad\3\2\2\2\u0a45\u0a46\5\u01b0\u00d9\2\u0a46\u0a47"+ + "\5\u01b2\u00da\2\u0a47\u0a48\5\u01a2\u00d2\2\u0a48\u01af\3\2\2\2\u0a49"+ + "\u0a4d\5<\37\2\u0a4a\u0a4d\5\u0180\u00c1\2\u0a4b\u0a4d\5\u0186\u00c4\2"+ + "\u0a4c\u0a49\3\2\2\2\u0a4c\u0a4a\3\2\2\2\u0a4c\u0a4b\3\2\2\2\u0a4d\u01b1"+ + "\3\2\2\2\u0a4e\u0a4f\t\5\2\2\u0a4f\u01b3\3\2\2\2\u0a50\u0a58\5\u01b6\u00dc"+ + "\2\u0a51\u0a52\5\u01b6\u00dc\2\u0a52\u0a53\7I\2\2\u0a53\u0a54\5\u01a2"+ + "\u00d2\2\u0a54\u0a55\7J\2\2\u0a55\u0a56\5\u01b4\u00db\2\u0a56\u0a58\3"+ + "\2\2\2\u0a57\u0a50\3\2\2\2\u0a57\u0a51\3\2\2\2\u0a58\u01b5\3\2\2\2\u0a59"+ + "\u0a5a\b\u00dc\1\2\u0a5a\u0a5b\5\u01b8\u00dd\2\u0a5b\u0a61\3\2\2\2\u0a5c"+ + "\u0a5d\f\3\2\2\u0a5d\u0a5e\7P\2\2\u0a5e\u0a60\5\u01b8\u00dd\2\u0a5f\u0a5c"+ + "\3\2\2\2\u0a60\u0a63\3\2\2\2\u0a61\u0a5f\3\2\2\2\u0a61\u0a62\3\2\2\2\u0a62"+ + "\u01b7\3\2\2\2\u0a63\u0a61\3\2\2\2\u0a64\u0a65\b\u00dd\1\2\u0a65\u0a66"+ + "\5\u01ba\u00de\2\u0a66\u0a6c\3\2\2\2\u0a67\u0a68\f\3\2\2\u0a68\u0a69\7"+ + "O\2\2\u0a69\u0a6b\5\u01ba\u00de\2\u0a6a\u0a67\3\2\2\2\u0a6b\u0a6e\3\2"+ + "\2\2\u0a6c\u0a6a\3\2\2\2\u0a6c\u0a6d\3\2\2\2\u0a6d\u01b9\3\2\2\2\u0a6e"+ + "\u0a6c\3\2\2\2\u0a6f\u0a70\b\u00de\1\2\u0a70\u0a71\5\u01bc\u00df\2\u0a71"+ + "\u0a77\3\2\2\2\u0a72\u0a73\f\3\2\2\u0a73\u0a74\7X\2\2\u0a74\u0a76\5\u01bc"+ + "\u00df\2\u0a75\u0a72\3\2\2\2\u0a76\u0a79\3\2\2\2\u0a77\u0a75\3\2\2\2\u0a77"+ + "\u0a78\3\2\2\2\u0a78\u01bb\3\2\2\2\u0a79\u0a77\3\2\2\2\u0a7a\u0a7b\b\u00df"+ + "\1\2\u0a7b\u0a7c\5\u01be\u00e0\2\u0a7c\u0a82\3\2\2\2\u0a7d\u0a7e\f\3\2"+ + "\2\u0a7e\u0a7f\7Y\2\2\u0a7f\u0a81\5\u01be\u00e0\2\u0a80\u0a7d\3\2\2\2"+ + "\u0a81\u0a84\3\2\2\2\u0a82\u0a80\3\2\2\2\u0a82\u0a83\3\2\2\2\u0a83\u01bd"+ + "\3\2\2\2\u0a84\u0a82\3\2\2\2\u0a85\u0a86\b\u00e0\1\2\u0a86\u0a87\5\u01c0"+ + "\u00e1\2\u0a87\u0a8d\3\2\2\2\u0a88\u0a89\f\3\2\2\u0a89\u0a8a\7W\2\2\u0a8a"+ + "\u0a8c\5\u01c0\u00e1\2\u0a8b\u0a88\3\2\2\2\u0a8c\u0a8f\3\2\2\2\u0a8d\u0a8b"+ + "\3\2\2\2\u0a8d\u0a8e\3\2\2\2\u0a8e\u01bf\3\2\2\2\u0a8f\u0a8d\3\2\2\2\u0a90"+ + "\u0a91\b\u00e1\1\2\u0a91\u0a92\5\u01c2\u00e2\2\u0a92\u0a9b\3\2\2\2\u0a93"+ + "\u0a94\f\4\2\2\u0a94\u0a95\7K\2\2\u0a95\u0a9a\5\u01c2\u00e2\2\u0a96\u0a97"+ + "\f\3\2\2\u0a97\u0a98\7N\2\2\u0a98\u0a9a\5\u01c2\u00e2\2\u0a99\u0a93\3"+ + "\2\2\2\u0a99\u0a96\3\2\2\2\u0a9a\u0a9d\3\2\2\2\u0a9b\u0a99\3\2\2\2\u0a9b"+ + "\u0a9c\3\2\2\2\u0a9c\u01c1\3\2\2\2\u0a9d\u0a9b\3\2\2\2\u0a9e\u0a9f\b\u00e2"+ + "\1\2\u0a9f\u0aa0\5\u01c4\u00e3\2\u0aa0\u0ab2\3\2\2\2\u0aa1\u0aa2\f\7\2"+ + "\2\u0aa2\u0aa3\7F\2\2\u0aa3\u0ab1\5\u01c4\u00e3\2\u0aa4\u0aa5\f\6\2\2"+ + "\u0aa5\u0aa6\7E\2\2\u0aa6\u0ab1\5\u01c4\u00e3\2\u0aa7\u0aa8\f\5\2\2\u0aa8"+ + "\u0aa9\7L\2\2\u0aa9\u0ab1\5\u01c4\u00e3\2\u0aaa\u0aab\f\4\2\2\u0aab\u0aac"+ + "\7M\2\2\u0aac\u0ab1\5\u01c4\u00e3\2\u0aad\u0aae\f\3\2\2\u0aae\u0aaf\7"+ + "\34\2\2\u0aaf\u0ab1\5\16\b\2\u0ab0\u0aa1\3\2\2\2\u0ab0\u0aa4\3\2\2\2\u0ab0"+ + "\u0aa7\3\2\2\2\u0ab0\u0aaa\3\2\2\2\u0ab0\u0aad\3\2\2\2\u0ab1\u0ab4\3\2"+ + "\2\2\u0ab2\u0ab0\3\2\2\2\u0ab2\u0ab3\3\2\2\2\u0ab3\u01c3\3\2\2\2\u0ab4"+ + "\u0ab2\3\2\2\2\u0ab5\u0ab6\b\u00e3\1\2\u0ab6\u0ab7\5\u01c6\u00e4\2\u0ab7"+ + "\u0ac7\3\2\2\2\u0ab8\u0ab9\f\5\2\2\u0ab9\u0aba\7F\2\2\u0aba\u0abb\7F\2"+ + "\2\u0abb\u0ac6\5\u01c6\u00e4\2\u0abc\u0abd\f\4\2\2\u0abd\u0abe\7E\2\2"+ + "\u0abe\u0abf\7E\2\2\u0abf\u0ac6\5\u01c6\u00e4\2\u0ac0\u0ac1\f\3\2\2\u0ac1"+ + "\u0ac2\7E\2\2\u0ac2\u0ac3\7E\2\2\u0ac3\u0ac4\7E\2\2\u0ac4\u0ac6\5\u01c6"+ + "\u00e4\2\u0ac5\u0ab8\3\2\2\2\u0ac5\u0abc\3\2\2\2\u0ac5\u0ac0\3\2\2\2\u0ac6"+ + "\u0ac9\3\2\2\2\u0ac7\u0ac5\3\2\2\2\u0ac7\u0ac8\3\2\2\2\u0ac8\u01c5\3\2"+ + "\2\2\u0ac9\u0ac7\3\2\2\2\u0aca\u0acb\b\u00e4\1\2\u0acb\u0acc\5\u01c8\u00e5"+ + "\2\u0acc\u0ad5\3\2\2\2\u0acd\u0ace\f\4\2\2\u0ace\u0acf\7S\2\2\u0acf\u0ad4"+ + "\5\u01c8\u00e5\2\u0ad0\u0ad1\f\3\2\2\u0ad1\u0ad2\7T\2\2\u0ad2\u0ad4\5"+ + "\u01c8\u00e5\2\u0ad3\u0acd\3\2\2\2\u0ad3\u0ad0\3\2\2\2\u0ad4\u0ad7\3\2"+ + "\2\2\u0ad5\u0ad3\3\2\2\2\u0ad5\u0ad6\3\2\2\2\u0ad6\u01c7\3\2\2\2\u0ad7"+ + "\u0ad5\3\2\2\2\u0ad8\u0ad9\b\u00e5\1\2\u0ad9\u0ada\5\u01ca\u00e6\2\u0ada"+ + "\u0ae6\3\2\2\2\u0adb\u0adc\f\5\2\2\u0adc\u0add\7U\2\2\u0add\u0ae5\5\u01ca"+ + "\u00e6\2\u0ade\u0adf\f\4\2\2\u0adf\u0ae0\7V\2\2\u0ae0\u0ae5\5\u01ca\u00e6"+ + "\2\u0ae1\u0ae2\f\3\2\2\u0ae2\u0ae3\7Z\2\2\u0ae3\u0ae5\5\u01ca\u00e6\2"+ + "\u0ae4\u0adb\3\2\2\2\u0ae4\u0ade\3\2\2\2\u0ae4\u0ae1\3\2\2\2\u0ae5\u0ae8"+ + "\3\2\2\2\u0ae6\u0ae4\3\2\2\2\u0ae6\u0ae7\3\2\2\2\u0ae7\u01c9\3\2\2\2\u0ae8"+ + "\u0ae6\3\2\2\2\u0ae9\u0af1\5\u01cc\u00e7\2\u0aea\u0af1\5\u01ce\u00e8\2"+ + "\u0aeb\u0aec\7S\2\2\u0aec\u0af1\5\u01ca\u00e6\2\u0aed\u0aee\7T\2\2\u0aee"+ + "\u0af1\5\u01ca\u00e6\2\u0aef\u0af1\5\u01d0\u00e9\2\u0af0\u0ae9\3\2\2\2"+ + "\u0af0\u0aea\3\2\2\2\u0af0\u0aeb\3\2\2\2\u0af0\u0aed\3\2\2\2\u0af0\u0aef"+ + "\3\2\2\2\u0af1\u01cb\3\2\2\2\u0af2\u0af3\7Q\2\2\u0af3\u0af4\5\u01ca\u00e6"+ + "\2\u0af4\u01cd\3\2\2\2\u0af5\u0af6\7R\2\2\u0af6\u0af7\5\u01ca\u00e6\2"+ + "\u0af7\u01cf\3\2\2\2\u0af8\u0aff\5\u01d2\u00ea\2\u0af9\u0afa\7H\2\2\u0afa"+ + "\u0aff\5\u01ca\u00e6\2\u0afb\u0afc\7G\2\2\u0afc\u0aff\5\u01ca\u00e6\2"+ + "\u0afd\u0aff\5\u01dc\u00ef\2\u0afe\u0af8\3\2\2\2\u0afe\u0af9\3\2\2\2\u0afe"+ + "\u0afb\3\2\2\2\u0afe\u0afd\3\2\2\2\u0aff\u01d1\3\2\2\2\u0b00\u0b03\5\u0164"+ + "\u00b3\2\u0b01\u0b03\5<\37\2\u0b02\u0b00\3\2\2\2\u0b02\u0b01\3\2\2\2\u0b03"+ + "\u0b08\3\2\2\2\u0b04\u0b07\5\u01d6\u00ec\2\u0b05\u0b07\5\u01da\u00ee\2"+ + "\u0b06\u0b04\3\2\2\2\u0b06\u0b05\3\2\2\2\u0b07\u0b0a\3\2\2\2\u0b08\u0b06"+ + "\3\2\2\2\u0b08\u0b09\3\2\2\2\u0b09\u01d3\3\2\2\2\u0b0a\u0b08\3\2\2\2\u0b0b"+ + "\u0b0c\5\u01d2\u00ea\2\u0b0c\u0b0d\7Q\2\2\u0b0d\u01d5\3\2\2\2\u0b0e\u0b0f"+ + "\7Q\2\2\u0b0f\u01d7\3\2\2\2\u0b10\u0b11\5\u01d2\u00ea\2\u0b11\u0b12\7"+ + "R\2\2\u0b12\u01d9\3\2\2\2\u0b13\u0b14\7R\2\2\u0b14\u01db\3\2\2\2\u0b15"+ + "\u0b16\7;\2\2\u0b16\u0b17\5\6\4\2\u0b17\u0b18\7<\2\2\u0b18\u0b19\5\u01ca"+ + "\u00e6\2\u0b19\u0b31\3\2\2\2\u0b1a\u0b1b\7;\2\2\u0b1b\u0b1f\5\16\b\2\u0b1c"+ + "\u0b1e\5*\26\2\u0b1d\u0b1c\3\2\2\2\u0b1e\u0b21\3\2\2\2\u0b1f\u0b1d\3\2"+ + "\2\2\u0b1f\u0b20\3\2\2\2\u0b20\u0b22\3\2\2\2\u0b21\u0b1f\3\2\2\2\u0b22"+ + "\u0b23\7<\2\2\u0b23\u0b24\5\u01d0\u00e9\2\u0b24\u0b31\3\2\2\2\u0b25\u0b26"+ + "\7;\2\2\u0b26\u0b2a\5\16\b\2\u0b27\u0b29\5*\26\2\u0b28\u0b27\3\2\2\2\u0b29"+ + "\u0b2c\3\2\2\2\u0b2a\u0b28\3\2\2\2\u0b2a\u0b2b\3\2\2\2\u0b2b\u0b2d\3\2"+ + "\2\2\u0b2c\u0b2a\3\2\2\2\u0b2d\u0b2e\7<\2\2\u0b2e\u0b2f\5\u01a4\u00d3"+ + "\2\u0b2f\u0b31\3\2\2\2\u0b30\u0b15\3\2\2\2\u0b30\u0b1a\3\2\2\2\u0b30\u0b25"+ + "\3\2\2\2\u0b31\u01dd\3\2\2\2\u014a\u01e2\u01e7\u01ee\u01f2\u01f6\u01ff"+ "\u0203\u0207\u0209\u020f\u0214\u021b\u0220\u0222\u0228\u022d\u0232\u0237"+ "\u0242\u0250\u0255\u025d\u0264\u026a\u026f\u027a\u027d\u028b\u0290\u0295"+ "\u029a\u02a0\u02aa\u02b2\u02bc\u02c4\u02d0\u02d4\u02d9\u02df\u02e7\u02f0"+ @@ -16609,21 +18726,21 @@ public class Java8Parser extends Parser { "\u04bd\u04c5\u04ca\u04cf\u04d4\u04da\u04e0\u04e3\u04e6\u04ef\u04f5\u04fb"+ "\u04fe\u0501\u0509\u050e\u0513\u0519\u051c\u0527\u0530\u053a\u053f\u054a"+ "\u054f\u055b\u0560\u056c\u0576\u057b\u0583\u0586\u058d\u0595\u059b\u05a4"+ - "\u05ae\u05b2\u05b5\u05be\u05cc\u05cf\u05d8\u05dd\u05e5\u05eb\u05f2\u05f7"+ - "\u0603\u060a\u0618\u062e\u0650\u065c\u0662\u066e\u067b\u0695\u0699\u069e"+ - "\u06a2\u06a6\u06ae\u06b2\u06b6\u06bd\u06c6\u06ce\u06dd\u06e9\u06ef\u06f5"+ - "\u070a\u070f\u0715\u0721\u072c\u0736\u0739\u073e\u0747\u074d\u0757\u075c"+ - "\u0765\u077c\u0786\u079c\u07a3\u07ab\u07b3\u07be\u07d5\u07df\u07ea\u0800"+ - "\u0804\u0809\u0811\u0817\u081b\u081f\u0823\u0829\u082e\u0833\u0837\u083b"+ - "\u0841\u0846\u084b\u084f\u0853\u0855\u085a\u085f\u0864\u0868\u086c\u0870"+ - "\u0875\u087d\u0883\u0887\u088b\u088f\u0895\u089a\u089f\u08a3\u08a7\u08a9"+ - "\u08ae\u08bd\u08cb\u08d7\u08e0\u08ef\u08fc\u0905\u090b\u0912\u0917\u091e"+ - "\u0923\u092a\u092f\u0936\u093b\u0943\u0948\u094c\u0950\u0955\u095c\u0963"+ - "\u0968\u096f\u0974\u097b\u0980\u0988\u098d\u0991\u0998\u099e\u09a5\u09ac"+ - "\u09b3\u09bb\u09c2\u09ca\u09ce\u09d5\u09dc\u09e3\u09eb\u09f2\u09fa\u0a00"+ - "\u0a06\u0a12\u0a18\u0a1e\u0a29\u0a32\u0a35\u0a3c\u0a41\u0a45\u0a4e\u0a59"+ - "\u0a63\u0a6e\u0a79\u0a84\u0a8f\u0a9b\u0a9d\u0ab2\u0ab4\u0ac7\u0ac9\u0ad5"+ - "\u0ad7\u0ae6\u0ae8\u0af2\u0b00\u0b04\u0b08\u0b0a\u0b21\u0b2c\u0b32"; + "\u05ae\u05b2\u05b5\u05be\u05cc\u05cf\u05d8\u05dd\u05e5\u05eb\u05f5\u0601"+ + "\u0608\u0616\u062c\u064e\u065a\u0660\u066c\u0679\u0693\u0697\u069c\u06a0"+ + "\u06a4\u06ac\u06b0\u06b4\u06bb\u06c4\u06cc\u06db\u06e7\u06ed\u06f3\u0708"+ + "\u070d\u0713\u071f\u072a\u0734\u0737\u073c\u0745\u074b\u0755\u075a\u0763"+ + "\u077a\u0784\u079a\u07a1\u07a9\u07b1\u07bc\u07d3\u07dd\u07e8\u07fe\u0802"+ + "\u0807\u080f\u0815\u0819\u081d\u0821\u0827\u082c\u0831\u0835\u0839\u083f"+ + "\u0844\u0849\u084d\u0851\u0853\u0858\u085d\u0862\u0866\u086a\u086e\u0873"+ + "\u087b\u0881\u0885\u0889\u088d\u0893\u0898\u089d\u08a1\u08a5\u08a7\u08ac"+ + "\u08bb\u08c9\u08d5\u08de\u08ed\u08fa\u0903\u0909\u0910\u0915\u091c\u0921"+ + "\u0928\u092d\u0934\u0939\u0941\u0946\u094a\u094e\u0953\u095a\u0961\u0966"+ + "\u096d\u0972\u0979\u097e\u0986\u098b\u098f\u0996\u099c\u09a3\u09aa\u09b1"+ + "\u09b9\u09c0\u09c8\u09cc\u09d3\u09da\u09e1\u09e9\u09f0\u09f8\u09fe\u0a04"+ + "\u0a10\u0a16\u0a1c\u0a27\u0a30\u0a33\u0a3a\u0a3f\u0a43\u0a4c\u0a57\u0a61"+ + "\u0a6c\u0a77\u0a82\u0a8d\u0a99\u0a9b\u0ab0\u0ab2\u0ac5\u0ac7\u0ad3\u0ad5"+ + "\u0ae4\u0ae6\u0af0\u0afe\u0b02\u0b06\u0b08\u0b1f\u0b2a\u0b30"; public static final String _serializedATN = Utils.join( new String[] { _serializedATNSegment0, diff --git a/src/de/dhbwstuttgart/parser/scope/GatherNames.java b/src/de/dhbwstuttgart/parser/scope/GatherNames.java index e488ff08..cd508cde 100644 --- a/src/de/dhbwstuttgart/parser/scope/GatherNames.java +++ b/src/de/dhbwstuttgart/parser/scope/GatherNames.java @@ -1,8 +1,13 @@ package de.dhbwstuttgart.parser.scope; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import de.dhbwstuttgart.parser.antlr.Java8BaseListener; +import de.dhbwstuttgart.syntaxtree.AbstractASTWalker; +import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; import org.antlr.v4.runtime.tree.TerminalNode; import de.dhbwstuttgart.environment.PackageCrawler; @@ -10,19 +15,8 @@ import de.dhbwstuttgart.parser.antlr.Java8Parser; public class GatherNames { - private static String getPackageName(Java8Parser.CompilationUnitContext ctx){ - String pkgName = ""; - if(ctx.packageDeclaration() != null){ - for(TerminalNode t : ctx.packageDeclaration().Identifier()){ - pkgName = pkgName + "." + t.toString(); - } - pkgName = pkgName.substring(1); - } - return pkgName; - } - - public static List getNames(Java8Parser.CompilationUnitContext ctx, PackageCrawler packages) throws ClassNotFoundException{ - List ret = new ArrayList<>(); + public static Map getNames(Java8Parser.CompilationUnitContext ctx, PackageCrawler packages) throws ClassNotFoundException{ + Map ret = new HashMap<>(); String pkgName = getPackageName(ctx); String nameString = ""; for (Java8Parser.TypeDeclarationContext typeDecl : ctx.typeDeclaration()){ @@ -34,6 +28,8 @@ public class GatherNames { else{ nameString = typeDecl.interfaceDeclaration().normalInterfaceDeclaration().Identifier().toString(); } + int numGenerics = typeDecl.interfaceDeclaration().normalInterfaceDeclaration().typeParameters()!=null? + typeDecl.interfaceDeclaration().normalInterfaceDeclaration().typeParameters().typeParameterList().typeParameter().size():0; //Die Generic TypeParameter Definitionen Nicht! an die JavaClassName-Registry anfügen: /* //Diese gelängen dadurch in den globalen Scope, was sie schließlich nicht sind if(typeDecl.classDeclaration().normalClassDeclaration().typeParameters() != null){ @@ -42,7 +38,7 @@ public class GatherNames { } } */ - ret.add(nameString); + ret.put(nameString, numGenerics); } } else{ @@ -61,31 +57,49 @@ public class GatherNames { } } */ - ret.add(nameString); + int numGenerics = typeDecl.classDeclaration().normalClassDeclaration().typeParameters()!=null? + typeDecl.classDeclaration().normalClassDeclaration().typeParameters().typeParameterList().typeParameter().size():0; + + ret.put(nameString, numGenerics); } } } - ret.addAll(getImports(ctx, packages)); + ret.putAll(getImports(ctx, packages)); return ret; } - private static List getImports(Java8Parser.CompilationUnitContext ctx, PackageCrawler packages) throws ClassNotFoundException { - List ret = new ArrayList(); - for(Java8Parser.ImportDeclarationContext importDeclCtx : ctx.importDeclaration()){ + public static Map getImports(Java8Parser.CompilationUnitContext ctx, PackageCrawler packages) throws ClassNotFoundException { + Map ret = new HashMap<>(); + ClassLoader classLoader = ClassLoader.getSystemClassLoader(); + ret.putAll(packages.getClassNames("java.lang")); + for(Java8Parser.ImportDeclarationContext importDeclCtx : ctx.importDeclaration()){ if(importDeclCtx.singleTypeImportDeclaration() != null){ - ret.add(importDeclCtx.singleTypeImportDeclaration().typeName().getText()); + Class cl = classLoader.loadClass(importDeclCtx.singleTypeImportDeclaration().typeName().getText()); + ret.put(cl.getName(), cl.getTypeParameters().length); } else if(importDeclCtx.typeImportOnDemandDeclaration() != null){ - ret.addAll(packages.getClassNames(importDeclCtx.typeImportOnDemandDeclaration().packageOrTypeName().getText())); + ret.putAll(packages.getClassNames(importDeclCtx.typeImportOnDemandDeclaration().packageOrTypeName().getText())); } else if(importDeclCtx.singleStaticImportDeclaration() != null){ - ret.add(importDeclCtx.singleStaticImportDeclaration().typeName().getText()+"."+importDeclCtx.singleStaticImportDeclaration().Identifier().getText()); - } + Class cl = classLoader.loadClass(importDeclCtx.singleStaticImportDeclaration().typeName().getText()+"."+importDeclCtx.singleStaticImportDeclaration().Identifier().getText()); + ret.put(cl.getName(), cl.getTypeParameters().length); + } else{ - ret.addAll(packages.getClassNames(importDeclCtx.staticImportOnDemandDeclaration().typeName().getText())); + ret.putAll(packages.getClassNames(importDeclCtx.staticImportOnDemandDeclaration().typeName().getText())); } } return ret; } -} + + private static String getPackageName(Java8Parser.CompilationUnitContext ctx){ + String pkgName = ""; + if(ctx.packageDeclaration() != null){ + for(TerminalNode t : ctx.packageDeclaration().Identifier()){ + pkgName = pkgName + "." + t.toString(); + } + pkgName = pkgName.substring(1); + } + return pkgName; + } +} \ No newline at end of file diff --git a/src/de/dhbwstuttgart/parser/scope/GenericTypeName.java b/src/de/dhbwstuttgart/parser/scope/GenericTypeName.java index 0cee932f..c5355ebd 100644 --- a/src/de/dhbwstuttgart/parser/scope/GenericTypeName.java +++ b/src/de/dhbwstuttgart/parser/scope/GenericTypeName.java @@ -19,4 +19,8 @@ public class GenericTypeName extends JavaClassName { + DELIMITER + methodName + DELIMITER + super.toString(); } + + public JavaClassName getParentClass() { + return parentClass; + } } diff --git a/src/de/dhbwstuttgart/parser/scope/GenericsRegistry.java b/src/de/dhbwstuttgart/parser/scope/GenericsRegistry.java new file mode 100644 index 00000000..e0b32e64 --- /dev/null +++ b/src/de/dhbwstuttgart/parser/scope/GenericsRegistry.java @@ -0,0 +1,50 @@ +package de.dhbwstuttgart.parser.scope; + +import de.dhbwstuttgart.parser.SyntaxTreeGenerator.GenericContext; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +public class GenericsRegistry { + private final List registry = new ArrayList<>(); + public final GenericsRegistry globalRegistry; + + public GenericsRegistry(GenericsRegistry globalRegistry){ + this.globalRegistry = globalRegistry; + } + + public void put(String name, GenericContext genericContext){ + registry.add(new GenericVariable(genericContext,name)); + if(globalRegistry != null)globalRegistry.put(name, genericContext); + } + + public boolean contains(String name) { + Optional ret = registry.stream().map(((GenericVariable genericVariable) -> genericVariable.name.equals(name))) + .reduce(((a, b) -> a || b)); + if(ret.isPresent()) + return ret.get(); + return false; + } + + public GenericContext get(String name) { + return registry.stream() + .filter((genericVariable -> genericVariable.name.equals(name))).findAny().get().context; + } + + public void putAll(GenericsRegistry generics) { + for(GenericVariable generic : generics.registry){ + this.put(generic.name, generic.context); + } + } +} + +class GenericVariable{ + final GenericContext context; + final String name; + + GenericVariable(GenericContext context, String name){ + this.context = context; + this.name = name; + } +} \ No newline at end of file diff --git a/src/de/dhbwstuttgart/parser/scope/JavaClassName.java b/src/de/dhbwstuttgart/parser/scope/JavaClassName.java index 8ea1c51c..b87ff719 100644 --- a/src/de/dhbwstuttgart/parser/scope/JavaClassName.java +++ b/src/de/dhbwstuttgart/parser/scope/JavaClassName.java @@ -1,5 +1,6 @@ package de.dhbwstuttgart.parser.scope; + import java.util.ArrayList; import java.util.List; @@ -35,7 +36,7 @@ public class JavaClassName { } /** - * Gibt von einem Klassennamen nur den Namen der Klasse zurück + * Gibt von einem Klassennamen nur den Namen der Klasse zur�ck * Beispiel: * java.lang.Object wird zu: Object */ @@ -48,8 +49,10 @@ public class JavaClassName { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); + /* result = prime * result + ((packageName == null) ? 0 : packageName.hashCode()); //PackageName does not infect hashCode + */ return result; } diff --git a/src/de/dhbwstuttgart/parser/scope/JavaClassRegistry.java b/src/de/dhbwstuttgart/parser/scope/JavaClassRegistry.java index d2f8bc35..d9ab804c 100644 --- a/src/de/dhbwstuttgart/parser/scope/JavaClassRegistry.java +++ b/src/de/dhbwstuttgart/parser/scope/JavaClassRegistry.java @@ -1,35 +1,26 @@ package de.dhbwstuttgart.parser.scope; +import de.dhbwstuttgart.exceptions.NotImplementedException; + import java.util.*; /** - * Speichert die Klassen für einen bestimmten Projektscope + * Speichert die Klassen f�r einen bestimmten Projektscope */ public class JavaClassRegistry { - final List existingClasses = new ArrayList<>(); - final List importedPackages = new ArrayList<>(); + final Map existingClasses = new HashMap<>(); - public JavaClassRegistry(List initialNames){ - for(String name : initialNames){ - existingClasses.add(new JavaClassName(name)); + public JavaClassRegistry(Map initialNames){ + for(String name : initialNames.keySet()){ + existingClasses.put(new JavaClassName(name), initialNames.get(name)); } } - - public void add(String className){ - existingClasses.add(new JavaClassName(className)); - } public JavaClassName getName(String className) { - for(JavaClassName name : existingClasses){ + for(JavaClassName name : existingClasses.keySet()){ if(name.equals(new JavaClassName(className)))return name; } - //Jetzt noch alle importierten Packages durchsuchen: - JavaClassName ret = getClassFromImportedPackages(className); - if(ret == null){ - throw new TypeNotPresentException(className, new Throwable()); - }else{ - return ret; - } + throw new NotImplementedException(); } @Override @@ -37,35 +28,22 @@ public class JavaClassRegistry { return existingClasses.toString(); } + public List getAllFromPackage(String packageName) { + List ret = new ArrayList<>(); + for(JavaClassName className : this.existingClasses.keySet()){ + JavaClassName toCompare = new JavaClassName(packageName + "." + JavaClassName.stripClassName(className.toString())); + if(toCompare.toString().equals(className.toString())){ + ret.add(className); + } + } + return ret; + } + public boolean contains(String whole) { - boolean ret = existingClasses.contains(new JavaClassName(whole)); - if(ret == false){ - JavaClassName imported = getClassFromImportedPackages(whole); - if(imported != null){ - existingClasses.add(imported); - return true; - }else { - return false; - } - }else { - return true; - } + return existingClasses.containsKey(new JavaClassName(whole)); } - private JavaClassName getClassFromImportedPackages(String className){ - ClassLoader loader = Thread.currentThread().getContextClassLoader(); - String shortName = JavaClassName.stripClassName(className); - for(String packageName : importedPackages) { - try { - loader.loadClass(packageName+"."+shortName); - //Keine Exception! Die Klasse existiert: - JavaClassName ret = new JavaClassName(packageName+"."+shortName); - if(ret.equals(new JavaClassName(className)))return ret; - } catch (ClassNotFoundException e) { - //Die Klasse wurde nicht gefunden! - } - } - return null; + public int getNumberOfGenerics(String name) { + return existingClasses.get(new JavaClassName(name)); } - } diff --git a/src/de/dhbwstuttgart/sat/CNF/CNF.java b/src/de/dhbwstuttgart/sat/CNF/CNF.java new file mode 100644 index 00000000..e5d9b3d0 --- /dev/null +++ b/src/de/dhbwstuttgart/sat/CNF/CNF.java @@ -0,0 +1,8 @@ +package de.dhbwstuttgart.sat.CNF; + +public class CNF { + /* + Baut die CNF Datei. + Hier muss man überlegen, in welchem Form die Constraints gebaut werden + */ +} diff --git a/src/de/dhbwstuttgart/sat/CNF/Writer.java b/src/de/dhbwstuttgart/sat/CNF/Writer.java new file mode 100644 index 00000000..c366686a --- /dev/null +++ b/src/de/dhbwstuttgart/sat/CNF/Writer.java @@ -0,0 +1,12 @@ +package de.dhbwstuttgart.sat.CNF; + +import java.io.*; + +/** + * Schreibt CNFs in eine Datei im DIMACS CNF Format + */ +public class Writer { + public Writer(FileWriter output){ + + } +} diff --git a/src/de/dhbwstuttgart/sat/asp/ASPGenerator.java b/src/de/dhbwstuttgart/sat/asp/ASPGenerator.java new file mode 100644 index 00000000..1b942ad0 --- /dev/null +++ b/src/de/dhbwstuttgart/sat/asp/ASPGenerator.java @@ -0,0 +1,115 @@ +package de.dhbwstuttgart.sat.asp; + +import de.dhbwstuttgart.exceptions.DebugException; +import de.dhbwstuttgart.exceptions.NotImplementedException; +import de.dhbwstuttgart.parser.scope.JavaClassName; +import de.dhbwstuttgart.sat.asp.model.*; +import de.dhbwstuttgart.syntaxtree.ClassOrInterface; +import de.dhbwstuttgart.syntaxtree.GenericTypeVar; +import de.dhbwstuttgart.syntaxtree.factory.UnifyTypeFactory; +import de.dhbwstuttgart.syntaxtree.type.*; +import de.dhbwstuttgart.typeinference.constraints.Constraint; +import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; +import de.dhbwstuttgart.typeinference.constraints.Pair; +import de.dhbwstuttgart.typeinference.unify.model.UnifyType; + +import java.sql.Ref; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Optional; + +public class ASPGenerator { + ASPWriter writer = new ASPWriter(); + private final String asp; + + public ASPGenerator(ConstraintSet constraints, Collection fcClasses){ + List> constraints1 = constraints.cartesianProduct().iterator().next(); + List constraintPairs = new ArrayList<>(); + for(Constraint constraint : constraints1){ + System.out.println(UnifyTypeFactory.convert(constraint)); + constraintPairs.addAll(constraint); + } + asp = toASP(constraintPairs, fcClasses); + } + + public String getASP(){ + return asp; + } + + private String toASP(List constraintSet, Collection fcClasses){ + TypeConverter converter = new TypeConverter(); + for(ClassOrInterface cl : fcClasses){ + ASPType superClass = cl.getSuperClass().acceptTV(converter); + ASPPairSmaller fcEntry = new ASPPairSmaller(convert(cl), superClass); + writer.add(new ASPStatement(fcEntry.toASP())); + } + for(Pair cons : constraintSet){ + writer.add(new ASPStatement(convert(cons).toASP())); + } + + return writer.getASPFile(); + } + + private ASPPair convert(Pair pair){ + TypeConverter converter = new TypeConverter(); + ASPType ls = pair.TA1.acceptTV(converter); + ASPType rs = pair.TA2.acceptTV(converter); + if(pair.OperatorEqual()){ + return new ASPPairEquals(ls, rs); + }else if(pair.OperatorSmallerDot()){ + return new ASPPairSmallerDot(ls, rs); + }else throw new NotImplementedException(); + } + + private ASPType convert(ClassOrInterface cl){ + List paramList = new ArrayList<>(); + for(GenericTypeVar gtv : cl.getGenerics()){ + paramList.add(new ASPGenericType(toConstant(gtv.getName()))); + } + ASPParameterList params = new ASPParameterList(paramList, writer); + return new ASPRefType(toConstant(cl.getClassName()), params); + } + + public static String toConstant(JavaClassName name){ + return toConstant(name.toString().replace(".", "_")); + } + + public static String toConstant(String name){ + return "c" + name.toString().replace(".", "_"); + } + + private class TypeConverter implements TypeVisitor{ + + @Override + public ASPType visit(RefType type) { + List paramList = new ArrayList<>(); + for(RefTypeOrTPHOrWildcardOrGeneric gtv : type.getParaList()){ + paramList.add(gtv.acceptTV(this)); + } + ASPParameterList params = new ASPParameterList(paramList, writer); + return new ASPRefType(toConstant(type.getName()), params); + } + + @Override + public ASPType visit(SuperWildcardType superWildcardType) { + throw new NotImplementedException(); + } + + @Override + public ASPType visit(TypePlaceholder typePlaceholder) { + return new ASPTypeVar(toConstant(typePlaceholder.getName())); + } + + @Override + public ASPType visit(ExtendsWildcardType extendsWildcardType) { + throw new NotImplementedException(); + } + + @Override + public ASPType visit(GenericRefType genericRefType) { + return new ASPRefType(toConstant(genericRefType.getName()), + new ASPParameterList(new ArrayList<>(), writer)); + } + } +} diff --git a/src/de/dhbwstuttgart/sat/asp/ASPWriter.java b/src/de/dhbwstuttgart/sat/asp/ASPWriter.java new file mode 100644 index 00000000..4d33cbbf --- /dev/null +++ b/src/de/dhbwstuttgart/sat/asp/ASPWriter.java @@ -0,0 +1,24 @@ +package de.dhbwstuttgart.sat.asp; + +import de.dhbwstuttgart.sat.asp.model.ASPRefType; +import de.dhbwstuttgart.sat.asp.model.ASPStatement; +import de.dhbwstuttgart.sat.asp.model.ASPType; + +import java.util.HashSet; + +public class ASPWriter { + + private HashSet content = new HashSet<>(); + + public void add(ASPStatement stmt){ + content.add(stmt); + } + + public String getASPFile(){ + String ret = ""; + for(ASPStatement statement : content){ + ret += statement.getASP() + ".\n"; + } + return ret; + } +} diff --git a/src/de/dhbwstuttgart/sat/asp/model/ASPGenericType.java b/src/de/dhbwstuttgart/sat/asp/model/ASPGenericType.java new file mode 100644 index 00000000..26e6ea02 --- /dev/null +++ b/src/de/dhbwstuttgart/sat/asp/model/ASPGenericType.java @@ -0,0 +1,14 @@ +package de.dhbwstuttgart.sat.asp.model; + +public class ASPGenericType implements ASPType{ + public static final String ASP_GENERIC_TYPE_NAME = "genericType"; + private final String name; + + public ASPGenericType(String name){ + this.name = name; + } + + public String toString(){ + return ASP_GENERIC_TYPE_NAME + "(" + name + ")"; + } +} diff --git a/src/de/dhbwstuttgart/sat/asp/model/ASPPair.java b/src/de/dhbwstuttgart/sat/asp/model/ASPPair.java new file mode 100644 index 00000000..bbd3ff3f --- /dev/null +++ b/src/de/dhbwstuttgart/sat/asp/model/ASPPair.java @@ -0,0 +1,21 @@ +package de.dhbwstuttgart.sat.asp.model; + +public abstract class ASPPair { + public final ASPType leftSide; + public final ASPType rightSide; + + public ASPPair(ASPType ls, ASPType rs){ + this.leftSide = ls; + this.rightSide = rs; + } + + public String toASP(){ + return this.getRuleName() + "(" + leftSide + ","+ rightSide + ")"; + } + + public String toString(){ + return toASP(); + } + + protected abstract String getRuleName(); +} diff --git a/src/de/dhbwstuttgart/sat/asp/model/ASPPairEquals.java b/src/de/dhbwstuttgart/sat/asp/model/ASPPairEquals.java new file mode 100644 index 00000000..b67920bd --- /dev/null +++ b/src/de/dhbwstuttgart/sat/asp/model/ASPPairEquals.java @@ -0,0 +1,13 @@ +package de.dhbwstuttgart.sat.asp.model; + +public class ASPPairEquals extends ASPPair{ + private final static String ASP_PAIR_EQUALS_NAME = "equals"; + public ASPPairEquals(ASPType ls, ASPType rs){ + super(ls, rs); + } + + @Override + protected String getRuleName() { + return ASP_PAIR_EQUALS_NAME; + } +} diff --git a/src/de/dhbwstuttgart/sat/asp/model/ASPPairSmaller.java b/src/de/dhbwstuttgart/sat/asp/model/ASPPairSmaller.java new file mode 100644 index 00000000..882054cc --- /dev/null +++ b/src/de/dhbwstuttgart/sat/asp/model/ASPPairSmaller.java @@ -0,0 +1,13 @@ +package de.dhbwstuttgart.sat.asp.model; + +public class ASPPairSmaller extends ASPPair{ + private final static String ASP_PAIR_SMALLER_NAME = "smaller"; + public ASPPairSmaller(ASPType ls, ASPType rs){ + super(ls, rs); + } + + @Override + protected String getRuleName() { + return ASP_PAIR_SMALLER_NAME; + } +} diff --git a/src/de/dhbwstuttgart/sat/asp/model/ASPPairSmallerDot.java b/src/de/dhbwstuttgart/sat/asp/model/ASPPairSmallerDot.java new file mode 100644 index 00000000..0e6598c1 --- /dev/null +++ b/src/de/dhbwstuttgart/sat/asp/model/ASPPairSmallerDot.java @@ -0,0 +1,13 @@ +package de.dhbwstuttgart.sat.asp.model; + +public class ASPPairSmallerDot extends ASPPair{ + private final static String ASP_PAIR_SMALLER_NAME = "smallerDot"; + public ASPPairSmallerDot(ASPType ls, ASPType rs){ + super(ls, rs); + } + + @Override + protected String getRuleName() { + return ASP_PAIR_SMALLER_NAME; + } +} diff --git a/src/de/dhbwstuttgart/sat/asp/model/ASPParameterList.java b/src/de/dhbwstuttgart/sat/asp/model/ASPParameterList.java new file mode 100644 index 00000000..f0c06744 --- /dev/null +++ b/src/de/dhbwstuttgart/sat/asp/model/ASPParameterList.java @@ -0,0 +1,45 @@ +package de.dhbwstuttgart.sat.asp.model; + +import de.dhbwstuttgart.sat.asp.ASPGenerator; +import de.dhbwstuttgart.sat.asp.ASPWriter; +import de.dhbwstuttgart.syntaxtree.factory.NameGenerator; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +public class ASPParameterList { + private final static String ASP_PARAMLIST_NAME = "param"; + private final static String ASP_PARAMLIST_END_POINTER = "null"; + public final String name; + private final List types; + + public ASPParameterList(List types, ASPWriter writer){ + this.types = types; + if(types.size() == 0){ + name = ASP_PARAMLIST_END_POINTER; + }else{ + name = newName(); + String nextPointer = name; + Iterator it = types.iterator(); + while(it.hasNext()){ + ASPType t = it.next(); + String param = nextPointer + "," + t.toString() + ","; + nextPointer = newName(); + if(! it.hasNext())nextPointer = ASP_PARAMLIST_END_POINTER; + param += nextPointer; + writer.add(new ASPStatement(ASP_PARAMLIST_NAME + "(" + param + ")")); + //paramDefinitions.add(new ASPStatement(ASP_PARAMLIST_NAME + "(" + param + ")")); + } + } + } + + private String newName() { + return ASPGenerator.toConstant(NameGenerator.makeNewName()); + } + + public String toString(){ + return name; + } +} diff --git a/src/de/dhbwstuttgart/sat/asp/model/ASPRefType.java b/src/de/dhbwstuttgart/sat/asp/model/ASPRefType.java new file mode 100644 index 00000000..ba318876 --- /dev/null +++ b/src/de/dhbwstuttgart/sat/asp/model/ASPRefType.java @@ -0,0 +1,20 @@ +package de.dhbwstuttgart.sat.asp.model; + +public class ASPRefType implements ASPType { + public static final String ASP_TYPE = "type"; + private final ASPParameterList params; + private final String name; + + public ASPRefType(String name, ASPParameterList params){ + this.name = name; + this.params = params; + } + + public ASPParameterList getParams() { + return params; + } + + public String toString(){ + return ASP_TYPE + "(" + name +"," + params.name + ")"; + } +} diff --git a/src/de/dhbwstuttgart/sat/asp/model/ASPStatement.java b/src/de/dhbwstuttgart/sat/asp/model/ASPStatement.java new file mode 100644 index 00000000..8e4a1d35 --- /dev/null +++ b/src/de/dhbwstuttgart/sat/asp/model/ASPStatement.java @@ -0,0 +1,27 @@ +package de.dhbwstuttgart.sat.asp.model; + +public class ASPStatement { + private final String stmt; + public ASPStatement(String stmt) { + this.stmt = stmt; + } + + public String toString(){ + return stmt; + } + + @Override + public int hashCode() { + return stmt.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if(obj instanceof ASPStatement)return stmt.equals(((ASPStatement) obj).stmt); + return false; + } + + public String getASP() { + return stmt; + } +} diff --git a/src/de/dhbwstuttgart/sat/asp/model/ASPType.java b/src/de/dhbwstuttgart/sat/asp/model/ASPType.java new file mode 100644 index 00000000..e703596c --- /dev/null +++ b/src/de/dhbwstuttgart/sat/asp/model/ASPType.java @@ -0,0 +1,4 @@ +package de.dhbwstuttgart.sat.asp.model; + +public interface ASPType { +} diff --git a/src/de/dhbwstuttgart/sat/asp/model/ASPTypeVar.java b/src/de/dhbwstuttgart/sat/asp/model/ASPTypeVar.java new file mode 100644 index 00000000..e2f87636 --- /dev/null +++ b/src/de/dhbwstuttgart/sat/asp/model/ASPTypeVar.java @@ -0,0 +1,14 @@ +package de.dhbwstuttgart.sat.asp.model; + +public class ASPTypeVar implements ASPType{ + private final String name; + + public ASPTypeVar(String name){ + this.name = name; + } + + @Override + public String toString() { + return "typeVar("+ name +")"; + } +} diff --git a/src/de/dhbwstuttgart/syntaxtree/ASTVisitor.java b/src/de/dhbwstuttgart/syntaxtree/ASTVisitor.java index 9d3a7f6d..cecbc6cb 100644 --- a/src/de/dhbwstuttgart/syntaxtree/ASTVisitor.java +++ b/src/de/dhbwstuttgart/syntaxtree/ASTVisitor.java @@ -6,6 +6,8 @@ import de.dhbwstuttgart.syntaxtree.statement.literal.Null; import de.dhbwstuttgart.syntaxtree.type.*; import de.dhbwstuttgart.typeinference.constraints.Constraint; +import java.lang.reflect.Type; + public interface ASTVisitor extends StatementVisitor{ void visit(SourceFile sourceFile); diff --git a/src/de/dhbwstuttgart/syntaxtree/AbstractASTWalker.java b/src/de/dhbwstuttgart/syntaxtree/AbstractASTWalker.java index cd3027f5..d771bd93 100644 --- a/src/de/dhbwstuttgart/syntaxtree/AbstractASTWalker.java +++ b/src/de/dhbwstuttgart/syntaxtree/AbstractASTWalker.java @@ -37,7 +37,7 @@ public abstract class AbstractASTWalker implements ASTVisitor{ @Override public void visit(FormalParameter formalParameter) { - formalParameter.getType().accept(this); + formalParameter.getType().accept((ASTVisitor) this); } @Override @@ -105,7 +105,6 @@ public abstract class AbstractASTWalker implements ASTVisitor{ @Override public void visit(TypePlaceholder typePlaceholder) { - } @Override @@ -115,7 +114,6 @@ public abstract class AbstractASTWalker implements ASTVisitor{ @Override public void visit(GenericRefType genericRefType) { - } @Override @@ -200,7 +198,7 @@ public abstract class AbstractASTWalker implements ASTVisitor{ } @Override - public void visit(Receiver receiver) { + public void visit(ExpressionReceiver receiver) { receiver.expr.accept(this); } diff --git a/src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java b/src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java old mode 100755 new mode 100644 index 12d04da2..5d5fc3e2 --- a/src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java +++ b/src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java @@ -1,8 +1,10 @@ package de.dhbwstuttgart.syntaxtree; import de.dhbwstuttgart.core.IItemWithOffset; +import de.dhbwstuttgart.exceptions.DebugException; import de.dhbwstuttgart.parser.scope.JavaClassName; import de.dhbwstuttgart.syntaxtree.type.RefType; +import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; import de.dhbwstuttgart.syntaxtree.visual.ASTPrinter; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import de.dhbwstuttgart.typeinference.constraints.Constraint; @@ -16,19 +18,19 @@ import java.util.List; /** * Stellt jede Art von Klasse dar. Auch abstrakte Klassen und Interfaces */ -public class ClassOrInterface extends SyntaxTreeNode { +public class ClassOrInterface extends SyntaxTreeNode implements TypeScope{ protected int modifiers; protected JavaClassName name; private List fields = new ArrayList<>(); private List methods = new ArrayList<>(); private GenericDeclarationList genericClassParameters; - private RefTypeOrTPHOrWildcardOrGeneric superClass; + private RefType superClass; protected boolean isInterface; private List implementedInterfaces; private List constructors; public ClassOrInterface(int modifiers, JavaClassName name, List fielddecl, List methods, List constructors, GenericDeclarationList genericClassParameters, - RefTypeOrTPHOrWildcardOrGeneric superClass, Boolean isInterface, List implementedInterfaces, Token offset){ + RefType superClass, Boolean isInterface, List implementedInterfaces, Token offset){ super(offset); this.modifiers = modifiers; this.name = name; @@ -58,15 +60,27 @@ public class ClassOrInterface extends SyntaxTreeNode { return this.methods; } + /* public RefType getType() { return generateTypeOfClass(this.getClassName(), this.getGenerics(), this.getOffset()); } - + */ + //TODO: Das hier ist ein Problem. Je nach Kontext wird hier ein anderer Typ benötigt public static RefType generateTypeOfClass(JavaClassName name, GenericDeclarationList genericsOfClass ,Token offset){ - return new RefType(name, offset); + //Hier wird immer ein generischer Typ generiert, also mit Type placeholdern + List params = new ArrayList<>(); + for(GenericTypeVar genericTypeVar : genericsOfClass){ + //params.add(genericTypeVar.getTypePlaceholder()); + params.add(TypePlaceholder.fresh(offset)); + } + return new RefType(name, params, offset); } - public RefTypeOrTPHOrWildcardOrGeneric getSuperClass() { + /** + * Die Superklasse im Kontext dieser ClassOrInterface + * Das bedeutet, dass generische Variablen als GenericRefTypes dargestellt sind + */ + public RefType getSuperClass() { return superClass; } @@ -74,6 +88,11 @@ public class ClassOrInterface extends SyntaxTreeNode { return this.genericClassParameters; } + @Override + public RefTypeOrTPHOrWildcardOrGeneric getReturnType() { + return null; + } + public List getConstructors() { return constructors; } diff --git a/src/de/dhbwstuttgart/syntaxtree/Constructor.java b/src/de/dhbwstuttgart/syntaxtree/Constructor.java index 3423e377..bb48be40 100644 --- a/src/de/dhbwstuttgart/syntaxtree/Constructor.java +++ b/src/de/dhbwstuttgart/syntaxtree/Constructor.java @@ -14,9 +14,9 @@ public class Constructor extends Method { //TODO: Constructor braucht ein super-Statement - public Constructor(String name, RefTypeOrTPHOrWildcardOrGeneric returnType, int modifiers, ParameterList parameterList, Block codeInsideConstructor, - GenericDeclarationList gtvDeclarations, Token offset, List fieldInitializations, RefType superClass) { - super(name, returnType, modifiers, parameterList, prepareBlock(codeInsideConstructor,fieldInitializations, superClass), gtvDeclarations, offset); + public Constructor(int modifier, String name, RefTypeOrTPHOrWildcardOrGeneric returnType, int modifiers, ParameterList parameterList, Block codeInsideConstructor, + GenericDeclarationList gtvDeclarations, Token offset, List fieldInitializations) { + super(modifier, name, returnType, modifiers, parameterList, prepareBlock(codeInsideConstructor,fieldInitializations), gtvDeclarations, offset); } @@ -25,7 +25,7 @@ public class Constructor extends Method { * welche die Felder der zugehörigen Klasse dieses * Konstruktor initialisieren */ - protected static Block prepareBlock(Block constructorBlock, List fieldInitializations, RefType superClass){ + protected static Block prepareBlock(Block constructorBlock, List fieldInitializations){ List statements = constructorBlock.getStatements(); statements.add(0, new SuperCall(constructorBlock.getOffset())); return new Block(statements, constructorBlock.getOffset()); diff --git a/src/de/dhbwstuttgart/syntaxtree/ExceptionList.java b/src/de/dhbwstuttgart/syntaxtree/ExceptionList.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/Field.java b/src/de/dhbwstuttgart/syntaxtree/Field.java index 82c3053f..421f0ff3 100644 --- a/src/de/dhbwstuttgart/syntaxtree/Field.java +++ b/src/de/dhbwstuttgart/syntaxtree/Field.java @@ -3,13 +3,12 @@ package de.dhbwstuttgart.syntaxtree; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import org.antlr.v4.runtime.Token; -public class Field extends SyntaxTreeNode{ +import java.util.ArrayList; + +public class Field extends SyntaxTreeNode implements TypeScope{ private String name; private RefTypeOrTPHOrWildcardOrGeneric type; - - - private GenericDeclarationList genericParameters; public Field(String name, RefTypeOrTPHOrWildcardOrGeneric type, int modifier, Token offset){ super(offset); @@ -29,5 +28,15 @@ public class Field extends SyntaxTreeNode{ public void accept(ASTVisitor visitor) { visitor.visit(this); } + + @Override + public Iterable getGenerics() { + return new ArrayList<>(); + } + + @Override + public RefTypeOrTPHOrWildcardOrGeneric getReturnType() { + return type; + } } diff --git a/src/de/dhbwstuttgart/syntaxtree/FormalParameter.java b/src/de/dhbwstuttgart/syntaxtree/FormalParameter.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/GenericTypeVar.java b/src/de/dhbwstuttgart/syntaxtree/GenericTypeVar.java old mode 100755 new mode 100644 index c43fe068..02042ca3 --- a/src/de/dhbwstuttgart/syntaxtree/GenericTypeVar.java +++ b/src/de/dhbwstuttgart/syntaxtree/GenericTypeVar.java @@ -1,6 +1,7 @@ package de.dhbwstuttgart.syntaxtree; import de.dhbwstuttgart.parser.scope.GenericTypeName; +import de.dhbwstuttgart.parser.scope.JavaClassName; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import org.antlr.v4.runtime.Token; @@ -53,6 +54,14 @@ public class GenericTypeVar extends SyntaxTreeNode return name; } + public String getParsedName(){ + return name.toString(); + } + + public JavaClassName definingClass(){ + return name.getParentClass(); + } + @Override public void accept(ASTVisitor visitor) { visitor.visit(this); diff --git a/src/de/dhbwstuttgart/syntaxtree/Method.java b/src/de/dhbwstuttgart/syntaxtree/Method.java old mode 100755 new mode 100644 index 67d81cb4..3686fb4e --- a/src/de/dhbwstuttgart/syntaxtree/Method.java +++ b/src/de/dhbwstuttgart/syntaxtree/Method.java @@ -22,14 +22,14 @@ import de.dhbwstuttgart.syntaxtree.statement.Block; * @author janulrich * */ -public class Method extends Field implements IItemWithOffset, TypeScope +public class Method extends Field implements IItemWithOffset { public final Block block; private ParameterList parameterlist = new ParameterList(new ArrayList<>(), new NullToken()); private ExceptionList exceptionlist; private GenericDeclarationList generics; - public Method(String name, RefTypeOrTPHOrWildcardOrGeneric returnType, int modifiers, ParameterList parameterList, Block block, + public Method(int modifier, String name, RefTypeOrTPHOrWildcardOrGeneric returnType, int modifiers, ParameterList parameterList, Block block, GenericDeclarationList gtvDeclarations, Token offset) { super(name, returnType, modifiers, offset); this.parameterlist = parameterList; diff --git a/src/de/dhbwstuttgart/syntaxtree/ParameterList.java b/src/de/dhbwstuttgart/syntaxtree/ParameterList.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/SourceFile.java b/src/de/dhbwstuttgart/syntaxtree/SourceFile.java old mode 100755 new mode 100644 index 439a3a8c..945ee5d8 --- a/src/de/dhbwstuttgart/syntaxtree/SourceFile.java +++ b/src/de/dhbwstuttgart/syntaxtree/SourceFile.java @@ -13,13 +13,13 @@ public class SourceFile extends SyntaxTreeNode{ private String pkgName; public final List KlassenVektor; - public final List imports; + public final Set imports; /** * Die SourceFile repräsntiert eine zu einem Syntaxbaum eingelesene Java-Datei. * SourceFile stellt dabei den Wurzelknoten des Syntaxbaumes dar. */ - public SourceFile(String pkgName, List classDefinitions, List imports){ + public SourceFile(String pkgName, List classDefinitions, Set imports){ super(new NullToken()); this.KlassenVektor = classDefinitions; this.pkgName = pkgName; @@ -31,7 +31,7 @@ public class SourceFile extends SyntaxTreeNode{ } // Get imports (to test implementation) - public List getImports(){ + public Set getImports(){ return this.imports; } diff --git a/src/de/dhbwstuttgart/syntaxtree/StatementVisitor.java b/src/de/dhbwstuttgart/syntaxtree/StatementVisitor.java index b63e0438..195db230 100644 --- a/src/de/dhbwstuttgart/syntaxtree/StatementVisitor.java +++ b/src/de/dhbwstuttgart/syntaxtree/StatementVisitor.java @@ -40,8 +40,6 @@ public interface StatementVisitor { void visit(NewArray newArray); - void visit(Receiver receiver); - void visit(Return aReturn); void visit(ReturnVoid aReturn); @@ -67,4 +65,6 @@ public interface StatementVisitor { void visit(AssignToLocal assignLeftSide); void visit(SuperCall superCall); + + void visit(ExpressionReceiver expressionReceiver); } diff --git a/src/de/dhbwstuttgart/syntaxtree/TypeScope.java b/src/de/dhbwstuttgart/syntaxtree/TypeScope.java index 3631eb2e..f651648b 100644 --- a/src/de/dhbwstuttgart/syntaxtree/TypeScope.java +++ b/src/de/dhbwstuttgart/syntaxtree/TypeScope.java @@ -2,6 +2,8 @@ package de.dhbwstuttgart.syntaxtree; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; +import java.util.Collection; + public interface TypeScope { Iterable getGenerics(); diff --git a/src/de/dhbwstuttgart/syntaxtree/factory/ASTFactory.java b/src/de/dhbwstuttgart/syntaxtree/factory/ASTFactory.java index ec1e786c..046b97b8 100644 --- a/src/de/dhbwstuttgart/syntaxtree/factory/ASTFactory.java +++ b/src/de/dhbwstuttgart/syntaxtree/factory/ASTFactory.java @@ -5,6 +5,7 @@ import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.List; +import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.parser.NullToken; import de.dhbwstuttgart.parser.SyntaxTreeGenerator.GenericContext; import de.dhbwstuttgart.parser.scope.GenericTypeName; @@ -45,7 +46,11 @@ public class ASTFactory { java.lang.Class superjreClass = jreClass.getSuperclass(); RefType superClass; if(superjreClass != null){ - superClass = (RefType) createType(superjreClass, name, ""); + List params = new ArrayList<>(); + for(TypeVariable tv : superjreClass.getTypeParameters()){ + params.add(new RefType(new GenericTypeName(new GenericContext( name, null),tv.getName()), new NullToken())); + } + superClass = new RefType(new JavaClassName(superjreClass.getName()), params, new NullToken()); }else{//Jede Klasse und jedes Interface erbt von Object: (auch Object selbst!) superClass = (RefType) createType(java.lang.Object.class, name, ""); } @@ -83,13 +88,12 @@ public class ASTFactory { return null; } - return new de.dhbwstuttgart.syntaxtree.Constructor(name,returnType, modifier, parameterList, block, gtvDeclarations, offset, new ArrayList<>(), - createType(inClass.getSuperclass())); + return new de.dhbwstuttgart.syntaxtree.Constructor(constructor.getModifiers(), name,returnType, modifier, parameterList, block, gtvDeclarations, offset, new ArrayList<>()); } - private static RefType createType(Class classType) { - return createClass(classType).getType(); - } + //private static RefType createType(Class classType) { + // return createClass(classType).getType(); + //} public static Method createMethod(java.lang.reflect.Method jreMethod, java.lang.Class inClass){ String name = jreMethod.getName(); @@ -107,7 +111,7 @@ public class ASTFactory { Token offset = new NullToken(); int modifier = jreMethod.getModifiers(); - return new Method(name,returnType, modifier, parameterList, block, gtvDeclarations, offset); + return new Method(jreMethod.getModifiers(), name,returnType, modifier, parameterList, block, gtvDeclarations, offset); } public static GenericDeclarationList createGenerics(TypeVariable[] typeParameters, Class context, String methodName){ @@ -182,6 +186,9 @@ public class ASTFactory { public static ClassOrInterface createObjectClass() { return createClass(Object.class); } + public static RefType createObjectType() { + return new RefType(createClass(Object.class).getClassName(), new NullToken()); + } /* public Constructor createEmptyConstructor(Class parent){ diff --git a/src/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java b/src/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java index a4c40b98..6e48c797 100644 --- a/src/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java +++ b/src/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java @@ -3,41 +3,91 @@ package de.dhbwstuttgart.syntaxtree.factory; import java.util.*; import java.util.stream.Collectors; +import de.dhbwstuttgart.exceptions.DebugException; import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.parser.NullToken; import de.dhbwstuttgart.parser.scope.JavaClassName; import de.dhbwstuttgart.syntaxtree.ClassOrInterface; +import de.dhbwstuttgart.syntaxtree.GenericTypeVar; import de.dhbwstuttgart.syntaxtree.type.*; import de.dhbwstuttgart.syntaxtree.type.Void; +import de.dhbwstuttgart.syntaxtree.type.WildcardType; +import de.dhbwstuttgart.typeinference.constraints.Constraint; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.constraints.Pair; -import de.dhbwstuttgart.typeinference.result.PairTPHequalRefType; +import de.dhbwstuttgart.typeinference.result.PairTPHEqualTPH; +import de.dhbwstuttgart.typeinference.result.PairTPHequalRefTypeOrWildcardType; import de.dhbwstuttgart.typeinference.result.PairTPHsmallerTPH; import de.dhbwstuttgart.typeinference.result.ResultPair; -import de.dhbwstuttgart.typeinference.unify.model.ExtendsType; -import de.dhbwstuttgart.typeinference.unify.model.FiniteClosure; -import de.dhbwstuttgart.typeinference.unify.model.FunNType; -import de.dhbwstuttgart.typeinference.unify.model.UnifyPair; -import de.dhbwstuttgart.typeinference.unify.model.PairOperator; -import de.dhbwstuttgart.typeinference.unify.model.PlaceholderType; -import de.dhbwstuttgart.typeinference.unify.model.ReferenceType; -import de.dhbwstuttgart.typeinference.unify.model.SuperType; -import de.dhbwstuttgart.typeinference.unify.model.TypeParams; -import de.dhbwstuttgart.typeinference.unify.model.UnifyType; - +import de.dhbwstuttgart.typeinference.unify.model.*; public class UnifyTypeFactory { - public static FiniteClosure generateFC(List fromAvailableClasses){ + public static FiniteClosure generateFC(List fromClasses) throws ClassNotFoundException { + /* + TODO: Generics werden zu TPHs + Die transitive Hülle muss funktionieren. + Man darf schreiben List
extends AL + und Vector extends List + hier muss dann aber dennoch die Vererbung V < L < AL + hergestellt werden. + In einem solchen Vererbungsbaum dürfen die TPH auch die gleichen Namen haben. + Generell dürfen sie immer die gleichen Namen haben. + TODO: die transitive Hülle bilden + */ HashSet pairs = new HashSet<>(); - for(ClassOrInterface cl : fromAvailableClasses){ - UnifyType t1 = UnifyTypeFactory.convert(cl.getType()); - UnifyType t2 = UnifyTypeFactory.convert(cl.getSuperClass()); - pairs.add(generateSmallerPair(t1, t2)); + for(ClassOrInterface cly : fromClasses){ + pairs.addAll(getSuperTypes(cly, fromClasses)); } return new FiniteClosure(pairs); } + /** + * Bildet eine Kette vom übergebenen Typ bis hin zum höchsten bekannten Typ + * Als Generics werden TPHs benutzt, welche der Unifikationsalgorithmus korrekt interpretieren muss. + * Die verwendeten TPHs werden in der Kette nach oben gereicht, so erhält der selbe GTV immer den selben TPH + * @param forType + * @return + */ + private static List getSuperTypes(ClassOrInterface forType, List availableClasses) throws ClassNotFoundException { + return getSuperTypes(forType, availableClasses, new HashMap<>()); + } + + private static List getSuperTypes(ClassOrInterface forType, List availableClasses, HashMap gtvs) throws ClassNotFoundException { + List params = new ArrayList<>(); + //Generics mit gleichem Namen müssen den selben TPH bekommen + for(GenericTypeVar gtv : forType.getGenerics()){ + if(!gtvs.containsKey(gtv.getParsedName())) + gtvs.put(gtv.getParsedName(), PlaceholderType.freshPlaceholder()); + params.add(gtvs.get(gtv.getParsedName())); + } + Optional hasSuperclass = availableClasses.stream().filter(cl -> forType.getSuperClass().getName().equals(cl.getClassName())).findAny(); + ClassOrInterface superClass; + if(!hasSuperclass.isPresent()) //TODO: Wenn es die Object-Klasse ist, dann ist es in Ordnung, ansonsten Fehler ausgeben: + { + superClass = ASTFactory.createClass(ClassLoader.getSystemClassLoader().loadClass(forType.getSuperClass().getName().toString())); + }else{ + superClass = hasSuperclass.get(); + } + List superTypes; + if(superClass.getClassName().equals(ASTFactory.createObjectClass().getClassName())){ + superTypes = Arrays.asList(generateSmallerPair(convert(ASTFactory.createObjectType()), convert(ASTFactory.createObjectType()))); + }else{ + superTypes = getSuperTypes(superClass, availableClasses, gtvs); + } + + TypeParams paramList = new TypeParams(params); + UnifyType t1 = new ReferenceType(forType.getClassName().toString(), paramList); + UnifyType t2 = superTypes.get(0).getLhsType(); + + UnifyPair ret = generateSmallerPair(t1, t2); + List retList = new ArrayList<>(); + retList.add(ret); + retList.addAll(superTypes); + + return retList; + } + public static UnifyPair generateSmallerPair(UnifyType tl, UnifyType tr){ return new UnifyPair(tl, tr, PairOperator.SMALLER); } @@ -104,7 +154,7 @@ public class UnifyTypeFactory { } public static UnifyType convert(GenericRefType t){ - return new ReferenceType(t.getUniqueIdentifier()); + return new ReferenceType(t.getParsedName()); } public static UnifyType convert(WildcardType t){ @@ -120,6 +170,10 @@ public class UnifyTypeFactory { return constraints.map(UnifyTypeFactory::convert); } + public static Constraint convert(Constraint constraint){ + return constraint.stream().map(UnifyTypeFactory::convert).collect(Collectors.toCollection(Constraint::new)); + } + public static UnifyPair convert(Pair p) { if(p.GetOperator().equals(PairOperator.SMALLERDOT)) { UnifyPair ret = generateSmallerDotPair(UnifyTypeFactory.convert(p.TA1) @@ -146,8 +200,20 @@ public class UnifyTypeFactory { RefTypeOrTPHOrWildcardOrGeneric tl = UnifyTypeFactory.convert(mp.getLhsType(), tphs); RefTypeOrTPHOrWildcardOrGeneric tr = UnifyTypeFactory.convert(mp.getRhsType(), tphs); if(tl instanceof TypePlaceholder){ - if(tr instanceof TypePlaceholder) return new PairTPHsmallerTPH((TypePlaceholder)tl, (TypePlaceholder)tr); - return new PairTPHequalRefType((TypePlaceholder)tl, tr); + if(tr instanceof TypePlaceholder) { + + if(mp.getPairOp().equals(PairOperator.EQUALSDOT)) { + return new PairTPHEqualTPH((TypePlaceholder)tl, (TypePlaceholder)tr); + //Einfach ignorieren TODO: Das hier muss ausgebessert werden: + //return new PairTPHequalRefTypeOrWildcardType((TypePlaceholder)tl, ASTFactory.createObjectType()); + }else{ + return new PairTPHsmallerTPH((TypePlaceholder)tl, (TypePlaceholder)tr); + } + }else if(tr instanceof RefType){ + return new PairTPHequalRefTypeOrWildcardType((TypePlaceholder)tl, (RefType) tr); + }else if(tr instanceof WildcardType){ + return new PairTPHequalRefTypeOrWildcardType((TypePlaceholder)tl, (WildcardType) tr); + }else throw new NotImplementedException(); }else throw new NotImplementedException(); } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/ArgumentList.java b/src/de/dhbwstuttgart/syntaxtree/statement/ArgumentList.java old mode 100755 new mode 100644 index 75c92370..ed5a082b --- a/src/de/dhbwstuttgart/syntaxtree/statement/ArgumentList.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/ArgumentList.java @@ -2,6 +2,7 @@ package de.dhbwstuttgart.syntaxtree.statement; import de.dhbwstuttgart.syntaxtree.ASTVisitor; +import de.dhbwstuttgart.syntaxtree.StatementVisitor; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import org.antlr.v4.runtime.Token; @@ -20,8 +21,13 @@ public class ArgumentList extends SyntaxTreeNode return expr; } + @Override public void accept(ASTVisitor visitor) { visitor.visit(this); } + + public void accept(StatementVisitor visitor) { + visitor.visit(this); + } } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java b/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java old mode 100755 new mode 100644 index ed385c25..3af2de6f --- a/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java @@ -4,7 +4,6 @@ package de.dhbwstuttgart.syntaxtree.statement; import de.dhbwstuttgart.syntaxtree.StatementVisitor; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.constraints.ConstraintsFactory; import de.dhbwstuttgart.typeinference.unify.model.PairOperator; import org.antlr.v4.runtime.Token; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java b/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/BinaryExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/BinaryExpr.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Block.java b/src/de/dhbwstuttgart/syntaxtree/statement/Block.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/CastExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/CastExpr.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/EmptyStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/EmptyStmt.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Expression.java b/src/de/dhbwstuttgart/syntaxtree/statement/Expression.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/ExpressionReceiver.java b/src/de/dhbwstuttgart/syntaxtree/statement/ExpressionReceiver.java new file mode 100644 index 00000000..409cfe68 --- /dev/null +++ b/src/de/dhbwstuttgart/syntaxtree/statement/ExpressionReceiver.java @@ -0,0 +1,21 @@ +package de.dhbwstuttgart.syntaxtree.statement; + +import de.dhbwstuttgart.syntaxtree.StatementVisitor; +import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; +import org.antlr.v4.runtime.Token; + +public class ExpressionReceiver extends Receiver +{ + public final Expression expr; + + public ExpressionReceiver(Expression expr) + { + super(expr.getType(), expr.getOffset()); + this.expr = expr; + } + + @Override + public void accept(StatementVisitor visitor) { + visitor.visit(this); + } +} diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/FieldVar.java b/src/de/dhbwstuttgart/syntaxtree/statement/FieldVar.java index ba56fc5a..9380e951 100644 --- a/src/de/dhbwstuttgart/syntaxtree/statement/FieldVar.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/FieldVar.java @@ -7,7 +7,6 @@ import de.dhbwstuttgart.typeinference.assumptions.FieldAssumption; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.Constraint; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.constraints.ConstraintsFactory; import de.dhbwstuttgart.typeinference.unify.model.PairOperator; import org.antlr.v4.runtime.Token; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/ForStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/ForStmt.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/IfStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/IfStmt.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/InstanceOf.java b/src/de/dhbwstuttgart/syntaxtree/statement/InstanceOf.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java b/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java b/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java b/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java old mode 100755 new mode 100644 index 771423d8..435b1b65 --- a/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java @@ -8,7 +8,6 @@ import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.Constraint; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.constraints.ConstraintsFactory; import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption; import de.dhbwstuttgart.typeinference.constraints.Pair; import de.dhbwstuttgart.typeinference.unify.model.PairOperator; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/NegativeExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/NegativeExpr.java old mode 100755 new mode 100644 index ac826a78..67e71e95 --- a/src/de/dhbwstuttgart/syntaxtree/statement/NegativeExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/NegativeExpr.java @@ -3,8 +3,6 @@ import java.util.Hashtable; import java.util.Iterator; import org.antlr.v4.runtime.Token; -import org.apache.bcel.generic.ClassGen; -import org.apache.bcel.generic.InstructionList; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/NewArray.java b/src/de/dhbwstuttgart/syntaxtree/statement/NewArray.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/NewClass.java b/src/de/dhbwstuttgart/syntaxtree/statement/NewClass.java old mode 100755 new mode 100644 index b6f2a795..d29f3d53 --- a/src/de/dhbwstuttgart/syntaxtree/statement/NewClass.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/NewClass.java @@ -15,7 +15,6 @@ import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.Constraint; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.constraints.ConstraintsFactory; import de.dhbwstuttgart.typeinference.constraints.Pair; import de.dhbwstuttgart.typeinference.unify.model.PairOperator; import org.antlr.v4.runtime.Token; @@ -31,7 +30,7 @@ public class NewClass extends MethodCall * @param start */ public NewClass(RefType newClass, ArgumentList args, Token start) { - super(newClass, new Receiver(new EmptyStmt(start)), newClass.getName().toString(), args, start); + super(newClass, new ExpressionReceiver(new EmptyStmt(start)), newClass.getName().toString(), args, start); } @Override diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/NotExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/NotExpr.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/PositivExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/PositivExpr.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/PostDecExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/PostDecExpr.java old mode 100755 new mode 100644 index 50144b26..18b56f96 --- a/src/de/dhbwstuttgart/syntaxtree/statement/PostDecExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/PostDecExpr.java @@ -3,8 +3,6 @@ import java.util.Hashtable; import java.util.Iterator; import de.dhbwstuttgart.parser.antlr.Java8Parser; -import org.apache.bcel.generic.ClassGen; -import org.apache.bcel.generic.InstructionList; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/PostIncExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/PostIncExpr.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/PreDecExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/PreDecExpr.java old mode 100755 new mode 100644 index e1d311b8..de0fb0b1 --- a/src/de/dhbwstuttgart/syntaxtree/statement/PreDecExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/PreDecExpr.java @@ -3,8 +3,6 @@ import java.util.Hashtable; import java.util.Iterator; import org.antlr.v4.runtime.Token; -import org.apache.bcel.generic.ClassGen; -import org.apache.bcel.generic.InstructionList; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/PreIncExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/PreIncExpr.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Receiver.java b/src/de/dhbwstuttgart/syntaxtree/statement/Receiver.java old mode 100755 new mode 100644 index 09bc191c..93ee36a0 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Receiver.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Receiver.java @@ -1,26 +1,12 @@ package de.dhbwstuttgart.syntaxtree.statement; +import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; +import org.antlr.v4.runtime.Token; -import de.dhbwstuttgart.syntaxtree.StatementVisitor; -import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; -import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; - -public class Receiver extends Expression +public abstract class Receiver extends Expression { - public Expression expr; - /** - * Autor: J�rg B�uerle - * @param expr - */ - public Receiver(Expression expr) + public Receiver(RefTypeOrTPHOrWildcardOrGeneric type, Token offset) { - super(expr.getType(), expr.getOffset()); - this.expr = expr; - } - - @Override - public void accept(StatementVisitor visitor) { - visitor.visit(this); + super(type, offset); } } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Return.java b/src/de/dhbwstuttgart/syntaxtree/statement/Return.java old mode 100755 new mode 100644 index 434f1ce9..5a6a5312 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Return.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Return.java @@ -1,9 +1,6 @@ package de.dhbwstuttgart.syntaxtree.statement; import de.dhbwstuttgart.syntaxtree.StatementVisitor; -import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; -import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.constraints.ConstraintsFactory; import org.antlr.v4.runtime.Token; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Statement.java b/src/de/dhbwstuttgart/syntaxtree/statement/Statement.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/StaticClassName.java b/src/de/dhbwstuttgart/syntaxtree/statement/StaticClassName.java index d0ddb31c..a7089d8c 100644 --- a/src/de/dhbwstuttgart/syntaxtree/statement/StaticClassName.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/StaticClassName.java @@ -8,7 +8,7 @@ import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; import org.antlr.v4.runtime.Token; -public class StaticClassName extends Expression { +public class StaticClassName extends Receiver { public StaticClassName(JavaClassName className, Token offset) { super(new RefType(className, offset), offset); } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Super.java b/src/de/dhbwstuttgart/syntaxtree/statement/Super.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java b/src/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java index 44cf213b..42cfb8ee 100644 --- a/src/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java @@ -4,10 +4,6 @@ import de.dhbwstuttgart.syntaxtree.StatementVisitor; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.Void; import org.antlr.v4.runtime.Token; -import org.apache.bcel.Constants; -import org.apache.bcel.generic.InstructionFactory; -import org.apache.bcel.generic.InstructionHandle; -import org.apache.bcel.generic.InstructionList; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; @@ -21,7 +17,7 @@ public class SuperCall extends MethodCall } public SuperCall(ArgumentList argumentList, Token offset){ - super(new Void(offset), new Receiver(new This(offset)), "", argumentList, offset); + super(new Void(offset), new ExpressionReceiver(new This(offset)), "", argumentList, offset); } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/This.java b/src/de/dhbwstuttgart/syntaxtree/statement/This.java old mode 100755 new mode 100644 index 81899052..d35e7797 --- a/src/de/dhbwstuttgart/syntaxtree/statement/This.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/This.java @@ -3,14 +3,7 @@ package de.dhbwstuttgart.syntaxtree.statement; import de.dhbwstuttgart.syntaxtree.StatementVisitor; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; -import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; -import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; -import de.dhbwstuttgart.typeinference.constraints.ConstraintsFactory; -import de.dhbwstuttgart.typeinference.constraints.Pair; -import de.dhbwstuttgart.typeinference.unify.model.PairOperator; import org.antlr.v4.runtime.Token; -import org.antlr.v4.runtime.atn.SemanticContext; import de.dhbwstuttgart.exceptions.NotImplementedException; public class This extends Expression diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryMinus.java b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryMinus.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryNot.java b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryNot.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryPlus.java b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryPlus.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/literal/BoolLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/literal/BoolLiteral.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/literal/CharLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/literal/CharLiteral.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/literal/Literal.java b/src/de/dhbwstuttgart/syntaxtree/statement/literal/Literal.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/literal/Null.java b/src/de/dhbwstuttgart/syntaxtree/statement/literal/Null.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/literal/NumberLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/literal/NumberLiteral.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/literal/StringLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/literal/StringLiteral.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/type/ExtendsWildcardType.java b/src/de/dhbwstuttgart/syntaxtree/type/ExtendsWildcardType.java old mode 100755 new mode 100644 index 1852b323..d5abd93b --- a/src/de/dhbwstuttgart/syntaxtree/type/ExtendsWildcardType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/ExtendsWildcardType.java @@ -40,6 +40,11 @@ public class ExtendsWildcardType extends WildcardType{ visitor.visit(this); } + @Override + public A acceptTV(TypeVisitor visitor) { + return visitor.visit(this); + } + @Override public void accept(ResultSetVisitor visitor) { visitor.visit(this); diff --git a/src/de/dhbwstuttgart/syntaxtree/type/FunN.java b/src/de/dhbwstuttgart/syntaxtree/type/FunN.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/type/GenericRefType.java b/src/de/dhbwstuttgart/syntaxtree/type/GenericRefType.java old mode 100755 new mode 100644 index 9bd41cf2..a5d394aa --- a/src/de/dhbwstuttgart/syntaxtree/type/GenericRefType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/GenericRefType.java @@ -9,6 +9,7 @@ import org.antlr.v4.runtime.Token; public class GenericRefType extends RefTypeOrTPHOrWildcardOrGeneric { private GenericTypeName name; + public GenericRefType(GenericTypeName name, Token offset) { super(offset); @@ -19,7 +20,7 @@ public class GenericRefType extends RefTypeOrTPHOrWildcardOrGeneric return name; } - public String getUniqueIdentifier(){ + public String getParsedName(){ return name.toString(); } @@ -28,6 +29,11 @@ public class GenericRefType extends RefTypeOrTPHOrWildcardOrGeneric visitor.visit(this); } + @Override + public A acceptTV(TypeVisitor visitor) { + return visitor.visit(this); + } + @Override public void accept(ResultSetVisitor visitor) { visitor.visit(this); diff --git a/src/de/dhbwstuttgart/syntaxtree/type/RefType.java b/src/de/dhbwstuttgart/syntaxtree/type/RefType.java old mode 100755 new mode 100644 index 3a2f26e9..002e792d --- a/src/de/dhbwstuttgart/syntaxtree/type/RefType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/RefType.java @@ -11,13 +11,6 @@ import java.util.List; public class RefType extends RefTypeOrTPHOrWildcardOrGeneric { - /** - * Ist IsArray auf true, muss beim Codegen ein Zeichen [ gesetzt werden - * Bsp.: 15| tag = CONSTANT_Utf8, length = 22, ([Ljava/lang/String;)V - * Ist IsArray auf false, muss beim Codegen ein Zeichen [ gesetzt werden - * Bsp.: 9| tag = CONSTANT_Utf8, length = 21, (Ljava/lang/String;)V - */ - private boolean IsArray = false; protected final JavaClassName name; protected final List parameter; /** @@ -30,7 +23,7 @@ public class RefType extends RefTypeOrTPHOrWildcardOrGeneric public RefType(JavaClassName fullyQualifiedName, Token offset) { - this(fullyQualifiedName, null, offset); + this(fullyQualifiedName, new ArrayList<>(), offset); } @Override @@ -107,6 +100,11 @@ public class RefType extends RefTypeOrTPHOrWildcardOrGeneric visitor.visit(this); } + @Override + public A acceptTV(TypeVisitor visitor) { + return visitor.visit(this); + } + @Override public void accept(ResultSetVisitor visitor) { visitor.visit(this); diff --git a/src/de/dhbwstuttgart/syntaxtree/type/RefTypeOrTPHOrWildcardOrGeneric.java b/src/de/dhbwstuttgart/syntaxtree/type/RefTypeOrTPHOrWildcardOrGeneric.java index 75638712..8a573d16 100644 --- a/src/de/dhbwstuttgart/syntaxtree/type/RefTypeOrTPHOrWildcardOrGeneric.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/RefTypeOrTPHOrWildcardOrGeneric.java @@ -13,5 +13,6 @@ public abstract class RefTypeOrTPHOrWildcardOrGeneric extends SyntaxTreeNode{ @Override public abstract void accept(ASTVisitor visitor); + public abstract A acceptTV(TypeVisitor visitor); public abstract void accept(ResultSetVisitor visitor); } diff --git a/src/de/dhbwstuttgart/syntaxtree/type/SuperWildcardType.java b/src/de/dhbwstuttgart/syntaxtree/type/SuperWildcardType.java old mode 100755 new mode 100644 index 3fc8ffb9..f630583e --- a/src/de/dhbwstuttgart/syntaxtree/type/SuperWildcardType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/SuperWildcardType.java @@ -50,6 +50,11 @@ public class SuperWildcardType extends WildcardType{ visitor.visit(this); } + @Override + public A acceptTV(TypeVisitor visitor) { + return visitor.visit(this); + } + @Override public void accept(ResultSetVisitor visitor) { visitor.visit(this); diff --git a/src/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java b/src/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java old mode 100755 new mode 100644 index 99a34cd5..ab4414fd --- a/src/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java @@ -73,6 +73,11 @@ public class TypePlaceholder extends RefTypeOrTPHOrWildcardOrGeneric visitor.visit(this); } + @Override + public A acceptTV(TypeVisitor visitor) { + return visitor.visit(this); + } + @Override public void accept(ResultSetVisitor visitor) { visitor.visit(this); diff --git a/src/de/dhbwstuttgart/syntaxtree/type/TypeVisitor.java b/src/de/dhbwstuttgart/syntaxtree/type/TypeVisitor.java new file mode 100644 index 00000000..a3b7796f --- /dev/null +++ b/src/de/dhbwstuttgart/syntaxtree/type/TypeVisitor.java @@ -0,0 +1,13 @@ +package de.dhbwstuttgart.syntaxtree.type; + +public interface TypeVisitor { + A visit(RefType refType); + + A visit(SuperWildcardType superWildcardType); + + A visit(TypePlaceholder typePlaceholder); + + A visit(ExtendsWildcardType extendsWildcardType); + + A visit(GenericRefType genericRefType); +} diff --git a/src/de/dhbwstuttgart/syntaxtree/type/Void.java b/src/de/dhbwstuttgart/syntaxtree/type/Void.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/type/WildcardType.java b/src/de/dhbwstuttgart/syntaxtree/type/WildcardType.java old mode 100755 new mode 100644 diff --git a/src/de/dhbwstuttgart/syntaxtree/visual/OutputGenerator.java b/src/de/dhbwstuttgart/syntaxtree/visual/OutputGenerator.java index 0befcb2b..e760e458 100644 --- a/src/de/dhbwstuttgart/syntaxtree/visual/OutputGenerator.java +++ b/src/de/dhbwstuttgart/syntaxtree/visual/OutputGenerator.java @@ -11,7 +11,7 @@ import de.dhbwstuttgart.syntaxtree.type.*; import java.lang.reflect.Modifier; import java.util.Iterator; -public class OutputGenerator implements ASTVisitor { +public class OutputGenerator implements ASTVisitor{ private static final String TAB = " "; String tabs = ""; protected final StringBuilder out; @@ -270,11 +270,6 @@ public class OutputGenerator implements ASTVisitor { } - @Override - public void visit(Receiver receiver) { - receiver.expr.accept(this); - } - @Override public void visit(Return aReturn) { out.append("return "); @@ -349,4 +344,9 @@ public class OutputGenerator implements ASTVisitor { superCall.arglist.accept(this); out.append(")"); } + + @Override + public void visit(ExpressionReceiver receiver) { + receiver.expr.accept(this); + } } \ No newline at end of file diff --git a/src/de/dhbwstuttgart/syntaxtree/visual/TypeOutputGenerator.java b/src/de/dhbwstuttgart/syntaxtree/visual/TypeOutputGenerator.java index c0628ef9..dcefafa4 100644 --- a/src/de/dhbwstuttgart/syntaxtree/visual/TypeOutputGenerator.java +++ b/src/de/dhbwstuttgart/syntaxtree/visual/TypeOutputGenerator.java @@ -181,7 +181,7 @@ public class TypeOutputGenerator extends OutputGenerator { } @Override - public void visit(Receiver receiver) { + public void visit(ExpressionReceiver receiver) { super.visit(receiver); } diff --git a/src/de/dhbwstuttgart/typedeployment/TypeInsertFactory.java b/src/de/dhbwstuttgart/typedeployment/TypeInsertFactory.java index 737ef669..29492c31 100644 --- a/src/de/dhbwstuttgart/typedeployment/TypeInsertFactory.java +++ b/src/de/dhbwstuttgart/typedeployment/TypeInsertFactory.java @@ -29,7 +29,6 @@ public class TypeInsertFactory { public static TypeInsert createInsertPoints(RefTypeOrTPHOrWildcardOrGeneric type, Token offset, ClassOrInterface cl, Method m, ResultSet resultSet) { - Set ret = new HashSet<>(); ResolvedType resolvedType = resultSet.resolveType(type); TypeInsertPoint insertPoint = new TypeInsertPoint(offset, new TypeToInsertString(resolvedType.resolvedType).insert); @@ -101,7 +100,12 @@ class TypeToInsertString implements ResultSetVisitor{ } @Override - public void visit(PairTPHequalRefType p) { + public void visit(PairTPHequalRefTypeOrWildcardType p) { + + } + + @Override + public void visit(PairTPHEqualTPH p) { } diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/Assumption.java b/src/de/dhbwstuttgart/typeinference/assumptions/Assumption.java new file mode 100644 index 00000000..2435f58b --- /dev/null +++ b/src/de/dhbwstuttgart/typeinference/assumptions/Assumption.java @@ -0,0 +1,15 @@ +package de.dhbwstuttgart.typeinference.assumptions; + +import de.dhbwstuttgart.syntaxtree.TypeScope; + +public class Assumption { + private final TypeScope typeScope; + + public Assumption(TypeScope typeScope) { + this.typeScope = typeScope; + } + + public TypeScope getTypeScope() { + return typeScope; + } +} diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/FieldAssumption.java b/src/de/dhbwstuttgart/typeinference/assumptions/FieldAssumption.java index d0a278a5..62867a26 100644 --- a/src/de/dhbwstuttgart/typeinference/assumptions/FieldAssumption.java +++ b/src/de/dhbwstuttgart/typeinference/assumptions/FieldAssumption.java @@ -1,22 +1,31 @@ package de.dhbwstuttgart.typeinference.assumptions; +import de.dhbwstuttgart.syntaxtree.ClassOrInterface; +import de.dhbwstuttgart.syntaxtree.TypeScope; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; +import de.dhbwstuttgart.typeinference.constraints.GenericsResolver; -public class FieldAssumption { - private RefTypeOrTPHOrWildcardOrGeneric receiverType; +public class FieldAssumption extends Assumption{ + private ClassOrInterface receiverClass; private RefTypeOrTPHOrWildcardOrGeneric type; - public FieldAssumption(RefTypeOrTPHOrWildcardOrGeneric receiverType, - RefTypeOrTPHOrWildcardOrGeneric type){ + public FieldAssumption(ClassOrInterface receiverType, + RefTypeOrTPHOrWildcardOrGeneric type, TypeScope scope){ + super(scope); this.type = type; - this.receiverType = receiverType; + this.receiverClass = receiverType; } - public RefTypeOrTPHOrWildcardOrGeneric getReceiverType() { - return receiverType; + public ClassOrInterface getReceiverClass() { + return receiverClass; } - public RefTypeOrTPHOrWildcardOrGeneric getType() { - return type; + public RefTypeOrTPHOrWildcardOrGeneric getType(GenericsResolver resolver) { + return resolver.resolve(type); + } + + public RefTypeOrTPHOrWildcardOrGeneric getReceiverType(GenericsResolver resolver) { + + return null; } } diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/FunNClass.java b/src/de/dhbwstuttgart/typeinference/assumptions/FunNClass.java new file mode 100644 index 00000000..0eba225d --- /dev/null +++ b/src/de/dhbwstuttgart/typeinference/assumptions/FunNClass.java @@ -0,0 +1,43 @@ +package de.dhbwstuttgart.typeinference.assumptions; + +import com.sun.org.apache.regexp.internal.RE; +import de.dhbwstuttgart.parser.NullToken; +import de.dhbwstuttgart.parser.SyntaxTreeGenerator.GenericContext; +import de.dhbwstuttgart.parser.scope.GenericTypeName; +import de.dhbwstuttgart.parser.scope.JavaClassName; +import de.dhbwstuttgart.syntaxtree.ClassOrInterface; +import de.dhbwstuttgart.syntaxtree.GenericDeclarationList; +import de.dhbwstuttgart.syntaxtree.GenericTypeVar; +import de.dhbwstuttgart.syntaxtree.Method; +import de.dhbwstuttgart.syntaxtree.factory.ASTFactory; +import de.dhbwstuttgart.syntaxtree.factory.NameGenerator; +import de.dhbwstuttgart.syntaxtree.type.RefType; +import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; +import org.antlr.v4.runtime.Token; + +import java.util.ArrayList; +import java.util.List; + +public class FunNClass extends ClassOrInterface { + public FunNClass(List funNParams) { + super(0, new JavaClassName("Fun"+(funNParams.size()-1)), new ArrayList<>(), + createMethods(funNParams), new ArrayList<>(), createGenerics(funNParams), + ASTFactory.createObjectType(), true, new ArrayList<>(), new NullToken()); + + + } + + private static GenericDeclarationList createGenerics(List funNParams) { + List generics = new ArrayList<>(); + for(RefTypeOrTPHOrWildcardOrGeneric param : funNParams){ + generics.add(new GenericTypeVar(new GenericTypeName(new GenericContext( + new JavaClassName("Fun"+(funNParams.size()-1)), null), NameGenerator.makeNewName()), + new ArrayList<>(), new NullToken(), new NullToken())); + } + return new GenericDeclarationList(generics, new NullToken()); + } + + private static List createMethods(List funNParams) { + return null; + } +} diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/MethodAssumption.java b/src/de/dhbwstuttgart/typeinference/assumptions/MethodAssumption.java index c878a85e..066c3246 100644 --- a/src/de/dhbwstuttgart/typeinference/assumptions/MethodAssumption.java +++ b/src/de/dhbwstuttgart/typeinference/assumptions/MethodAssumption.java @@ -1,24 +1,42 @@ package de.dhbwstuttgart.typeinference.assumptions; +import de.dhbwstuttgart.parser.NullToken; +import de.dhbwstuttgart.syntaxtree.ClassOrInterface; +import de.dhbwstuttgart.syntaxtree.GenericTypeVar; import de.dhbwstuttgart.syntaxtree.ParameterList; +import de.dhbwstuttgart.syntaxtree.TypeScope; +import de.dhbwstuttgart.syntaxtree.statement.Assign; +import de.dhbwstuttgart.syntaxtree.type.FunN; +import de.dhbwstuttgart.syntaxtree.type.GenericRefType; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; +import de.dhbwstuttgart.typeinference.constraints.GenericsResolver; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; -public class MethodAssumption { - private RefType receiver; +public class MethodAssumption extends Assumption{ + private ClassOrInterface receiver; private RefTypeOrTPHOrWildcardOrGeneric retType; List params; - public MethodAssumption(RefType receiver, RefTypeOrTPHOrWildcardOrGeneric retType, List params){ + public MethodAssumption(ClassOrInterface receiver, RefTypeOrTPHOrWildcardOrGeneric retType, + List params, TypeScope scope){ + super(scope); this.receiver = receiver; this.retType = retType; this.params = params; } + /* public RefType getReceiverType() { + + return receiver; + } + */ + + public ClassOrInterface getReceiver(){ return receiver; } @@ -26,7 +44,35 @@ public class MethodAssumption { return retType; } - public List getArgTypes() { - return params; + public List getArgTypes(GenericsResolver resolver) { + List ret = new ArrayList<>(); + for(RefTypeOrTPHOrWildcardOrGeneric param : params){ + if(param instanceof GenericRefType){ //Generics in den Assumptions müssen umgewandelt werden. + param = resolver.resolve((GenericRefType) param); + } + ret.add(param); + } + return ret; + } + + /** + * + * @param resolver + * @return + */ + public RefTypeOrTPHOrWildcardOrGeneric getReceiverType(GenericsResolver resolver) { + List params = new ArrayList<>(); + for(GenericTypeVar gtv : receiver.getGenerics()){ + //Die Generics werden alle zu TPHs umgewandelt. + params.add(resolver.resolve(new GenericRefType(gtv.getName(), new NullToken()))); + } + RefTypeOrTPHOrWildcardOrGeneric receiverType; + if(receiver instanceof FunNClass){ + receiverType = new FunN(params); + }else{ + receiverType = new RefType(receiver.getClassName(), params, new NullToken()); + } + + return receiverType; } } diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceBlockInformation.java b/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceBlockInformation.java index b0d459df..df280d48 100644 --- a/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceBlockInformation.java +++ b/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceBlockInformation.java @@ -9,6 +9,7 @@ import de.dhbwstuttgart.syntaxtree.TypeScope; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import java.util.ArrayList; +import java.util.Collection; import java.util.Set; import java.util.Stack; import java.util.stream.Collectors; @@ -17,15 +18,14 @@ public class TypeInferenceBlockInformation extends TypeInferenceInformation { private TypeScope methodContext; private ClassOrInterface currentClass; - public TypeInferenceBlockInformation(Set availableClasses, + public TypeInferenceBlockInformation(Collection availableClasses, ClassOrInterface currentClass, TypeScope methodContext) { super(availableClasses); - this.methodContext = methodContext; + this.methodContext = new TypeScopeContainer(currentClass, methodContext); this.currentClass = currentClass; } public TypeInferenceBlockInformation(TypeInferenceBlockInformation oldScope, TypeScope newScope) { - this(oldScope.getAvailableClasses(), oldScope.currentClass, oldScope.methodContext); - methodContext = new TypeScopeContainer(methodContext, newScope); + this(oldScope.getAvailableClasses(), oldScope.currentClass, new TypeScopeContainer(oldScope.methodContext, newScope)); } public ClassOrInterface getCurrentClass() { return currentClass; @@ -33,28 +33,4 @@ public class TypeInferenceBlockInformation extends TypeInferenceInformation { public TypeScope getCurrentTypeScope() { return methodContext; } - - private class TypeScopeContainer implements TypeScope{ - ArrayList scopes = new ArrayList<>(); - Stack types = new Stack<>(); - public TypeScopeContainer(TypeScope scope1, TypeScope scope2){ - scopes.add(scope1); - scopes.add(scope2); - types.push(scope1.getReturnType()); - types.push(scope2.getReturnType()); - } - public void add(TypeScope scope){ - } - - @Override - public Iterable getGenerics() { - return Iterables.concat(scopes.stream(). - map(TypeScope::getGenerics).collect(Collectors.toList()).toArray(new Iterable[0])); - } - - @Override - public RefTypeOrTPHOrWildcardOrGeneric getReturnType() { - return types.peek(); - } - } } diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceInformation.java b/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceInformation.java index fe1c0cc9..737cd0c4 100644 --- a/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceInformation.java +++ b/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceInformation.java @@ -12,6 +12,7 @@ import de.dhbwstuttgart.typeinference.constraints.Constraint; import de.dhbwstuttgart.typeinference.constraints.Pair; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Set; @@ -26,9 +27,9 @@ Zweiteres hat den Vorteil, dass bei der Entwicklung leichter Dinge hinzugefügt Die ganze Logik steckt in dieser Klasse. */ public class TypeInferenceInformation { - private Set classes; + private Collection classes; - public TypeInferenceInformation(Set availableClasses){ + public TypeInferenceInformation(Collection availableClasses){ classes = availableClasses; } @@ -45,14 +46,15 @@ public class TypeInferenceInformation { for(ClassOrInterface cl : classes){ for(Field m : cl.getFieldDecl()){ if(m.getName().equals(name)){ - ret.add(new FieldAssumption(cl.getType(), checkGTV(m.getType()))); + + ret.add(new FieldAssumption(cl, checkGTV(m.getType()), new TypeScopeContainer(cl, m))); } } } return ret; } - public Set getAvailableClasses() { + public Collection getAvailableClasses() { return classes; } diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/TypeScopeContainer.java b/src/de/dhbwstuttgart/typeinference/assumptions/TypeScopeContainer.java new file mode 100644 index 00000000..c315fb52 --- /dev/null +++ b/src/de/dhbwstuttgart/typeinference/assumptions/TypeScopeContainer.java @@ -0,0 +1,32 @@ +package de.dhbwstuttgart.typeinference.assumptions; + +import com.google.common.collect.Iterables; +import de.dhbwstuttgart.syntaxtree.GenericTypeVar; +import de.dhbwstuttgart.syntaxtree.TypeScope; +import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; + +import java.util.ArrayList; +import java.util.Stack; +import java.util.stream.Collectors; + +public class TypeScopeContainer implements TypeScope { + ArrayList scopes = new ArrayList<>(); + Stack types = new Stack<>(); + public TypeScopeContainer(TypeScope scope1, TypeScope scope2){ + scopes.add(scope1); + scopes.add(scope2); + types.push(scope1.getReturnType()); + types.push(scope2.getReturnType()); + } + + @Override + public Iterable getGenerics() { + return Iterables.concat(scopes.stream(). + map(TypeScope::getGenerics).collect(Collectors.toList()).toArray(new Iterable[0])); + } + + @Override + public RefTypeOrTPHOrWildcardOrGeneric getReturnType() { + return types.peek(); + } +} \ No newline at end of file diff --git a/src/de/dhbwstuttgart/typeinference/constraints/ConstraintsFactory.java b/src/de/dhbwstuttgart/typeinference/constraints/ConstraintsFactory.java deleted file mode 100644 index 909f94d2..00000000 --- a/src/de/dhbwstuttgart/typeinference/constraints/ConstraintsFactory.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.dhbwstuttgart.typeinference.constraints; - -import de.dhbwstuttgart.syntaxtree.GenericTypeVar; -import de.dhbwstuttgart.syntaxtree.type.GenericRefType; -import de.dhbwstuttgart.syntaxtree.type.RefType; -import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; -import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; -import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; -import de.dhbwstuttgart.typeinference.unify.model.PairOperator; - -import java.util.ArrayList; -import java.util.List; - -public class ConstraintsFactory { - public static Pair createPair(RefTypeOrTPHOrWildcardOrGeneric t1, RefTypeOrTPHOrWildcardOrGeneric t2, PairOperator equalsdot, TypeInferenceBlockInformation info){ - //Check whether Generics are in the same class: - return new Pair(checkGeneric(t1, info), checkGeneric(t2, info), equalsdot); - } - public static Pair createPair(RefTypeOrTPHOrWildcardOrGeneric t1, - RefTypeOrTPHOrWildcardOrGeneric t2, TypeInferenceBlockInformation info){ - return createPair(t1,t2,PairOperator.SMALLERDOT, info); - } - - private static RefTypeOrTPHOrWildcardOrGeneric checkGeneric(RefTypeOrTPHOrWildcardOrGeneric type, TypeInferenceBlockInformation info){ - if(type instanceof GenericRefType){ - for(GenericTypeVar genericTypeVar : info.getCurrentTypeScope().getGenerics()){ - if(genericTypeVar.getName().equals(((GenericRefType)type).getName())){ - return new RefType(((GenericRefType)type).getName(),type.getOffset()); - } - } - //Nicht in den Generics in diesem Kontext enthalten: - return TypePlaceholder.fresh(type.getOffset()); - }else{ - return type; - } - } - -} diff --git a/src/de/dhbwstuttgart/typeinference/constraints/GenericsResolver.java b/src/de/dhbwstuttgart/typeinference/constraints/GenericsResolver.java new file mode 100644 index 00000000..59bcd4b4 --- /dev/null +++ b/src/de/dhbwstuttgart/typeinference/constraints/GenericsResolver.java @@ -0,0 +1,14 @@ +package de.dhbwstuttgart.typeinference.constraints; + +import de.dhbwstuttgart.syntaxtree.GenericTypeVar; +import de.dhbwstuttgart.syntaxtree.type.GenericRefType; +import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; +import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; + +/** + * Wird für Generics benötigt + * TODO: Erklörung! + */ +public interface GenericsResolver { + public RefTypeOrTPHOrWildcardOrGeneric resolve(RefTypeOrTPHOrWildcardOrGeneric generic); +} diff --git a/src/de/dhbwstuttgart/typeinference/constraints/Pair.java b/src/de/dhbwstuttgart/typeinference/constraints/Pair.java index c7e1f6b6..ab0cb3ea 100644 --- a/src/de/dhbwstuttgart/typeinference/constraints/Pair.java +++ b/src/de/dhbwstuttgart/typeinference/constraints/Pair.java @@ -104,5 +104,8 @@ public class Pair implements Serializable return eOperator; } + public boolean OperatorSmallerDot() { + return eOperator == PairOperator.SMALLERDOT; + } } // ino.end diff --git a/src/de/dhbwstuttgart/typeinference/result/PairTPHEqualTPH.java b/src/de/dhbwstuttgart/typeinference/result/PairTPHEqualTPH.java new file mode 100644 index 00000000..64d0ce0b --- /dev/null +++ b/src/de/dhbwstuttgart/typeinference/result/PairTPHEqualTPH.java @@ -0,0 +1,15 @@ +package de.dhbwstuttgart.typeinference.result; + +import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; +import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; + +public class PairTPHEqualTPH extends ResultPair { + public PairTPHEqualTPH(TypePlaceholder tl, TypePlaceholder tr) { + super(tl, tr); + } + + @Override + public void accept(ResultSetVisitor visitor) { + visitor.visit(this); + } +} diff --git a/src/de/dhbwstuttgart/typeinference/result/PairTPHequalRefType.java b/src/de/dhbwstuttgart/typeinference/result/PairTPHequalRefTypeOrWildcardType.java similarity index 75% rename from src/de/dhbwstuttgart/typeinference/result/PairTPHequalRefType.java rename to src/de/dhbwstuttgart/typeinference/result/PairTPHequalRefTypeOrWildcardType.java index 418dff9d..ef6dd00a 100644 --- a/src/de/dhbwstuttgart/typeinference/result/PairTPHequalRefType.java +++ b/src/de/dhbwstuttgart/typeinference/result/PairTPHequalRefTypeOrWildcardType.java @@ -7,11 +7,11 @@ import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; /** * Steht für A =. RefType */ -public class PairTPHequalRefType extends ResultPair{ +public class PairTPHequalRefTypeOrWildcardType extends ResultPair{ public final TypePlaceholder left; public final RefTypeOrTPHOrWildcardOrGeneric right; - public PairTPHequalRefType(TypePlaceholder left, RefTypeOrTPHOrWildcardOrGeneric right){ + public PairTPHequalRefTypeOrWildcardType(TypePlaceholder left, RefTypeOrTPHOrWildcardOrGeneric right){ super(left, right); this.left = left; this.right = right; diff --git a/src/de/dhbwstuttgart/typeinference/result/ResultPair.java b/src/de/dhbwstuttgart/typeinference/result/ResultPair.java index 4c754198..4415a939 100644 --- a/src/de/dhbwstuttgart/typeinference/result/ResultPair.java +++ b/src/de/dhbwstuttgart/typeinference/result/ResultPair.java @@ -5,22 +5,22 @@ import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; /** * Paare, welche das Unifikationsergebnis darstellen */ -public abstract class ResultPair { - private final RefTypeOrTPHOrWildcardOrGeneric left; - private final RefTypeOrTPHOrWildcardOrGeneric right; +public abstract class ResultPair { + private final A left; + private final B right; public abstract void accept(ResultSetVisitor visitor); - public ResultPair(RefTypeOrTPHOrWildcardOrGeneric left, RefTypeOrTPHOrWildcardOrGeneric right){ + public ResultPair(A left, B right){ this.left = left; this.right = right; } - public RefTypeOrTPHOrWildcardOrGeneric getLeft() { + public A getLeft() { return left; } - public RefTypeOrTPHOrWildcardOrGeneric getRight() { + public B getRight() { return right; } } diff --git a/src/de/dhbwstuttgart/typeinference/result/ResultSet.java b/src/de/dhbwstuttgart/typeinference/result/ResultSet.java index fef925ea..19701d7b 100644 --- a/src/de/dhbwstuttgart/typeinference/result/ResultSet.java +++ b/src/de/dhbwstuttgart/typeinference/result/ResultSet.java @@ -1,13 +1,10 @@ package de.dhbwstuttgart.typeinference.result; -import de.dhbwstuttgart.syntaxtree.AbstractASTWalker; +import de.dhbwstuttgart.exceptions.NotImplementedException; +import de.dhbwstuttgart.syntaxtree.GenericTypeVar; import de.dhbwstuttgart.syntaxtree.type.*; -import de.dhbwstuttgart.typeinference.constraints.Pair; -import javax.xml.transform.Result; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; import java.util.Set; public class ResultSet { @@ -19,18 +16,19 @@ public class ResultSet { public ResolvedType resolveType(RefTypeOrTPHOrWildcardOrGeneric type) { if(type instanceof TypePlaceholder) return new Resolver(this).resolve((TypePlaceholder)type); + if(type instanceof GenericRefType)return new ResolvedType(type, new HashSet<>()); if(type instanceof RefType){ RelatedTypeWalker related = new RelatedTypeWalker(null, this); type.accept(related); return new ResolvedType(type, related.relatedTPHs); }else{ - return new ResolvedType(type,new HashSet<>()); + throw new NotImplementedException(); + //return new ResolvedType(type,new HashSet<>()); } } //TODO Beim Einsetzen eines Generics, müssen die new und Methodenaufrufe verändert werden - } class Resolver implements ResultSetVisitor { @@ -46,6 +44,11 @@ class Resolver implements ResultSetVisitor { public ResolvedType resolve(TypePlaceholder tph){ toResolve = tph; resolved = null; + for(ResultPair resultPair : result.results){ + if(resultPair instanceof PairTPHEqualTPH && ((PairTPHEqualTPH) resultPair).getLeft().equals(toResolve)){ + return resolve(((PairTPHEqualTPH) resultPair).getRight()); + } + } for(ResultPair resultPair : result.results){ resultPair.accept(this); } @@ -67,7 +70,7 @@ class Resolver implements ResultSetVisitor { } @Override - public void visit(PairTPHequalRefType p) { + public void visit(PairTPHequalRefTypeOrWildcardType p) { if(p.left.equals(toResolve)){ resolved = p.right; RelatedTypeWalker related = new RelatedTypeWalker(null, result); @@ -76,6 +79,11 @@ class Resolver implements ResultSetVisitor { } } + @Override + public void visit(PairTPHEqualTPH p) { + //Do nothing. Dieser Fall wird in der resolve-Methode abgefangen + } + @Override public void visit(RefType refType) { @@ -110,8 +118,10 @@ class TPHResolver implements ResultSetVisitor { private final TypePlaceholder tph; Set resolved = new HashSet<>(); + private final ResultSet resultSet; TPHResolver(TypePlaceholder tph, ResultSet resultSet){ + this.resultSet = resultSet; this.tph = tph; for(ResultPair p : resultSet.results){ p.accept(this); @@ -129,8 +139,21 @@ class TPHResolver implements ResultSetVisitor { } @Override - public void visit(PairTPHequalRefType p) { + public void visit(PairTPHequalRefTypeOrWildcardType p) { + TypePlaceholder otherSide = null; + if(p.right.equals(tph)){ + otherSide = p.left; + } + if(otherSide != null){ + Set newResultSet = new HashSet<>(this.resultSet.results); + newResultSet.remove(p); + resolved.addAll(new TPHResolver(otherSide, new ResultSet(newResultSet)).resolved); + } + } + @Override + public void visit(PairTPHEqualTPH p) { + //ignorieren. Wird vom Resolver behandelt } @Override @@ -167,39 +190,49 @@ class RelatedTypeWalker implements ResultSetVisitor { /** * Läuft über das resultSet und speichert alle TPHs, welche mit start in Verbindung stehen - * @param start + * @param start - kann null sein, wenn der Walker für einen RefType benutzt wird * @param resultSet */ RelatedTypeWalker(TypePlaceholder start, ResultSet resultSet){ this.toResolve = start; this.resultSet = resultSet; - for(ResultPair p : resultSet.results){ - p.accept(this); - p.accept(this); - } + int resolved = 0; + do{ + resolved = relatedTPHs.size(); + for(ResultPair p : resultSet.results){ + p.accept(this); + p.accept(this); + } + }while(resolved - relatedTPHs.size() > 0); } @Override public void visit(PairTPHsmallerTPH p) { if(p.getRight().equals(toResolve)){ relatedTPHs.addAll(new TPHResolver(p.right, resultSet).resolved); - relatedTPHs.addAll(new RelatedTypeWalker(p.right, resultSet).relatedTPHs); + //relatedTPHs.addAll(new RelatedTypeWalker(p.right, resultSet).relatedTPHs); } if(p.getLeft().equals(toResolve)){ relatedTPHs.addAll(new TPHResolver(p.left, resultSet).resolved); - relatedTPHs.addAll(new RelatedTypeWalker(p.left, resultSet).relatedTPHs); + //relatedTPHs.addAll(new RelatedTypeWalker(p.left, resultSet).relatedTPHs); } } @Override - public void visit(PairTPHequalRefType p) { + public void visit(PairTPHequalRefTypeOrWildcardType p) { if(p.getLeft().equals(toResolve)){ p.getRight().accept(this); } } + @Override + public void visit(PairTPHEqualTPH p) { + //Kann ignoriert werden. Diese Fälle werden vom Resolver behandelt + } + /* Die folgenden Funktionen fügen alle TPHs an die relatedTPHs an, denen sie begegnen: + Das wird verwendet, wenn alle relatedTPHs aus den Parametern eines RefTypes angefügt werden sollen */ @Override diff --git a/src/de/dhbwstuttgart/typeinference/result/ResultSetVisitor.java b/src/de/dhbwstuttgart/typeinference/result/ResultSetVisitor.java index 3f21ae31..bed742dd 100644 --- a/src/de/dhbwstuttgart/typeinference/result/ResultSetVisitor.java +++ b/src/de/dhbwstuttgart/typeinference/result/ResultSetVisitor.java @@ -4,7 +4,8 @@ import de.dhbwstuttgart.syntaxtree.type.*; public interface ResultSetVisitor { void visit(PairTPHsmallerTPH p); - void visit(PairTPHequalRefType p); + void visit(PairTPHequalRefTypeOrWildcardType p); + void visit(PairTPHEqualTPH p); void visit(RefType refType); @@ -15,4 +16,5 @@ public interface ResultSetVisitor { void visit(TypePlaceholder typePlaceholder); void visit(ExtendsWildcardType extendsWildcardType); + } diff --git a/src/de/dhbwstuttgart/typeinference/typeAlgo/GenericsResolverSameName.java b/src/de/dhbwstuttgart/typeinference/typeAlgo/GenericsResolverSameName.java new file mode 100644 index 00000000..f8754e63 --- /dev/null +++ b/src/de/dhbwstuttgart/typeinference/typeAlgo/GenericsResolverSameName.java @@ -0,0 +1,56 @@ +package de.dhbwstuttgart.typeinference.typeAlgo; + +import de.dhbwstuttgart.syntaxtree.StatementVisitor; +import de.dhbwstuttgart.syntaxtree.type.*; +import de.dhbwstuttgart.typeinference.constraints.GenericsResolver; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * Ein GenericsResolver, welcher Generics mit dem selben Namen den selben TPH zuordnet + */ +public class GenericsResolverSameName implements GenericsResolver, TypeVisitor{ + + HashMap map = new HashMap<>(); + + @Override + public RefTypeOrTPHOrWildcardOrGeneric resolve(RefTypeOrTPHOrWildcardOrGeneric generic) { + return generic.acceptTV(this); + } + + @Override + public RefTypeOrTPHOrWildcardOrGeneric visit(RefType refType) { + List params = new ArrayList<>(); + for(RefTypeOrTPHOrWildcardOrGeneric param : refType.getParaList()){ + params.add(param.acceptTV(this)); + } + RefType ret = new RefType(refType.getName(), params, refType.getOffset()); + return ret; + } + + @Override + public RefTypeOrTPHOrWildcardOrGeneric visit(SuperWildcardType superWildcardType) { + return new SuperWildcardType(superWildcardType.getInnerType().acceptTV(this), superWildcardType.getOffset()); + } + + @Override + public RefTypeOrTPHOrWildcardOrGeneric visit(TypePlaceholder typePlaceholder) { + return typePlaceholder; + } + + @Override + public RefTypeOrTPHOrWildcardOrGeneric visit(ExtendsWildcardType extendsWildcardType) { + return new SuperWildcardType(extendsWildcardType.getInnerType().acceptTV(this), extendsWildcardType.getOffset()); + } + + @Override + public RefTypeOrTPHOrWildcardOrGeneric visit(GenericRefType genericRefType) { + String name = genericRefType.getParsedName(); + if(!map.containsKey(name)){ + map.put(name, TypePlaceholder.fresh(genericRefType.getOffset())); + } + return map.get(name); + } +} diff --git a/src/de/dhbwstuttgart/typeinference/typeAlgo/TYPE.java b/src/de/dhbwstuttgart/typeinference/typeAlgo/TYPE.java index a67ef8b9..4a41176c 100644 --- a/src/de/dhbwstuttgart/typeinference/typeAlgo/TYPE.java +++ b/src/de/dhbwstuttgart/typeinference/typeAlgo/TYPE.java @@ -12,19 +12,20 @@ import java.util.*; public class TYPE { - private final List sfs; + private final Collection sfs; + private final TypeInferenceInformation typeInferenceInformation; - public TYPE(List sourceFiles){ + public TYPE(Collection sourceFiles, Collection allAvailableClasses){ sfs = sourceFiles; + this.typeInferenceInformation = new TypeInferenceInformation(allAvailableClasses); } public ConstraintSet getConstraints() { ConstraintSet ret = new ConstraintSet(); - TypeInferenceInformation info = getTypeInferenceInformation(); for(SourceFile sf : sfs) for (ClassOrInterface cl : sf.KlassenVektor) { - ret.addAll(getConstraintsClass(cl ,info)); + ret.addAll(getConstraintsClass(cl ,typeInferenceInformation)); } return ret; } @@ -39,25 +40,28 @@ public class TYPE { } return ret; } + /* + TODO: Hier eine Information erstellen nur mit den importierte Klassen einer einzigen SourceFile + private TypeInferenceInformation getTypeInferenceInformation(sourceFile) { + ClassLoader classLoader = ClassLoader.getSystemClassLoader(); + Set classes = new HashSet<>(); - private TypeInferenceInformation getTypeInferenceInformation() { - ClassLoader classLoader = ClassLoader.getSystemClassLoader(); - Set classes = new HashSet<>(); - for(SourceFile sourceFile : sfs){ - for(JavaClassName importName : sourceFile.imports){ - System.out.println(importName); - try { - classes.add(ASTFactory.createClass(classLoader.loadClass(importName.toString()))); - } catch (ClassNotFoundException e) { - throw new DebugException("Klasse " + importName + " konnte nicht geladen werden"); + for(SourceFile sourceFile : sfs){ + for(JavaClassName importName : sourceFile.imports){ + System.out.println(importName); + try { + classes.add(ASTFactory.createClass(classLoader.loadClass(importName.toString()))); + } catch (ClassNotFoundException e) { + throw new DebugException("Klasse " + importName + " konnte nicht geladen werden"); + } } + classes.addAll(sourceFile.KlassenVektor); } - classes.addAll(sourceFile.KlassenVektor); + + return new TypeInferenceInformation(classes); } - return new TypeInferenceInformation(classes); - } - + */ private ConstraintSet getConstraintsMethod(Method m, TypeInferenceInformation info, ClassOrInterface currentClass) { if(m.block == null)return new ConstraintSet(); //Abstrakte Methoden generieren keine Constraints TypeInferenceBlockInformation blockInfo = new TypeInferenceBlockInformation(info.getAvailableClasses(), currentClass, m); @@ -67,7 +71,7 @@ public class TYPE { } private ConstraintSet getConstraintsConstructor(Constructor m, TypeInferenceInformation info, ClassOrInterface currentClass) { - TypeInferenceBlockInformation blockInfo = new TypeInferenceBlockInformation(info.getAvailableClasses(), currentClass, null); + TypeInferenceBlockInformation blockInfo = new TypeInferenceBlockInformation(info.getAvailableClasses(), currentClass, m); TYPEStmt methodScope = new TYPEStmt(blockInfo); //for(Statement stmt : m.fieldInitializations)stmt.accept(methodScope); ConstraintSet ret = this.getConstraintsMethod(m, info, currentClass); diff --git a/src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java b/src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java index 3d6fdf5d..2152fc65 100644 --- a/src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java +++ b/src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java @@ -6,27 +6,20 @@ import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.exceptions.TypeinferenceException; import de.dhbwstuttgart.parser.NullToken; import de.dhbwstuttgart.parser.SyntaxTreeGenerator.AssignToLocal; +import de.dhbwstuttgart.parser.antlr.Java8Parser; import de.dhbwstuttgart.syntaxtree.*; import de.dhbwstuttgart.syntaxtree.statement.*; import de.dhbwstuttgart.syntaxtree.statement.literal.Literal; import de.dhbwstuttgart.syntaxtree.statement.literal.Null; -import de.dhbwstuttgart.syntaxtree.type.FunN; -import de.dhbwstuttgart.syntaxtree.type.RefType; -import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; -import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; +import de.dhbwstuttgart.syntaxtree.type.*; import de.dhbwstuttgart.typeinference.assumptions.FieldAssumption; +import de.dhbwstuttgart.typeinference.assumptions.FunNClass; import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; -import de.dhbwstuttgart.typeinference.constraints.Constraint; -import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.constraints.ConstraintsFactory; -import de.dhbwstuttgart.typeinference.constraints.Pair; +import de.dhbwstuttgart.typeinference.constraints.*; import de.dhbwstuttgart.typeinference.unify.model.PairOperator; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; public class TYPEStmt implements StatementVisitor{ @@ -42,6 +35,21 @@ public class TYPEStmt implements StatementVisitor{ return constraintsSet; } + /** + * Erstellt einen neuen GenericResolver + * Die Idee dieser Datenstruktur ist es, GTVs einen eindeutigen TPH zuzuweisen. + * Bei Methodenaufrufen oder anderen Zugriffen, bei denen alle benutzten GTVs jeweils einen einheitlichen TPH bekommen müssen + * kann diese Klasse eingesetzt werden. Wichtig ist, dass hierfür jeweils eine frische Instanz benutzt wird. + * @return + */ + private static GenericsResolver getResolverInstance(){ + return new GenericsResolverSameName(); + } + + private static TypeScope createTypeScope(ClassOrInterface cl, Method method) { + return null; + } + @Override public void visit(ArgumentList arglist) { for(int i = 0;i oderConstraints = new HashSet<>(); for(FieldAssumption fieldAssumption : info.getFields(fieldVar.fieldVarName)){ Constraint constraint = new Constraint(); + GenericsResolver resolver = getResolverInstance(); + /*TODO Hier muss der Typ der Klasse ermittelt werden. In diesem müssen Generics mit TPHs ausgetauscht werden constraint.add(ConstraintsFactory.createPair( - fieldVar.receiver.getType(),fieldAssumption.getReceiverType(), info)); - constraint.add(ConstraintsFactory.createPair( - fieldVar.getType(),fieldAssumption.getType(), info)); + fieldVar.receiver.getType(),fieldAssumption.getReceiverType(), info.getCurrentTypeScope(), fieldAssumption.getTypeScope(), resolver)); + */ + constraint.add(new Pair(fieldVar.receiver.getType(), fieldAssumption.getReceiverType(resolver), PairOperator.EQUALSDOT)); + constraint.add(new Pair( + fieldVar.getType(), fieldAssumption.getType(resolver), PairOperator.EQUALSDOT)); oderConstraints.add(constraint); } if(oderConstraints.size() == 0) throw new TypeinferenceException("Kein Feld "+fieldVar.fieldVarName+ " gefunden", fieldVar.getOffset()); constraintsSet.addOderConstraint(oderConstraints); + + //Wegen dem Problem oben: + throw new NotImplementedException(); } @Override @@ -146,7 +161,8 @@ public class TYPEStmt implements StatementVisitor{ //Overloading: Set methodConstraints = new HashSet<>(); for(MethodAssumption m : this.getMethods(methodCall.name, methodCall.arglist, info)){ - methodConstraints.add(generateConstraint(methodCall, m, info)); + GenericsResolver resolver = getResolverInstance(); + methodConstraints.add(generateConstraint(methodCall, m, info, resolver)); } if(methodConstraints.size()<1){ throw new TypeinferenceException("Methode "+methodCall.name+" ist nicht vorhanden!",methodCall.getOffset()); @@ -159,7 +175,7 @@ public class TYPEStmt implements StatementVisitor{ //Overloading: Set methodConstraints = new HashSet<>(); for(MethodAssumption m : this.getConstructors(info, (RefType) methodCall.getType(), methodCall.getArgumentList())){ - methodConstraints.add(generateConstructorConstraint(methodCall, m, info)); + methodConstraints.add(generateConstructorConstraint(methodCall, m, info, getResolverInstance())); } if(methodConstraints.size()<1){ throw new TypeinferenceException("Konstruktor in Klasse "+methodCall.getType().toString()+" ist nicht vorhanden!",methodCall.getOffset()); @@ -173,15 +189,14 @@ public class TYPEStmt implements StatementVisitor{ } @Override - public void visit(Receiver receiver) { + public void visit(ExpressionReceiver receiver) { receiver.expr.accept(this); } @Override public void visit(Return returnExpr) { returnExpr.retexpr.accept(this); - constraintsSet.addUndConstraint(ConstraintsFactory.createPair( - returnExpr.getType(),info.getCurrentTypeScope().getReturnType(), PairOperator.EQUALSDOT, info)); + constraintsSet.addUndConstraint(new Pair(returnExpr.getType(),info.getCurrentTypeScope().getReturnType(), PairOperator.SMALLERDOT)); } @Override @@ -201,7 +216,29 @@ public class TYPEStmt implements StatementVisitor{ @Override public void visit(This aThis) { - constraintsSet.addUndConstraint(ConstraintsFactory.createPair( aThis.getType(), info.getCurrentClass().getType(), PairOperator.EQUALSDOT, info)); + //Im Falle von this, müssen die Generics in der Klasse als RefTypes behandelt werden. + ClassOrInterface currentClass = info.getCurrentClass(); + List params = new ArrayList<>(); + for(GenericTypeVar gtv : currentClass.getGenerics()){ + params.add(new GenericRefType(gtv.getName(), aThis.getOffset())); + } + RefType thisType = new RefType(currentClass.getClassName(), params, aThis.getOffset()); + constraintsSet.addUndConstraint(new Pair( + aThis.getType(), thisType, PairOperator.EQUALSDOT)); + } + + private static TypeScope createNullTypeScope() { + return new TypeScope() { + @Override + public Iterable getGenerics() { + return new ArrayList<>(); + } + + @Override + public RefTypeOrTPHOrWildcardOrGeneric getReturnType() { + return null; + } + }; } @Override @@ -249,20 +286,35 @@ public class TYPEStmt implements StatementVisitor{ METHOD CALL Section: */ - protected Constraint generateConstraint(MethodCall forMethod, MethodAssumption assumption, TypeInferenceBlockInformation info){ + protected Constraint generateConstraint(MethodCall forMethod, MethodAssumption assumption, + TypeInferenceBlockInformation info, GenericsResolver resolver){ Constraint methodConstraint = new Constraint(); - methodConstraint.add(ConstraintsFactory.createPair(forMethod.receiver.getType(), assumption.getReceiverType(), PairOperator.SMALLERDOT, info)); - methodConstraint.add(ConstraintsFactory.createPair(assumption.getReturnType(), forMethod.getType(), PairOperator.EQUALSDOT, info)); - methodConstraint.addAll(generateParameterConstraints(forMethod, assumption, info)); + ClassOrInterface receiverCl = assumption.getReceiver(); + /* + List params = new ArrayList<>(); + for(GenericTypeVar gtv : receiverCl.getGenerics()){ + //Die Generics werden alle zu TPHs umgewandelt. + params.add(resolver.resolve(gtv.getParsedName())); + } + + RefTypeOrTPHOrWildcardOrGeneric receiverType = new RefType(assumption.getReceiver().getClassName(), params, forMethod.getOffset()); + */ + methodConstraint.add(new Pair(forMethod.receiver.getType(), assumption.getReceiverType(resolver), + PairOperator.SMALLERDOT)); + methodConstraint.add(new Pair(assumption.getReturnType(), forMethod.getType(), + PairOperator.EQUALSDOT)); + methodConstraint.addAll(generateParameterConstraints(forMethod, assumption, info, resolver)); return methodConstraint; } - protected Set generateParameterConstraints(MethodCall foMethod, MethodAssumption assumption, TypeInferenceBlockInformation info) { + protected Set generateParameterConstraints(MethodCall foMethod, MethodAssumption assumption, + TypeInferenceBlockInformation info, GenericsResolver resolver) { Set ret = new HashSet<>(); for(int i = 0;i getMethods(String name, int numArgs, TypeInferenceBlockInformation info) { List ret = new ArrayList<>(); + //TODO: apply Methoden wieder anfügen. Diese könnten möglicherweise auch in den Assumptions auftauchen (überdenken) if(name.equals("apply")){ List funNParams = new ArrayList<>(); for(int i = 0; i< numArgs + 1 ; i++){ funNParams.add(TypePlaceholder.fresh(new NullToken())); } - ret.add(new MethodAssumption(new FunN(funNParams), funNParams.get(0), funNParams.subList(1, funNParams.size()))); + ret.add(new MethodAssumption(new FunNClass(funNParams), funNParams.get(0), funNParams.subList(1, funNParams.size()), + new TypeScope() { + @Override + public Iterable getGenerics() { + throw new NotImplementedException(); + } + + @Override + public RefTypeOrTPHOrWildcardOrGeneric getReturnType() { + throw new NotImplementedException(); + } + })); } for(ClassOrInterface cl : info.getAvailableClasses()){ for(Method m : cl.getMethods()){ @@ -283,7 +347,8 @@ public class TYPEStmt implements StatementVisitor{ m.getParameterList().getFormalparalist().size() == numArgs){ RefTypeOrTPHOrWildcardOrGeneric retType = info.checkGTV(m.getType()); - ret.add(new MethodAssumption(cl.getType(), retType, convertParams(m.getParameterList(),info))); + ret.add(new MethodAssumption(cl, retType, convertParams(m.getParameterList(),info), + createTypeScope(cl, m))); } } } @@ -295,6 +360,15 @@ public class TYPEStmt implements StatementVisitor{ } protected static List convertParams(ParameterList parameterList, TypeInferenceBlockInformation info){ + //TODO: Hier müssen die Parameter mit den TPHs in den GEnerics des Receivers verknüpft werden + /* + BEispiel: + auto test = new List(); + test.add("hallo"); + + Hier kriegt der Receiver ja den COnstraint TPH REceiver <. List + Dann mus bei dem Parameter der COnstraint entstehen: TPH A <. String + */ List params = new ArrayList<>(); for(FormalParameter fp : parameterList.getFormalparalist()){ params.add(info.checkGTV(fp.getType())); @@ -308,7 +382,8 @@ public class TYPEStmt implements StatementVisitor{ if(cl.getClassName().equals(ofType.getName())){ for(Method m : cl.getConstructors()){ if(m.getParameterList().getFormalparalist().size() == argList.getArguments().size()){ - ret.add(new MethodAssumption(ofType, ofType, convertParams(m.getParameterList(), info))); + ret.add(new MethodAssumption(cl, ofType, convertParams(m.getParameterList(), + info), createTypeScope(cl, m))); } } } @@ -316,10 +391,12 @@ public class TYPEStmt implements StatementVisitor{ return ret; } - protected Constraint generateConstructorConstraint(NewClass forConstructor, MethodAssumption assumption, TypeInferenceBlockInformation info){ + protected Constraint generateConstructorConstraint(NewClass forConstructor, MethodAssumption assumption, + TypeInferenceBlockInformation info, GenericsResolver resolver){ Constraint methodConstraint = new Constraint(); - methodConstraint.add(ConstraintsFactory.createPair(assumption.getReturnType(), forConstructor.getType(), PairOperator.SMALLERDOT, info)); - methodConstraint.addAll(generateParameterConstraints(forConstructor, assumption, info)); + methodConstraint.add(new Pair(assumption.getReturnType(), forConstructor.getType(), + PairOperator.SMALLERDOT)); + methodConstraint.addAll(generateParameterConstraints(forConstructor, assumption, info, resolver)); return methodConstraint; } diff --git a/src/de/dhbwstuttgart/typeinference/unify/RuleSet.java b/src/de/dhbwstuttgart/typeinference/unify/RuleSet.java index 2b641125..39ea0eff 100644 --- a/src/de/dhbwstuttgart/typeinference/unify/RuleSet.java +++ b/src/de/dhbwstuttgart/typeinference/unify/RuleSet.java @@ -575,8 +575,9 @@ public class RuleSet implements IRuleSet{ if(pair.getPairOp() == PairOperator.EQUALSDOT && pair.getLhsType() instanceof PlaceholderType) lhsType = (PlaceholderType) pair.getLhsType(); + rhsType = pair.getRhsType(); //PL eingefuegt 2017-09-29 statt !((rhsType = pair.getRhsType()) instanceof PlaceholderType) if(lhsType != null - && !((rhsType = pair.getRhsType()) instanceof PlaceholderType) + //&& !((rhsType = pair.getRhsType()) instanceof PlaceholderType) //PL geloescht am 2017-09-29 Begründung: auch Typvariablen muessen ersetzt werden. && typeMap.get(lhsType) > 1 // The type occurs in more pairs in the set than just the recent pair. && !rhsType.getTypeParams().occurs(lhsType)) { Unifier uni = new Unifier(lhsType, rhsType); @@ -688,7 +689,10 @@ public class RuleSet implements IRuleSet{ @Override public Optional> reduceFunN(UnifyPair pair) { - if(pair.getPairOp() != PairOperator.SMALLERDOT) + if((pair.getPairOp() != PairOperator.SMALLERDOT) + && (pair.getPairOp() != PairOperator.EQUALSDOT)) //PL 2017-10-03 hinzugefuegt + //da Regel auch fuer EQUALSDOT anwendbar + //TODO: fuer allen anderen Relationen noch pruefen return Optional.empty(); UnifyType lhsType = pair.getLhsType(); diff --git a/src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java b/src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java index be67ea09..2005a387 100644 --- a/src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java +++ b/src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java @@ -73,7 +73,7 @@ public class TypeUnifyTask extends RecursiveTask>> { * @param fc The finite closure * @return The set of all principal type unifiers */ - protected Set> unify(Set eq, IFiniteClosure fc, boolean parallel) { + protected Set> unify(Set eq, IFiniteClosure fc, boolean parallel) { /* * Step 1: Repeated application of reduce, adapt, erase, swap */ @@ -119,7 +119,10 @@ public class TypeUnifyTask extends RecursiveTask>> { // Sets of the "second level" Set undefinedPairs = new HashSet<>(); Set>>> secondLevelSets = calculatePairSets(eq2s, fc, undefinedPairs); - + //PL 2017-09-20: Im calculatePairSets wird möglicherweise O .< java.lang.Integer + //nicht ausgewertet Faculty Beispiel im 1. Schritt + //PL 2017-10-03 geloest, muesste noch mit FCs mit kleineren + //Typen getestet werden. // If pairs occured that did not match one of the cartesian product cases, // those pairs are contradictory and the unification is impossible. if(!undefinedPairs.isEmpty()) @@ -149,7 +152,6 @@ public class TypeUnifyTask extends RecursiveTask>> { Set>> eqPrimeSet = setOps.cartesianProduct(topLevelSets) .stream().map(x -> new HashSet<>(x)) .collect(Collectors.toCollection(HashSet::new)); - //System.out.println(result); Set> eqPrimePrimeSet = new HashSet<>(); @@ -164,12 +166,14 @@ public class TypeUnifyTask extends RecursiveTask>> { */ Optional> eqPrimePrime = rules.subst(eqPrime); - /* * Step 6 a) Restart (fork) for pairs where subst was applied */ if(parallel) { - if (eqPrime.equals(eq)) + if //(eqPrime.equals(eq)) //PL 2017-09-29 auskommentiert und durch + (!eqPrimePrime.isPresent()) //PL 2071-09-29 dies ersetzt + //Begruendung: Wenn in der Substitution keine Veraenderung + //(!eqPrimePrime.isPresent()) erfolgt ist, ist das Ergebnis erzielt. eqPrimePrimeSet.add(eqPrime); else if(eqPrimePrime.isPresent()) { TypeUnifyTask fork = new TypeUnifyTask(eqPrimePrime.get(), fc, true); @@ -183,7 +187,10 @@ public class TypeUnifyTask extends RecursiveTask>> { } } else { // sequentiell (Step 6b is included) - if (eqPrime.equals(eq)) + if //(eqPrime.equals(eq)) //PL 2017-09-29 auskommentiert und durch + (!eqPrimePrime.isPresent()) //PL 2071-09-29 dies ersetzt + //Begruendung: Wenn in der Substitution keine Veraenderung + //(!eqPrimePrime.isPresent()) erfolgt ist, ist das Ergebnis erzielt. eqPrimePrimeSet.add(eqPrime); else if(eqPrimePrime.isPresent()) eqPrimePrimeSet.addAll(unify(eqPrimePrime.get(), fc, false)); @@ -438,9 +445,10 @@ public class TypeUnifyTask extends RecursiveTask>> { Set cs = fc.getAllTypesByName(thetaPrime.getName()); cs.add(thetaPrime); - for(UnifyType c : cs) { + for(UnifyType c : cs) { Set thetaQs = fc.getChildren(c).stream().collect(Collectors.toCollection(HashSet::new)); - //thetaQs.add(thetaPrime); + thetaQs.add(thetaPrime); //PL 2017-10-03: War auskommentiert habe ich wieder einkommentiert, + //da children offensichtlich ein echtes kleiner und kein kleinergleich ist Set thetaQPrimes = new HashSet<>(); TypeParams cParams = c.getTypeParams(); if(cParams.size() == 0) diff --git a/src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java b/src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java index 9ace0e51..aba3d3f6 100644 --- a/src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java +++ b/src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java @@ -17,17 +17,18 @@ import de.dhbwstuttgart.typeinference.unify.interfaces.IUnify; * @author Florian Steurer */ public class FiniteClosure implements IFiniteClosure { - + /** * A map that maps every type to the node in the inheritance graph that contains that type. - */ + */ private HashMap> inheritanceGraph; /** * A map that maps every typename to the nodes of the inheritance graph that contain a type with that name. */ private HashMap>> strInheritanceGraph; - + + /** * The initial pairs of that define the inheritance tree */ @@ -38,7 +39,7 @@ public class FiniteClosure implements IFiniteClosure { */ public FiniteClosure(Set pairs) { this.pairs = new HashSet<>(pairs); - inheritanceGraph = new HashMap>(); + inheritanceGraph = new HashMap>(); // Build the transitive closure of the inheritance tree for(UnifyPair pair : pairs) { @@ -46,7 +47,7 @@ public class FiniteClosure implements IFiniteClosure { continue; // Add nodes if not already in the graph - if(!inheritanceGraph.containsKey(pair.getLhsType())) + if(!inheritanceGraph.containsKey(pair.getLhsType())) inheritanceGraph.put(pair.getLhsType(), new Node(pair.getLhsType())); if(!inheritanceGraph.containsKey(pair.getRhsType())) inheritanceGraph.put(pair.getRhsType(), new Node(pair.getRhsType())); @@ -61,7 +62,7 @@ public class FiniteClosure implements IFiniteClosure { parentNode.getPredecessors().stream().forEach(x -> x.addDescendant(childNode)); childNode.getDescendants().stream().forEach(x -> x.addPredecessor(parentNode)); } - + // Build the alternative representation with strings as keys strInheritanceGraph = new HashMap<>(); for(UnifyType key : inheritanceGraph.keySet()) { @@ -75,7 +76,7 @@ public class FiniteClosure implements IFiniteClosure { /** * Returns all types of the finite closure that are subtypes of the argument. * @return The set of subtypes of the argument. - */ + */ @Override public Set smaller(UnifyType type) { if(type instanceof FunNType) @@ -156,7 +157,7 @@ public class FiniteClosure implements IFiniteClosure { /** * Returns all types of the finite closure that are supertypes of the argument. * @return The set of supertypes of the argument. - */ + */ @Override public Set greater(UnifyType type) { if(type instanceof FunNType) @@ -240,7 +241,7 @@ public class FiniteClosure implements IFiniteClosure { return type.grArg(this); } - @Override + @Override public Set grArg(ReferenceType type) { Set result = new HashSet(); result.add(type); @@ -249,7 +250,7 @@ public class FiniteClosure implements IFiniteClosure { return result; } - @Override + @Override public Set grArg(FunNType type) { Set result = new HashSet(); result.add(type); @@ -267,7 +268,7 @@ public class FiniteClosure implements IFiniteClosure { return result; } - @Override + @Override public Set grArg(SuperType type) { Set result = new HashSet(); result.add(type); @@ -276,11 +277,11 @@ public class FiniteClosure implements IFiniteClosure { return result; } - @Override + @Override public Set grArg(PlaceholderType type) { HashSet result = new HashSet<>(); result.add(type); - return result; + return result; } @Override @@ -288,12 +289,12 @@ public class FiniteClosure implements IFiniteClosure { return type.smArg(this); } - @Override + @Override public Set smArg(ReferenceType type) { Set result = new HashSet(); result.add(type); return result; - } + } @Override public Set smArg(FunNType type) { @@ -316,7 +317,7 @@ public class FiniteClosure implements IFiniteClosure { } - @Override + @Override public Set smArg(SuperType type) { Set result = new HashSet(); result.add(type); @@ -329,20 +330,20 @@ public class FiniteClosure implements IFiniteClosure { return result; } - @Override + @Override public Set smArg(PlaceholderType type) { HashSet result = new HashSet<>(); - result.add(type); + result.add(type); return result; } - @Override - public Set getAllTypesByName(String typeName) { + @Override + public Set getAllTypesByName(String typeName) { if(!strInheritanceGraph.containsKey(typeName)) return new HashSet<>(); return strInheritanceGraph.get(typeName).stream().map(x -> x.getContent()).collect(Collectors.toCollection(HashSet::new)); } - + @Override public Optional getLeftHandedType(String typeName) { if(!strInheritanceGraph.containsKey(typeName)) @@ -392,7 +393,7 @@ public class FiniteClosure implements IFiniteClosure { * @param result Set of all permutations found so far * @param current The permutation of type params that is currently explored */ - protected void permuteParams(ArrayList> candidates, int idx, Set result, UnifyType[] current) { + protected void permuteParams(ArrayList> candidates, int idx, Set result, UnifyType[] current) { if(candidates.size() == idx) { result.add(new TypeParams(Arrays.copyOf(current, current.length))); return; diff --git a/src/de/dhbwstuttgart/typeinference/unify/model/TypeParams.java b/src/de/dhbwstuttgart/typeinference/unify/model/TypeParams.java index fd87eecc..dc90847b 100644 --- a/src/de/dhbwstuttgart/typeinference/unify/model/TypeParams.java +++ b/src/de/dhbwstuttgart/typeinference/unify/model/TypeParams.java @@ -24,8 +24,10 @@ public final class TypeParams implements Iterable{ */ public TypeParams(List types){ typeParams = new UnifyType[types.size()]; - for(int i=0;i{ if(other.size() != this.size()) return false; - + + for(int i = 0; i < this.size(); i++){ + //if(this.get(i) == null) + //System.out.print("s"); + } for(int i = 0; i < this.size(); i++) if(!(this.get(i).equals(other.get(i)))) return false; diff --git a/test/asp/typeinference/ASPTest.java b/test/asp/typeinference/ASPTest.java new file mode 100644 index 00000000..5074e4f3 --- /dev/null +++ b/test/asp/typeinference/ASPTest.java @@ -0,0 +1,68 @@ +package asp.typeinference; + +import de.dhbwstuttgart.core.JavaTXCompiler; +import de.dhbwstuttgart.sat.asp.ASPGenerator; +import de.dhbwstuttgart.syntaxtree.ClassOrInterface; +import de.dhbwstuttgart.syntaxtree.SourceFile; +import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; +import de.dhbwstuttgart.typeinference.constraints.Pair; +import org.junit.Test; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; + +public class ASPTest { + + public static final String rootDirectory = System.getProperty("user.dir")+"/test/javFiles/"; + private static final List filesToTest = new ArrayList<>(); + protected File fileToTest = null; + + public ASPTest(){ + } + + + @Test + public void test() throws IOException, ClassNotFoundException { + if(fileToTest != null)filesToTest.add(fileToTest); + else return; + //filesToTest.add(new File(rootDirectory+"Faculty.jav")); + //filesToTest.add(new File(rootDirectory+"mathStruc.jav")); + //filesToTest.add(new File(rootDirectory+"test.jav")); + filesToTest.add(new File(rootDirectory+"EmptyMethod.jav")); + //filesToTest.add(new File(rootDirectory+"fc.jav")); + //filesToTest.add(new File(rootDirectory+"Lambda.jav")); + //filesToTest.add(new File(rootDirectory+"Lambda2.jav")); + //filesToTest.add(new File(rootDirectory+"Lambda3.jav")); + //filesToTest.add(new File(rootDirectory+"Vector.jav")); + //filesToTest.add(new File(rootDirectory+"Generics.jav")); + //filesToTest.add(new File(rootDirectory+"MethodsEasy.jav")); + //filesToTest.add(new File(rootDirectory+"Matrix.jav")); + //filesToTest.add(new File(rootDirectory+"Import.jav")); + JavaTXCompiler compiler = new JavaTXCompiler(fileToTest); + List allClasses = new ArrayList<>(); + for(SourceFile sf : compiler.sourceFiles.values()) { + //allClasses.addAll(compiler.getAvailableClasses(sf)); + } + for(SourceFile sf : compiler.sourceFiles.values()) { + allClasses.addAll(sf.getClasses()); + } + + final ConstraintSet cons = compiler.getConstraints(); + ASPGenerator generator = new ASPGenerator(cons, allClasses); + System.out.println(generator.getASP()); + } + + static String readFile(String path, Charset encoding) + throws IOException + { + byte[] encoded = Files.readAllBytes(Paths.get(path)); + return new String(encoded, encoding); + } + +} + diff --git a/test/asp/typeinference/GenericsTest.java b/test/asp/typeinference/GenericsTest.java new file mode 100644 index 00000000..b0f0330a --- /dev/null +++ b/test/asp/typeinference/GenericsTest.java @@ -0,0 +1,9 @@ +package asp.typeinference; + +import java.io.File; + +public class GenericsTest extends ASPTest { + public GenericsTest() { + this.fileToTest = new File(rootDirectory+"Generics.jav"); + } +} \ No newline at end of file diff --git a/test/asp/typeinference/VectorTest.java b/test/asp/typeinference/VectorTest.java new file mode 100644 index 00000000..77ff4959 --- /dev/null +++ b/test/asp/typeinference/VectorTest.java @@ -0,0 +1,9 @@ +package asp.typeinference; + +import java.io.File; + +public class VectorTest extends ASPTest { + public VectorTest() { + this.fileToTest = new File(rootDirectory+"Vector.jav"); + } +} \ No newline at end of file diff --git a/test/bytecode/DuMethod.jav b/test/bytecode/DuMethod.jav new file mode 100644 index 00000000..b56f6c55 --- /dev/null +++ b/test/bytecode/DuMethod.jav @@ -0,0 +1,11 @@ +public class DuMethod{ + + method(a){ + return a; + } + + method(a){ + return a; + } + +} \ No newline at end of file diff --git a/test/bytecode/EmptyMethod.jav b/test/bytecode/EmptyMethod.jav new file mode 100644 index 00000000..961989df --- /dev/null +++ b/test/bytecode/EmptyMethod.jav @@ -0,0 +1,8 @@ +public class EmptyMethod{ + + public void m1(){ + System.out.println("test"); + } + + public void m2(){} +} diff --git a/test/bytecode/Faculty.jav b/test/bytecode/Faculty.jav new file mode 100644 index 00000000..5742d720 --- /dev/null +++ b/test/bytecode/Faculty.jav @@ -0,0 +1,14 @@ +class Faculty { + + Integer mul(Integer x, Integer y) { + return x; + } + + m () { + + var fact = (Integer x) -> { + return mul(x, x); + }; + return fact; + } +} diff --git a/test/bytecode/Faculty2.jav b/test/bytecode/Faculty2.jav new file mode 100644 index 00000000..828f06f5 --- /dev/null +++ b/test/bytecode/Faculty2.jav @@ -0,0 +1,10 @@ +class Faculty2 { + + m () { + + var fact = (Integer x) -> { + return x; + }; + return fact; + } +} \ No newline at end of file diff --git a/test/bytecode/Gen.jav b/test/bytecode/Gen.jav new file mode 100644 index 00000000..1f873919 --- /dev/null +++ b/test/bytecode/Gen.jav @@ -0,0 +1,5 @@ +public class Gen{ + Vector m(Vector v){ + return v; + } +} \ No newline at end of file diff --git a/test/bytecode/Generics.jav b/test/bytecode/Generics.jav new file mode 100644 index 00000000..2c7a67b6 --- /dev/null +++ b/test/bytecode/Generics.jav @@ -0,0 +1,15 @@ + +class Generics { + B mt1(B b){ + return mt1(b); + } +} + + +/* +Problem: +auto test = new List(); +auto test2 = new List(); +... //code, welcher möglicherweise test und test2 vertauscht +test.add("hallo"); +*/ \ No newline at end of file diff --git a/test/bytecode/IfTest.jav b/test/bytecode/IfTest.jav new file mode 100644 index 00000000..806e2157 --- /dev/null +++ b/test/bytecode/IfTest.jav @@ -0,0 +1,10 @@ +public class IfTest{ + Integer m1(Boolean b) { + Integer i; + if(b) { + return i; + } + + return i; + } +} \ No newline at end of file diff --git a/test/bytecode/Interface1.jav b/test/bytecode/Interface1.jav new file mode 100644 index 00000000..b741819c --- /dev/null +++ b/test/bytecode/Interface1.jav @@ -0,0 +1,3 @@ +public interface Interface1{ + public void test(); +} \ No newline at end of file diff --git a/test/bytecode/JavaTXCompilerTest.java b/test/bytecode/JavaTXCompilerTest.java new file mode 100644 index 00000000..f43a0740 --- /dev/null +++ b/test/bytecode/JavaTXCompilerTest.java @@ -0,0 +1,87 @@ +package bytecode; + +import de.dhbwstuttgart.bytecode.BytecodeGen; +import de.dhbwstuttgart.core.JavaTXCompiler; +import de.dhbwstuttgart.syntaxtree.SourceFile; +import de.dhbwstuttgart.typeinference.result.ResultPair; +import de.dhbwstuttgart.typeinference.result.ResultSet; +import org.junit.Test; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static org.junit.Assert.*; + +public class JavaTXCompilerTest { + + private static final String rootDirectory = System.getProperty("user.dir")+"/test/bytecode/"; + private static final List filesToTest = new ArrayList<>(); + + @Test + public void test() throws IOException, java.lang.ClassNotFoundException { + System.out.println(rootDirectory); + String fileName = "Generics"; + filesToTest.add(new File(rootDirectory+fileName+".jav")); + System.out.println(rootDirectory+fileName+".jav"); + JavaTXCompiler compiler = new JavaTXCompiler(filesToTest); + System.out.println("test"); + for(File f : filesToTest){ + String content = readFile(f.getPath(), StandardCharsets.UTF_8); + List typeinferenceResult = compiler.typeInference(); + HashMap bytecode = this.getBytecode(compiler.sourceFiles.get(f), typeinferenceResult.get(0)); + + for(ResultPair ep : typeinferenceResult.get(0).results) { + System.out.println(ep.getLeft() + " ->" + ep.getRight()); + } + + String name = ""; + int pos = f.getName().lastIndexOf("."); + if(pos != -1) { + name = f.getName().substring(0, pos); + } + this.writeClassFile(bytecode, name); + } + + } + + + public HashMap getBytecode(SourceFile sf, ResultSet resultSet) { + HashMap classFiles = new HashMap<>(); + BytecodeGen bytecodeGen = new BytecodeGen(classFiles,resultSet); + bytecodeGen.visit(sf); + return bytecodeGen.getClassFiles(); + } + + public void writeClassFile(HashMap classFiles, String name) { + FileOutputStream output; + byte[] bytecode = classFiles.get(name); + try { + System.out.println("generating .class file"); + output = new FileOutputStream(new File(System.getProperty("user.dir") + "/testBytecode/generatedBC/" +name+".class")); + output.write(bytecode); + output.close(); + System.out.println(".class file generated"); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + static String readFile(String path, Charset encoding) + throws IOException + { + byte[] encoded = Files.readAllBytes(Paths.get(path)); + return new String(encoded, encoding); + } + +} \ No newline at end of file diff --git a/test/bytecode/LamAssign.jav b/test/bytecode/LamAssign.jav new file mode 100644 index 00000000..e522bd3b --- /dev/null +++ b/test/bytecode/LamAssign.jav @@ -0,0 +1,9 @@ +class LamAssign { + + m () { + var lam1 = (Integer x) -> { + return x; + }; + return lam1; + } +} diff --git a/test/bytecode/LamRunnable.jav b/test/bytecode/LamRunnable.jav new file mode 100644 index 00000000..451858f2 --- /dev/null +++ b/test/bytecode/LamRunnable.jav @@ -0,0 +1,9 @@ +public class LamRunnable{ + + public LamRunnable(){ + + Runnable lam = () -> {System.out.println("lambda");}; + lam.run(); + } +} + \ No newline at end of file diff --git a/test/bytecode/Lambda.jav b/test/bytecode/Lambda.jav new file mode 100644 index 00000000..378eb4d3 --- /dev/null +++ b/test/bytecode/Lambda.jav @@ -0,0 +1,18 @@ +class Lambda{ + +methode(){ + return ((f) -> f); +} +} +/* +interface Fun0{ + A apply(); +} + +interface Fun1{ + A apply(B b); +} +*/ +interface Fun2{ + A apply(B b, C c); +} \ No newline at end of file diff --git a/test/bytecode/Lambda2.jav b/test/bytecode/Lambda2.jav new file mode 100644 index 00000000..fbcdaf55 --- /dev/null +++ b/test/bytecode/Lambda2.jav @@ -0,0 +1,32 @@ + +public class Lambda2 +{ + public static void main(List args){ + var listOfStrings = new List(); + var listOfObjects; + listOfObjects = map(listOfStrings, (a) -> a); +} + +public map(a , b){ + b.apply(a); + return a; +} + +/* +public static List map(List input, Function func) { + List output; + output = new List(); + output.add(func.apply(input.get())); + return output; +} +*/ +} + +class List{ + A get(); + void add(A); +} + +class Function{ + B apply(A a); +} \ No newline at end of file diff --git a/test/bytecode/Lambda3.jav b/test/bytecode/Lambda3.jav new file mode 100644 index 00000000..9c4e960c --- /dev/null +++ b/test/bytecode/Lambda3.jav @@ -0,0 +1,23 @@ + +public class Lambda2 +{ + /* + public static List map(List input, + Function func){ + input.add(func.apply(input.get())); + } + */ + public map(input,func){ + input.add(func.apply(input.get())); + return map(new List(), func); + } +} + +class List{ + A get(); + void add(A); +} + +class Function{ + B apply(A a); +} \ No newline at end of file diff --git a/test/bytecode/RecursiveMeth.jav b/test/bytecode/RecursiveMeth.jav new file mode 100644 index 00000000..be35a43c --- /dev/null +++ b/test/bytecode/RecursiveMeth.jav @@ -0,0 +1,5 @@ +public class RecursiveMeth{ + public Integer test(){ + return this.test(); + } +} \ No newline at end of file diff --git a/test/bytecode/ReturnMethod.jav b/test/bytecode/ReturnMethod.jav new file mode 100644 index 00000000..38386d0d --- /dev/null +++ b/test/bytecode/ReturnMethod.jav @@ -0,0 +1,6 @@ +class ReturnMethod{ + Integer r; + Integer mul(Integer x, Integer y) { + return r; + } +} \ No newline at end of file diff --git a/test/bytecode/VoidMeth.jav b/test/bytecode/VoidMeth.jav new file mode 100644 index 00000000..6b3ab212 --- /dev/null +++ b/test/bytecode/VoidMeth.jav @@ -0,0 +1,4 @@ +public class VoidMeth{ + public void test(){ + } +} \ No newline at end of file diff --git a/test/javFiles/EmptyClass.jav b/test/javFiles/EmptyClass.jav new file mode 100644 index 00000000..8160d7da --- /dev/null +++ b/test/javFiles/EmptyClass.jav @@ -0,0 +1,3 @@ +public class EmptyClass{ + +} \ No newline at end of file diff --git a/test/javFiles/EmptyMethod.jav b/test/javFiles/EmptyMethod.jav new file mode 100644 index 00000000..dd28fc69 --- /dev/null +++ b/test/javFiles/EmptyMethod.jav @@ -0,0 +1,37 @@ +public class EmptyMethod{ + static String s1 =""; + String s2; + public void m1(){ + //String s = ""; + System.out.println("test"); + //Integer ab = Math.abs(1); + //Math.abs(1); + //String lV = "local"; + //s1 = "1"; + //s1.concat("2"); + s2 = s1; + //m2(); + Clazz i = new Clazz(); + Integer i = new Integer(1); + } + + public void m2(){} +} + +class Clazz{} +/* +public class EmptyMethod2{ + public static test = "5"; + public void m1(Integer i, String j, Boolean b){ + //String s = ""; + EmptyMethod em = new EmptyMethod(); + em.m1(); + em.s1 = ""; + //Integer ab = Math.abs(1); + //Math.abs(1); + //String lV = "local"; + //s1 = "1"; + //s1.concat("2"); + //s2 = s1; + } +}*/ \ No newline at end of file diff --git a/test/javFiles/Faculty.jav b/test/javFiles/Faculty.jav index f69a48c7..c7cbf407 100644 --- a/test/javFiles/Faculty.jav +++ b/test/javFiles/Faculty.jav @@ -5,7 +5,7 @@ class Faculty { } m () { - auto fact = (Integer x) -> { + var fact = (Integer x) -> { return mul(x, fact.apply(x)); }; return fact; diff --git a/test/javFiles/Generics.jav b/test/javFiles/Generics.jav index 9e4361a9..c76b40aa 100644 --- a/test/javFiles/Generics.jav +++ b/test/javFiles/Generics.jav @@ -1,6 +1,7 @@ class Generics { - A mt1(A a, B b){ + // A mt1(A a, B b){ + B mt1(B a, B b){ return mt1(a, a); } } @@ -10,3 +11,11 @@ class Test { return new Generics().mt1(s,s); } } + +/* +Problem: +auto test = new List(); +auto test2 = new List(); +... //code, welcher möglicherweise test und test2 vertauscht +test.add("hallo"); +*/ \ No newline at end of file diff --git a/test/javFiles/Lambda2.jav b/test/javFiles/Lambda2.jav index b0ef8221..fbcdaf55 100644 --- a/test/javFiles/Lambda2.jav +++ b/test/javFiles/Lambda2.jav @@ -2,8 +2,8 @@ public class Lambda2 { public static void main(List args){ - auto listOfStrings = new List(); - auto listOfObjects; + var listOfStrings = new List(); + var listOfObjects; listOfObjects = map(listOfStrings, (a) -> a); } diff --git a/test/javFiles/LambdaRunnable.jav b/test/javFiles/LambdaRunnable.jav new file mode 100644 index 00000000..982680c3 --- /dev/null +++ b/test/javFiles/LambdaRunnable.jav @@ -0,0 +1,11 @@ + +public class LamRunnable{ + + public LamRunnable(){ + + + Runnable lam = () -> {System.out.println("lambda");}; + lam.run(); + } +} + diff --git a/test/javFiles/Matrix.jav b/test/javFiles/Matrix.jav index 65dc465a..e6aa84cd 100644 --- a/test/javFiles/Matrix.jav +++ b/test/javFiles/Matrix.jav @@ -1,5 +1,16 @@ import java.util.Vector; +class Matrix extends Vector> { + + methode(Matrix m) { + Vector> i; + methode(i); + } + } + +/* +import java.util.Vector; + class Matrix extends Vector> { Matrix mul_rec(Matrix m) { @@ -39,4 +50,5 @@ class Matrix extends Vector> { } return ret; } -} \ No newline at end of file +} +*/ \ No newline at end of file diff --git a/test/javFiles/Op1.jav b/test/javFiles/Op1.jav new file mode 100644 index 00000000..800f58b8 --- /dev/null +++ b/test/javFiles/Op1.jav @@ -0,0 +1,11 @@ +public class Op1{ + public Op1() { + + Runnable lam = () -> { + String test = ""; + String b = "b"; + test = b; + System.out.println(test);}; + //lam.run(); + } +} \ No newline at end of file diff --git a/test/javFiles/Subclass.jav b/test/javFiles/Subclass.jav new file mode 100644 index 00000000..fe6e9208 --- /dev/null +++ b/test/javFiles/Subclass.jav @@ -0,0 +1,6 @@ +public class Subclass extends Superclass { + + public void printMethod() { + super.printMethod(); + } +} \ No newline at end of file diff --git a/test/javFiles/Superclass.jav b/test/javFiles/Superclass.jav new file mode 100644 index 00000000..d58089de --- /dev/null +++ b/test/javFiles/Superclass.jav @@ -0,0 +1,6 @@ +public class Superclass { + + public void printMethod() { + System.out.println("Printed in Superclass."); + } +} diff --git a/test/javFiles/fc.jav b/test/javFiles/fc.jav new file mode 100644 index 00000000..a3278cbc --- /dev/null +++ b/test/javFiles/fc.jav @@ -0,0 +1,18 @@ +import java.util.List; + +class Test{ + methode(param1, param2, param3) { + param2.add(param3); + return param1.meth(param2); + } +} + +interface Klasse1{ + Klasse1 meth(List p); + Klasse1 meth(Klasse2 p); +} + +interface Klasse2{ + Klasse1 meth(Klasse1 p); + Klasse2 meth(Klasse2 p); +} \ No newline at end of file diff --git a/test/javFiles/mathStruc.jav b/test/javFiles/mathStruc.jav index adcdf649..93f901ce 100644 --- a/test/javFiles/mathStruc.jav +++ b/test/javFiles/mathStruc.jav @@ -6,7 +6,7 @@ mathStruc(A a) { } A model(){ A a; return a; } methode(){ -auto innerOp = o -> ms -> +var innerOp = o -> ms -> new mathStruc(o.apply(this.model(),ms.model())); return innerOp; } diff --git a/test/javFiles/test.jav b/test/javFiles/test.jav index b539c15d..303d167a 100644 --- a/test/javFiles/test.jav +++ b/test/javFiles/test.jav @@ -10,6 +10,6 @@ interface Klasse1{ } interface Klasse2{ - Klasse1 meth(Klasse1 p): - Klasse2 meth(Klasse2 p): + Klasse1 meth(Klasse1 p); + Klasse2 meth(Klasse2 p); } \ No newline at end of file diff --git a/test/javFiles/test1.jav b/test/javFiles/test1.jav new file mode 100644 index 00000000..4b34948e --- /dev/null +++ b/test/javFiles/test1.jav @@ -0,0 +1,7 @@ +class Faculty { + + int a; + m (int x) { + return a+x; + } +} diff --git a/test/parser/ExtendsTest.jav b/test/parser/ExtendsTest.jav new file mode 100644 index 00000000..9103f463 --- /dev/null +++ b/test/parser/ExtendsTest.jav @@ -0,0 +1,4 @@ +class C1 extends Object +{ + m(para) { return para; } +} \ No newline at end of file diff --git a/test/parser/FeatherWeightJavaTest.java b/test/parser/FeatherWeightJavaTest.java deleted file mode 100644 index 84113e0c..00000000 --- a/test/parser/FeatherWeightJavaTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package parser; - -import de.dhbwstuttgart.parser.JavaTXParser; -import de.dhbwstuttgart.syntaxtree.ClassOrInterface; -import de.dhbwstuttgart.syntaxtree.Field; -import de.dhbwstuttgart.syntaxtree.Method; -import de.dhbwstuttgart.syntaxtree.SourceFile; -import org.junit.Test; - -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Modifier; - -public class FeatherWeightJavaTest { - private static final String rootDirectory = System.getProperty("user.dir")+"/test/parser/"; - - @Test - public void test() throws IOException, ClassNotFoundException { - - JavaTXParser parser = new JavaTXParser(); - SourceFile f = parser.parse(new File(rootDirectory + "Methods.jav")); - - String pkgName = f.getPkgName(); - System.out.println("package: " + pkgName); - System.out.println("classes:"); - for(ClassOrInterface c : f.getClasses()){ - int mod = c.getModifiers(); - System.out.println(Modifier.toString(mod)); - System.out.println(c.getClassName().toString()); - System.out.println("{"); - for(Field field : c.getFieldDecl()){ - System.out.println(field.getName()); - if(field instanceof Method){ - System.out.println(((Method) field).getParameterList().getFormalparalist().toString()); - } - } - System.out.println("}"); - } - } -} diff --git a/test/parser/FieldInitializationTest.jav b/test/parser/FieldInitializationTest.jav index 302667b9..f7818cc3 100644 --- a/test/parser/FieldInitializationTest.jav +++ b/test/parser/FieldInitializationTest.jav @@ -1,3 +1,3 @@ class FieldInitializationTest{ - String var = "hallo"; + var var = "hallo"; } \ No newline at end of file diff --git a/test/parser/FieldTest.java b/test/parser/FieldTest.java deleted file mode 100644 index 134943e0..00000000 --- a/test/parser/FieldTest.java +++ /dev/null @@ -1,36 +0,0 @@ -package parser; - -import de.dhbwstuttgart.parser.JavaTXParser; -import de.dhbwstuttgart.syntaxtree.ClassOrInterface; -import de.dhbwstuttgart.syntaxtree.Field; -import de.dhbwstuttgart.syntaxtree.SourceFile; -import org.junit.Test; - -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Modifier; - -public class FieldTest { - private static final String rootDirectory = System.getProperty("user.dir")+"/test/parser/"; - - @Test - public void test() throws IOException, ClassNotFoundException, ClassNotFoundException { - - JavaTXParser parser = new JavaTXParser(); - SourceFile f = parser.parse(new File(rootDirectory + "FieldVarTest.jav")); - - String pkgName = f.getPkgName(); - System.out.println("package: " + pkgName); - System.out.println("classes:"); - for(ClassOrInterface c : f.getClasses()){ - int mod = c.getModifiers(); - System.out.println(Modifier.toString(mod)); - System.out.println(c.getClassName().toString()); - System.out.println("{"); - for(Field field : c.getFieldDecl()){ - System.out.println(field.getName()); - } - System.out.println("}"); - } - } -} diff --git a/test/parser/GeneralParserTest.java b/test/parser/GeneralParserTest.java index 53cb6f7b..c48e1320 100644 --- a/test/parser/GeneralParserTest.java +++ b/test/parser/GeneralParserTest.java @@ -5,7 +5,9 @@ import static org.junit.Assert.*; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; +import de.dhbwstuttgart.core.JavaTXCompiler; import de.dhbwstuttgart.parser.JavaTXParser; import org.junit.Test; @@ -25,6 +27,7 @@ public class GeneralParserTest{ List filenames = new ArrayList(); + /* filenames.add("NewTest.jav"); filenames.add("FieldInitializationTest.jav"); filenames.add("ImportTest.jav"); @@ -37,13 +40,10 @@ public class GeneralParserTest{ //filenames.add("GenericFieldVarTest.jav"); filenames.add("FieldVarTest.jav"); filenames.add("StructuralTypes.jav"); - JavaTXParser parser = new JavaTXParser(); + */ + filenames.add("ExtendsTest.jav"); try{ - for(String filename : filenames) { - System.out.println("Teste: "+filename); - parser.parse(new File(rootDirectory + filename)); - //TODO: Test ANTLR Parser - } + new JavaTXCompiler(filenames.stream().map(s -> new File(rootDirectory + s)).collect(Collectors.toList())); }catch(Exception exc){ exc.printStackTrace(); fail(); diff --git a/test/parser/RunParserTest.java b/test/parser/RunParserTest.java deleted file mode 100644 index f1c63434..00000000 --- a/test/parser/RunParserTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package parser; - -import de.dhbwstuttgart.parser.JavaTXParser; -import de.dhbwstuttgart.syntaxtree.SourceFile; -import de.dhbwstuttgart.syntaxtree.visual.ASTPrinter; -import org.junit.Test; - -import java.io.File; - -import static org.junit.Assert.*; - -public class RunParserTest { - - private static final String rootDirectory = System.getProperty("user.dir")+"/test/parser/"; - - @Test - public void testMain() throws Exception { - String[] args = new String[1]; - args[0] = rootDirectory+"WhileTest.jav"; - SourceFile sf = new JavaTXParser().parse(new File(args[0])); - System.out.println(ASTPrinter.print(sf)); - } -} \ No newline at end of file diff --git a/test/test.iml b/test/test.iml deleted file mode 100644 index a6c28e92..00000000 --- a/test/test.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/test/typeinference/FiniteClosureTest.java b/test/typeinference/FiniteClosureTest.java new file mode 100644 index 00000000..8b62e4e5 --- /dev/null +++ b/test/typeinference/FiniteClosureTest.java @@ -0,0 +1,9 @@ +package typeinference; + +import java.io.File; + +public class FiniteClosureTest extends JavaTXCompilerTest{ + public FiniteClosureTest() { +// this.fileToTest = new File(rootDirectory+"fc.jav"); + } +} \ No newline at end of file diff --git a/test/typeinference/GenericsTest.java b/test/typeinference/GenericsTest.java index 3811883d..abcef013 100644 --- a/test/typeinference/GenericsTest.java +++ b/test/typeinference/GenericsTest.java @@ -2,6 +2,7 @@ package typeinference; import java.io.File; +//TODO: Hier gibt es einen Fehler. Das erstellte ConstraintSet stimmt nicht public class GenericsTest extends JavaTXCompilerTest{ public GenericsTest() { this.fileToTest = new File(rootDirectory+"Generics.jav"); diff --git a/test/typeinference/JavaTXCompilerTest.java b/test/typeinference/JavaTXCompilerTest.java index 389cd6b7..fbbed9af 100644 --- a/test/typeinference/JavaTXCompilerTest.java +++ b/test/typeinference/JavaTXCompilerTest.java @@ -1,11 +1,23 @@ package typeinference; import de.dhbwstuttgart.core.JavaTXCompiler; +import de.dhbwstuttgart.parser.scope.JavaClassName; +import de.dhbwstuttgart.sat.asp.ASPGenerator; +import de.dhbwstuttgart.syntaxtree.ClassOrInterface; import de.dhbwstuttgart.syntaxtree.SourceFile; +import de.dhbwstuttgart.syntaxtree.factory.ASTFactory; +import de.dhbwstuttgart.syntaxtree.factory.UnifyTypeFactory; import de.dhbwstuttgart.syntaxtree.visual.ASTTypePrinter; import de.dhbwstuttgart.typedeployment.TypeInsert; import de.dhbwstuttgart.typedeployment.TypeInsertFactory; +import de.dhbwstuttgart.typeinference.constraints.Constraint; +import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; +import de.dhbwstuttgart.typeinference.constraints.Pair; import de.dhbwstuttgart.typeinference.result.ResultSet; +import de.dhbwstuttgart.typeinference.typeAlgo.TYPE; +import de.dhbwstuttgart.typeinference.unify.TypeUnify; +import de.dhbwstuttgart.typeinference.unify.model.FiniteClosure; +import de.dhbwstuttgart.typeinference.unify.model.UnifyPair; import org.junit.Test; import java.io.File; @@ -17,10 +29,12 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; -public class JavaTXCompilerTest extends JavaTXCompiler { +public class JavaTXCompilerTest { public static final String rootDirectory = System.getProperty("user.dir")+"/test/javFiles/"; private static final List filesToTest = new ArrayList<>(); @@ -28,16 +42,15 @@ public class JavaTXCompilerTest extends JavaTXCompiler { public JavaTXCompilerTest(){ } - @Test - public void test() throws IOException, java.lang.ClassNotFoundException { - for(URL url : ((URLClassLoader) (Thread.currentThread().getContextClassLoader())).getURLs()){ - System.out.println(url); - } + public void test() throws IOException, ClassNotFoundException { if(fileToTest != null)filesToTest.add(fileToTest); + else return; //filesToTest.add(new File(rootDirectory+"Faculty.jav")); //filesToTest.add(new File(rootDirectory+"mathStruc.jav")); //filesToTest.add(new File(rootDirectory+"test.jav")); + filesToTest.add(new File(rootDirectory+"EmptyMethod.jav")); + //filesToTest.add(new File(rootDirectory+"fc.jav")); //filesToTest.add(new File(rootDirectory+"Lambda.jav")); //filesToTest.add(new File(rootDirectory+"Lambda2.jav")); //filesToTest.add(new File(rootDirectory+"Lambda3.jav")); @@ -46,16 +59,27 @@ public class JavaTXCompilerTest extends JavaTXCompiler { //filesToTest.add(new File(rootDirectory+"MethodsEasy.jav")); //filesToTest.add(new File(rootDirectory+"Matrix.jav")); //filesToTest.add(new File(rootDirectory+"Import.jav")); - for(File f : filesToTest){ - SourceFile sf = this.parse(f); - System.out.println(ASTTypePrinter.print(this.sourceFiles.get(sourceFiles.size()-1))); - for(ResultSet resultSet : this.typeInference()){ + JavaTXCompiler compiler = new JavaTXCompiler(fileToTest); + + List results = compiler.typeInference(); + + for(File f : compiler.sourceFiles.keySet()){ + SourceFile sf = compiler.sourceFiles.get(f); + System.out.println(ASTTypePrinter.print(sf)); + //List results = compiler.typeInference(); PL 2017-10-03 vor die For-Schleife gezogen + assert results.size()>0; + Set insertedTypes = new HashSet<>(); + for(ResultSet resultSet : results){ Set result = TypeInsertFactory.createTypeInsertPoints(sf, resultSet); + assert result.size()>0; String content = readFile(f.getPath(), StandardCharsets.UTF_8); for(TypeInsert tip : result){ - System.out.println(tip.insert(content)); + insertedTypes.add(tip.insert(content)); } } + for(String s : insertedTypes){ + System.out.println(s); + } } } diff --git a/test/typeinference/Lambda2Test.java b/test/typeinference/Lambda2Test.java deleted file mode 100644 index 84867cd9..00000000 --- a/test/typeinference/Lambda2Test.java +++ /dev/null @@ -1,9 +0,0 @@ -package typeinference; - -import java.io.File; - -public class Lambda2Test extends JavaTXCompilerTest{ - public Lambda2Test() { - this.fileToTest = new File(rootDirectory+"Lambda2.jav"); - } -} \ No newline at end of file diff --git a/test/typeinference/Lambda3Test.java b/test/typeinference/Lambda3Test.java deleted file mode 100644 index 843eee10..00000000 --- a/test/typeinference/Lambda3Test.java +++ /dev/null @@ -1,9 +0,0 @@ -package typeinference; - -import java.io.File; - -public class Lambda3Test extends JavaTXCompilerTest{ - public Lambda3Test() { - this.fileToTest = new File(rootDirectory+"Lambda3.jav"); - } -} \ No newline at end of file diff --git a/test/typeinference/LambdaTest.java b/test/typeinference/LambdaTest.java deleted file mode 100644 index abdaa140..00000000 --- a/test/typeinference/LambdaTest.java +++ /dev/null @@ -1,9 +0,0 @@ -package typeinference; - -import java.io.File; - -public class LambdaTest extends JavaTXCompilerTest{ - public LambdaTest() { - this.fileToTest = new File(rootDirectory+"Lambda.jav"); - } -} \ No newline at end of file diff --git a/test/typeinference/mathStrucTest.java b/test/typeinference/mathStrucTest.java deleted file mode 100644 index 0181be72..00000000 --- a/test/typeinference/mathStrucTest.java +++ /dev/null @@ -1,9 +0,0 @@ -package typeinference; - -import java.io.File; - -public class mathStrucTest extends JavaTXCompilerTest{ - public mathStrucTest() { - this.fileToTest = new File(rootDirectory+"mathStruc.jav"); - } -} \ No newline at end of file diff --git a/testBytecode/Field.java b/testBytecode/Field.java new file mode 100644 index 00000000..50002082 --- /dev/null +++ b/testBytecode/Field.java @@ -0,0 +1,6 @@ +public class Field{ + public void m(){ + MethFieldVar mF = new MethFieldVar(); + mF.s1 = "Field S1"; + } +} diff --git a/testBytecode/Import.java b/testBytecode/Import.java new file mode 100644 index 00000000..f3519acb --- /dev/null +++ b/testBytecode/Import.java @@ -0,0 +1,8 @@ +import java.util.Vector; + +class Import { + void methode(){ + Vector v = new Vector(); + v.add(v); + } +} diff --git a/testBytecode/Lam1.java b/testBytecode/Lam1.java new file mode 100644 index 00000000..142feed2 --- /dev/null +++ b/testBytecode/Lam1.java @@ -0,0 +1,10 @@ +import java.util.function.Function; +public class Lam1{ + public Lam1() { + Function fun = (x) -> x+"1"; + fun.apply("2"); + + Runnable lam = () -> System.out.println("lambda"); + lam.run(); + } +} diff --git a/testBytecode/LamRun.java b/testBytecode/LamRun.java new file mode 100644 index 00000000..fdaf0852 --- /dev/null +++ b/testBytecode/LamRun.java @@ -0,0 +1,8 @@ +public class LamRun{ + + public void mRun(){ + + Runnable lam = () -> System.out.println("lambda"); + lam.run(); + } +} diff --git a/testBytecode/MethFieldVar.java b/testBytecode/MethFieldVar.java new file mode 100644 index 00000000..74086a01 --- /dev/null +++ b/testBytecode/MethFieldVar.java @@ -0,0 +1,38 @@ +public class MethFieldVar{ + String s1;// = ""; + String s2; + +/* public void meth(Integer i, String j, Boolean b){ + //String local = "a"; + //int localL = local.length(); + //int l = s.length(); + String s = null; + //s = ""; + //return s.length();//l+localL; + } +*/ + public void mm(){ +// return "mm"; + } + public void m2(){ + System.out.println(""); + // Math.abs(1); + // String lV = "local"; + // s1 = "1"; + // s1.concat("2"); + s2 = s1; + + mm(); + + Clazz i = new Clazz(); + + Runnable lam = ()->{ + String test = ""; + String b = "b"; + test = b; + System.out.println(test); + }; + } +} + +class Clazz{} diff --git a/testBytecode/Subclass.java b/testBytecode/Subclass.java new file mode 100644 index 00000000..3e8b5853 --- /dev/null +++ b/testBytecode/Subclass.java @@ -0,0 +1,6 @@ +public class Subclass extends Superclass { + + public void printMethod() { + super.printMethod(); + } +} diff --git a/testBytecode/SuperTest.java b/testBytecode/SuperTest.java new file mode 100644 index 00000000..1b6ac268 --- /dev/null +++ b/testBytecode/SuperTest.java @@ -0,0 +1,14 @@ +public class Superclass { + + public void printMethod() { + System.out.println("Printed in Superclass."); + } +} + +public class Subclass extends Superclass { + + public void printMethod() { + super.printMethod(); + + } +} diff --git a/testBytecode/Superclass.java b/testBytecode/Superclass.java new file mode 100644 index 00000000..d58089de --- /dev/null +++ b/testBytecode/Superclass.java @@ -0,0 +1,6 @@ +public class Superclass { + + public void printMethod() { + System.out.println("Printed in Superclass."); + } +} diff --git a/testBytecode/TestMyTest.java b/testBytecode/TestMyTest.java new file mode 100644 index 00000000..e1305f76 --- /dev/null +++ b/testBytecode/TestMyTest.java @@ -0,0 +1,11 @@ +class TestMyTest{ +public static void main(String[] a){ + //test1 + //new TestClass(); + //test if statement + //new TestIf(new Boolean(true)); + // test lambda + //new TestClass(); + new LamRun(); +} +} diff --git a/testBytecode/generatedBC/.gitignore b/testBytecode/generatedBC/.gitignore new file mode 100644 index 00000000..5e7d2734 --- /dev/null +++ b/testBytecode/generatedBC/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/testBytecode/manually/Fac1.java b/testBytecode/manually/Fac1.java new file mode 100644 index 00000000..e36ad3ae --- /dev/null +++ b/testBytecode/manually/Fac1.java @@ -0,0 +1,6 @@ +class Fuc1{ + + Integer mul(Integer x, Integer y) { + return x; + } +} diff --git a/testBytecode/manually/Fac2.java b/testBytecode/manually/Fac2.java new file mode 100644 index 00000000..dbf307b8 --- /dev/null +++ b/testBytecode/manually/Fac2.java @@ -0,0 +1,14 @@ +import java.util.function.Function; +class Fac2 { + + Integer mul(Integer x, Integer y) { + return x; + } + + Function m () { + Function fact = (Integer x) -> { + return mul(x, x); + }; + return fact; + } +} diff --git a/testBytecode/manually/LamAssign.java b/testBytecode/manually/LamAssign.java new file mode 100644 index 00000000..8d45a641 --- /dev/null +++ b/testBytecode/manually/LamAssign.java @@ -0,0 +1,10 @@ +import java.util.function.Function; +class LamAssign { + + Function m () { + Function lam1 = (Integer x) -> { + return x; + }; + return lam1; + } +} diff --git a/testBytecode/manually/LamAssignWithM.java b/testBytecode/manually/LamAssignWithM.java new file mode 100644 index 00000000..61077d27 --- /dev/null +++ b/testBytecode/manually/LamAssignWithM.java @@ -0,0 +1,12 @@ +import java.util.function.Function; +class LamAssignWithM { + Integer mul(Integer x, Integer y) { + return x; + } + Function m () { + Function lam1 = (Integer x) -> { + return mul(x,x); + }; + return lam1; + } +} diff --git a/testBytecode/manually/LamWithAnField.java b/testBytecode/manually/LamWithAnField.java new file mode 100644 index 00000000..ae6da4fc --- /dev/null +++ b/testBytecode/manually/LamWithAnField.java @@ -0,0 +1,14 @@ +import java.util.function.Function; +class LamWithAnField { + Integer mul(Integer x, Integer y) { + return x; + } + LamWithField temp= new LamWithField(); + Function m () { + Function lam1 = (Integer x) -> { + return temp.res*x; + }; + return lam1; + } +} + diff --git a/testBytecode/manually/LamWithField.java b/testBytecode/manually/LamWithField.java new file mode 100644 index 00000000..dacdca8b --- /dev/null +++ b/testBytecode/manually/LamWithField.java @@ -0,0 +1,14 @@ +import java.util.function.Function; +class LamWithField { + Integer mul(Integer x, Integer y) { + return x; + } + Integer res = new Integer(5); + Function m () { + Function lam1 = (Integer x) -> { + return res*x; + }; + return lam1; + } +} + diff --git a/testBytecode/manually/ReturnM1.java b/testBytecode/manually/ReturnM1.java new file mode 100644 index 00000000..3f89147d --- /dev/null +++ b/testBytecode/manually/ReturnM1.java @@ -0,0 +1,6 @@ +class ReturnM1{ + Integer r; + Integer mul(Integer x, Integer y) { + return r; + } +} diff --git a/testBytecode/public b/testBytecode/public new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/testBytecode/public @@ -0,0 +1 @@ + diff --git a/testBytecode/testF.java b/testBytecode/testF.java new file mode 100644 index 00000000..fa4a50b7 --- /dev/null +++ b/testBytecode/testF.java @@ -0,0 +1,5 @@ +public class testTets(){ + public static void main(String[] args){ + new tetsF(); + } +} diff --git a/testBytecode/testTets.java b/testBytecode/testTets.java new file mode 100644 index 00000000..4f95cbc0 --- /dev/null +++ b/testBytecode/testTets.java @@ -0,0 +1,5 @@ +public class testTets{ + public static void main(String[] args){ + new TetsF(); + } +} diff --git a/testBytecode/testTetsF.java b/testBytecode/testTetsF.java new file mode 100644 index 00000000..fa4a50b7 --- /dev/null +++ b/testBytecode/testTetsF.java @@ -0,0 +1,5 @@ +public class testTets(){ + public static void main(String[] args){ + new tetsF(); + } +} diff --git a/tools/.cvsignore b/tools/.cvsignore deleted file mode 100755 index d62809ee..00000000 --- a/tools/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -y.output -*.java -*.class \ No newline at end of file diff --git a/tools/AntParserBuilder.xml b/tools/AntParserBuilder.xml deleted file mode 100755 index 7ec9f616..00000000 --- a/tools/AntParserBuilder.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tools/AntParserBuilderDarwin.xml b/tools/AntParserBuilderDarwin.xml deleted file mode 100755 index df5b31d6..00000000 --- a/tools/AntParserBuilderDarwin.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tools/AntParserBuilderLinux.xml b/tools/AntParserBuilderLinux.xml deleted file mode 100755 index 0502bbf4..00000000 --- a/tools/AntParserBuilderLinux.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tools/AntParserBuilderWindows.xml b/tools/AntParserBuilderWindows.xml deleted file mode 100755 index e867e27c..00000000 --- a/tools/AntParserBuilderWindows.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/JLex.jar b/tools/JLex.jar deleted file mode 100755 index ae5f6d71..00000000 Binary files a/tools/JLex.jar and /dev/null differ diff --git a/tools/JLex_neu.jar b/tools/JLex_neu.jar deleted file mode 100755 index df8053ff..00000000 Binary files a/tools/JLex_neu.jar and /dev/null differ diff --git a/tools/JavaParser.jay b/tools/JavaParser.jay deleted file mode 100755 index 1c3f562a..00000000 --- a/tools/JavaParser.jay +++ /dev/null @@ -1,1509 +0,0 @@ -%{ -import de.dhbwstuttgart.typeinference.Menge; -class JavaParser{ -public Menge path = new Menge(); -%} - -%token ABSTRACT -%token BOOLEAN -%token BREAK -%token CASE -%token CATCH -%token CHAR -%token CLASS -%token CONTINUE -%token DEFAULT -%token DO -%token ELSE -%token EXTENDS -%token FINALLY -%token FOR -%token IF -%token INSTANCEOF -%token INT -%token NEW -%token PRIVATE -%token PROTECTED -%token PUBLIC -%token RETURN -%token STATIC -%token SUPER -%token SWITCH -%token THIS -%token THROW -%token THROWS -%token TRY -%token VOID -%token WHILE -%token INTLITERAL -%token BOOLLITERAL -%token JNULL -%token CHARLITERAL -%token STRINGLITERAL -%token IDENTIFIER -%token EQUAL -%token LESSEQUAL -%token GREATEREQUAL -%token NOTEQUAL -%token LOGICALOR -%token LOGICALAND -%token INCREMENT -%token DECREMENT -%token SHIFTLEFT -%token SHIFTRIGHT -%token UNSIGNEDSHIFTRIGHT -%token SIGNEDSHIFTRIGHT -%token PLUSEQUAL -%token MINUSEQUAL -%token TIMESEQUAL -%token DIVIDEEQUAL -%token ANDEQUAL -%token OREQUAL -%token XOREQUAL -%token MODULOEQUAL -%token SHIFTLEFTEQUAL -%token SIGNEDSHIFTRIGHTEQUAL -%token UNSIGNEDSHIFTRIGHTEQUAL -%token BRACE -%token RELOP -%token OP -%token EOF - -%type classdeclaration -%type classbody -%type fielddeclaration -%type methodheader -%type methoddeclaration -%type methoddeclarator -%type classbodydeclarations -%type classbodydeclaration -%type classmemberdeclaration -%type variabledeclarators -%type variabledeclarator -%type variabledeclaratorid -%type simplename -%type qualifiedname -%type name -%type super -%type classtype -%type classorinterfacetype -%type integraltype -%type numerictype -%type primitivetype -%type referencetype -%type classtypelist -%type type -%type modifiers -%type modifier -%type block -%type methodbody -%type blockstatements -%type localvariabledeclarationstatement -%type localvariabledeclaration -%type throws -%type formalparameter -%type formalparameterlist -%type literal -%type primarynonewarray -%type primary -%type postfixexpression -%type unaryexpressionnotplusminus -%type unaryexpression -%type multiplicativeexpression -%type additiveexpression -%type shiftexpression -%type relationalexpression -%type equalityexpression -%type andexpression -%type exclusiveorexpression -%type inclusiveorexpression -%type conditionalandexpression -%type conditionalorexpression -%type conditionalexpression -%type assignmentexpression -%type expression -%type statementexpression -%type preincrementexpression -%type predecrementexpression -%type postincrementexpression -%type postdecrementexpression -%type expressionstatement -%type variableinitializer -%type statementwithouttrailingsubstatement -%type blockstatement -%type statement -%type statementnoshortif -%type whilestatement -%type whilestatementnoshortif -%type ifthenstatement -%type ifthenelsestatement -%type ifthenelsestatementnoshortif -%type emptystatement -%type returnstatement -%type classinstancecreationexpression -%type compilationunit -%type typedeclarations -%type assignment -%type assignmentoperator -%type lefthandside -%type argumentlist -%type methodinvocation -%type typedeclaration -%type constructordeclaration -%type constructordeclarator -%type constructorbody -%type explicitconstructorinvocation -%type staticinitializer -%type castexpression -%type paralist -%left ',' -%% - -compilationunit :typedeclarations - { - $$=$1; - } - -typedeclarations :typedeclaration - { - SourceFile Scfile = new SourceFile(); - Scfile.set_Class($1); - $$=Scfile; - } - |typedeclarations typedeclaration - { - $1.set_Class($2); - $$=$1; - } - -name :qualifiedname - { - $$=$1; - } - |simplename - { - $$=$1; - } - -typedeclaration :classdeclaration - { - $$=$1; - } - -qualifiedname : name '.' IDENTIFIER - { - $1.set_Name($3.getLexem()); - $$=$1; - } - -simplename : IDENTIFIER - { - UsedId UI = new UsedId(); - UI.set_Name( $1.getLexem() ); - $$ = UI; - } - -classdeclaration : CLASS IDENTIFIER classbody - { - MyCompiler.Debug("P->Neue Klasse: " + $2.getLexem(), 3); - Class C = new Class(); - ClassDeclId CDI = new ClassDeclId(); - CDI.set_classname( $2.getLexem() ); - C.set_ClassDeclId( CDI ); - C.set_ClassBody($3); - $$ = C; - } - - | modifiers CLASS IDENTIFIER classbody - { - Class Cmod = new Class(); - ClassDeclId CDImod = new ClassDeclId(); - CDImod.set_Modifiers($1); - CDImod.set_classname($3.getLexem()); - Cmod.set_ClassDeclId(CDImod); - Cmod.set_ClassBody($4); - $$ = Cmod; - } - - | CLASS IDENTIFIER super classbody - { - Class Csup = new Class(); - ClassDeclId CDIsup = new ClassDeclId(); - CDIsup.set_classname($2.getLexem()); - Csup.set_ClassDeclId(CDIsup); - Csup.set_UsedId($3); - Csup.set_ClassBody($4); - $$ = Csup; - } - - |modifiers CLASS IDENTIFIER super classbody - { - Class Cmodsup = new Class(); - ClassDeclId CDImodsup = new ClassDeclId(); - CDImodsup.set_Modifiers($1); - CDImodsup.set_classname($3.getLexem()); - Cmodsup.set_ClassDeclId(CDImodsup); - Cmodsup.set_UsedId($4); - Cmodsup.set_ClassBody($5); - $$ = Cmodsup; - } - | modifiers CLASS IDENTIFIER '<'paralist'>'classbody - { - Class Cmod = new Class(); - ClassDeclId CDImod = new ClassDeclId(); - CDImod.set_Modifiers($1); - CDImod.set_classname($3.getLexem()); - Cmod.set_ClassDeclId(CDImod); - Cmod.set_ParaList($5.get_ParaList()); - Cmod.set_ClassBody($7); - $$ = Cmod; - } - - |CLASS IDENTIFIER '<' paralist '>'classbody - { - Class C = new Class(); - ClassDeclId CDI = new ClassDeclId(); - CDI.set_classname($2.getLexem()); - C.set_ClassDeclId(CDI); - C.set_ClassBody($6); - C.set_ParaList($4.get_ParaList()); - $$ = C; - } - - | CLASS IDENTIFIER '<' paralist '>'super classbody - { - MyCompiler.Debug( "Klassendefinition: Basisklassen-Parameter = " + $4.get_ParaList(), 3 ); - MyCompiler.Debug( "Klassendefinition: Superklassen-Parameter = " + $6.get_ParaList(), 3 ); - MyCompiler.Debug( "Klassendefinition: Superklassen-Parameter = " + $6.get_ParaList().hashCode(), 3 ); - Class Csup = new Class(); - ClassDeclId CDIsup = new ClassDeclId(); - CDIsup.set_classname($2.getLexem()); - Csup.set_ClassDeclId(CDIsup); - Csup.set_ParaList($4.get_ParaList()); - Csup.set_UsedId($6); - Csup.set_ClassBody($7); - $$ = Csup; - } - - |modifiers CLASS IDENTIFIER '<'paralist'>'super classbody - { - Class Cmodsup = new Class(); - ClassDeclId CDImodsup = new ClassDeclId(); - CDImodsup.set_Modifiers($1); - CDImodsup.set_classname($3.getLexem()); - Cmodsup.set_ClassDeclId(CDImodsup); - Cmodsup.set_ParaList($5.get_ParaList()); - Cmodsup.set_UsedId($7); - Cmodsup.set_ClassBody($8); - $$ = Cmodsup; - } - - -paralist : IDENTIFIER - { - ParaList pl = new ParaList(); - pl.paralist.addElement( new TyploseVariable($1.getLexem()) ); - MyCompiler.Debug( "IDENTIFIER --> Paralist für " + $1.getLexem() + " TV", 3 ); - $$ = pl; - } - - | IDENTIFIER '<' paralist '>' - { - ParaList pl = new ParaList(); - RefType t = new RefType( $1.getLexem() ); - t.set_ParaList( $3.get_ParaList() ); - pl.paralist.addElement(t); - MyCompiler.Debug( "IDENTIFIER '<' paralist '>' --> Paralist für " + $1.getLexem() + ": RefType", 3 ); - $$ = pl; - } - - | paralist ',' IDENTIFIER - { - $1.paralist.addElement(new TyploseVariable($3.getLexem())); - MyCompiler.Debug( "paralist ',' IDENTIFIER --> Paralist für " + $3.getLexem() + ": TV", 3 ); - MyCompiler.Debug( "paralist: " + $1.paralist, 3 ); - $$=$1; - } - - | paralist ',' IDENTIFIER '<' paralist '>' - { - RefType t = new RefType( $3.getLexem() ); - t.set_ParaList( $5.get_ParaList() ); - $1.paralist.addElement(t); - MyCompiler.Debug( "paralist ',' IDENTIFIER '<' paralist '>' --> Paralist für " + $3.getLexem() + ": RefType", 3 ); - $$=$1; - } - -classbody : '{' '}' - { - ClassBody CB = new ClassBody(); - $$ = CB; - } - - | '{'classbodydeclarations '}' - { - $$ = $2; - } - -modifiers :modifier - { - Modifiers Mod = new Modifiers(); - Mod.modifier.addElement($1); - $$ = Mod; - } - |modifiers modifier - { - $1.modifier.addElement($2); - $$ = $1; - } - -super :EXTENDS classtype - { - $$ = $2; - } - -classbodydeclarations : classbodydeclaration - { - ClassBody CB = new ClassBody(); - CB.set_FieldDecl( $1 ); - $$=CB; - } - | classbodydeclarations classbodydeclaration - { - $1.set_FieldDecl($2); - $$ = $1; - } - - -modifier : PUBLIC - { - Public Pub = new Public(); - $$=Pub; - } - | PROTECTED - { - Protected Pro = new Protected(); - $$=Pro; - } - | PRIVATE - { - Private Pri = new Private(); - $$=Pri; - } - | STATIC - { - Static Sta = new Static(); - $$=Sta; - } - | ABSTRACT - { - Abstract Abs = new Abstract(); - $$=Abs; - } - -classtype : classorinterfacetype - { - $$ = $1; - } - | classorinterfacetype '<'paralist'>' - { - $1.set_ParaList($3.get_ParaList()); - - /* otth: originale (also diese) Parameterliste retten */ - ((UsedId)$1).vParaOrg = new Menge( $3.get_ParaList() ); - - $$ = $1; - } - -classbodydeclaration : classmemberdeclaration - { - $$=$1; - } - | staticinitializer - { - $$=$1; - } - | constructordeclaration - { - $$=$1; - } - -classorinterfacetype : name - { - $$=$1; - } - -classmemberdeclaration : fielddeclaration - { - $$=$1; - } - | methoddeclaration - { - $$=$1; - } - -staticinitializer : STATIC block - { - Method STAT = new Method(); - DeclId DST = new DeclId(); - DST.set_Name($1.getLexem()); - STAT.set_DeclId(DST); - Static ST = new Static(); - Modifiers MOD = new Modifiers(); - MOD.modifier.addElement(ST); - STAT.set_Modifiers(MOD); - STAT.set_Block($2); - $$=STAT; - } - -constructordeclaration : constructordeclarator constructorbody - { - $1.set_Block($2); - $$ = $1; - } - | modifiers constructordeclarator constructorbody - { - $2.set_Block($3); - $2.set_Modifiers($1); - $$ = $2; - } - -fielddeclaration : type variabledeclarators ';' - { - MyCompiler.Debug("T->Parser->fielddeclaration ...: type " + $1, 5); - $2.set_Type($1); - $$ = $2; - } - - | modifiers type variabledeclarators ';' - { - $3.set_Type($2); - for(int i=0;i<($3.declid.size());i++) - { - $3.declid.setElementAt((((DeclId)($3.declid.elementAt(i))).modifiers=$1),i); - } - $$ = $3; - } - -methoddeclaration : methodheader methodbody - { - $1.set_Block($2); - $$=$1; - } - -block : '{' '}' - - { - Block Bl = new Block(); - $$=Bl; - } - - | '{' blockstatements '}' - { - $$=$2; - } - -constructordeclarator : simplename '(' ')' - { - Constructor CON = new Constructor(); - DeclId DIDCon = new DeclId(); - DIDCon.set_Name($1.get_Name_1Element()); - CON.set_DeclId(DIDCon); - $$=CON; - } - | simplename '('formalparameterlist')' - { - Constructor CONpara = new Constructor(); - DeclId DIconpara = new DeclId(); - DIconpara.set_Name($1.get_Name_1Element()); - CONpara.set_DeclId(DIconpara); - CONpara.set_ParaList($3); - $$=CONpara; - } - -constructorbody : '{' '}' - { - Block CBL = new Block(); - $$=CBL; - } - | '{' explicitconstructorinvocation '}' - { - Block CBLexpl = new Block(); - CBLexpl.set_Statement($2); - $$=CBLexpl; - } - | '{' blockstatements '}' - { - $$=$2; - } - | '{'explicitconstructorinvocation blockstatements '}' - { - Block CBes = new Block(); - CBes.set_Statement($2); - for(int j=0;j<$3.statements.size();j++) - { - CBes.set_Statement((Statement)$3.statements.elementAt(j)); - } - $$=CBes; - } - -throws : THROWS classtypelist - { - ExceptionList EL = new ExceptionList(); - EL.set_addElem($2); - $$=EL; - } - -methodheader : type methoddeclarator - { - $2.set_ReturnType($1); - $$=$2; - } - | modifiers type methoddeclarator - { - $3.set_Modifiers($1); - $3.set_ReturnType($2); - $$=$3; - } - | type methoddeclarator throws - { - $2.set_ReturnType($1); - $2.set_ExceptionList($3); - $$=$2; - } - | modifiers type methoddeclarator throws - { - $3.set_Modifiers($1); - $3.set_ReturnType($2); - $3.set_ExceptionList($4); - $$=$3; - } - | VOID methoddeclarator - { - Type Voit = new Type(); - Voit.set_Type($1.getLexem()); - $2.set_ReturnType(Voit); - $$=$2; - } - | modifiers VOID methoddeclarator - { - Type voit = new Type(); - voit.set_Type($2.getLexem()); - $3.set_Modifiers($1); - $3.set_ReturnType(voit); - $$=$3; - } - | VOID methoddeclarator throws - { - Type voyt = new Type(); - voyt.set_Type($1.getLexem()); - $2.set_ReturnType(voyt); - $2.set_ExceptionList($3); - $$=$2; - } - | modifiers VOID methoddeclarator throws - { - Type voyd = new Type(); - voyd.set_Type($2.getLexem()); - $3.set_Modifiers($1); - $3.set_ReturnType(voyd); - $3.set_ExceptionList($4); - $$=$3; - } - -type : primitivetype - { - $$=$1; - } - |referencetype - { - $$=$1; - } - -variabledeclarators : variabledeclarator - { - InstVarDecl IVD = new InstVarDecl(); - IVD.declid.addElement( $1 ); - $$ = IVD; - } - | variabledeclarators ',' variabledeclarator - { - $1.declid.addElement($3); - $$=$1; - } - -methodbody : block - { - $$=$1; - } - -blockstatements : blockstatement - { - Block Blstat = new Block(); - Blstat.set_Statement($1); - $$=Blstat; - } - - | blockstatements blockstatement - { - $1.set_Statement($2); - $$=$1; - } - -formalparameterlist :formalparameter - { - ParameterList PL = new ParameterList(); - PL.set_AddParameter($1); - $$ = PL; - } - |formalparameterlist ',' formalparameter - { - $1.set_AddParameter($3); - $$ = $1; - } - -explicitconstructorinvocation : THIS '(' ')' ';' - { - This THCON = new This(); - $$=THCON; - } - |THIS '(' argumentlist ')' ';' - { - This THCONargl = new This(); - THCONargl.set_ArgumentList($3); - $$=THCONargl; - } - // |SUPER '(' ')' ';' - // |SUPER '(' argumentlist ')' ';' - -classtypelist : classtype - { - RefType RT = new RefType(); - RT.set_UsedId($1); - RT.set_Type(RT.used.get_Name_1Element()); - $$=RT; - } - | classtypelist ',' classtype - { - $1.set_UsedId($3); - $1.set_Type($1.used.get_Name_1Element()); - $$=$1; - } - -methoddeclarator :IDENTIFIER '(' ')' - { - Method met = new Method(); - DeclId DImethod = new DeclId(); - DImethod.set_Name($1.getLexem()); - met.set_DeclId(DImethod); - $$ = met; - } - |IDENTIFIER '(' formalparameterlist ')' - { - Method met_para = new Method(); - DeclId Dimet_para = new DeclId(); - Dimet_para.set_Name($1.getLexem()); - met_para.set_DeclId(Dimet_para); - met_para.set_ParaList($3); - $$ = met_para; - } - -primitivetype :BOOLEAN - { - BooleanType BT = new BooleanType(); - BT.set_Type($1.getLexem()); - $$=BT; - } - |numerictype - { - $$=$1; - } - -referencetype :classorinterfacetype - { - MyCompiler.Debug("T->Parser->referenctype: " + $1, 5); - RefType RT = new RefType(); - RT.set_UsedId($1); - RT.set_Type(RT.used.get_Name_1Element()); - $$=RT; - } - -variabledeclarator : variabledeclaratorid - { - $$=$1; - } - - | variabledeclaratorid '=' variableinitializer - { - $1.set_Wert($3); - $$=$1; - } - - | '<' paralist'>' variabledeclaratorid '=' variableinitializer - { - $4.set_Wert($6); - $4.set_Paratyp($2.get_ParaList()); - $$=$4; - } - -blockstatement :localvariabledeclarationstatement - { - $$=$1; - } - |statement - { - $$=$1; - } - -funtype : funtypeortype '(' funtypelist ')' - { - - } - -funtypelist : funtypeortype - { - - } - | funtypelist ',' funtypeortype - { - - } - -funtypeortype : funtype - { - - } - | type - { - $$=$1; - } - -formalparameter : funtype variabledeclaratorid - { - FormalParameter FP = new FormalParameter(); - FP.set_Type($1); - FP.set_DeclId($2); - $$=FP; - } - - /* otth: Methodenargumente koennen hiermit auch polymorph sein. */ - | funtype '<'paralist'>' variabledeclaratorid - { - /* Parameterliste setzen */ - $5.set_Paratyp($3.get_ParaList()); - - FormalParameter FP = new FormalParameter(); - FP.set_Type($1); - FP.set_DeclId($5); - $$=FP; - - MyCompiler.Debug("P->Polymorphes Methodenargument hinzugefuegt: Name = " + $5.get_Name() + " Typ = " + $1.get_Type(), 3); - } - -argumentlist : expression - { - ArgumentList AL = new ArgumentList(); - AL.expr.addElement($1); - $$=AL; - } - |argumentlist ',' expression - { - $1.expr.addElement($3); - $$=$1; - } - -numerictype :integraltype - { - $$=$1; - } - -variabledeclaratorid :IDENTIFIER - { - DeclId DI = new DeclId(); - DI.set_Name($1.getLexem()); - $$=DI; - } - -variableinitializer :expression - { - $$=$1; - } - -localvariabledeclarationstatement :localvariabledeclaration ';' - { - $$=$1; - } - -statement :statementwithouttrailingsubstatement - { - $$=$1; - } - |ifthenstatement - { - $$=$1; - } - |ifthenelsestatement - { - $$=$1; - } - |whilestatement - { - $$=$1; - } - -expression :assignmentexpression - { - $$=$1; - } - |classinstancecreationexpression - { - $$=$1; - } - -integraltype :INT - { - IntegerType IT = new IntegerType(); - IT.set_Type($1.getLexem()); - $$=IT; - } - | CHAR - { - CharacterType CT = new CharacterType(); - CT.set_Type($1.getLexem()); - $$=CT; - } - -localvariabledeclaration : type variabledeclarators - { - MyCompiler.Debug("P -> Lokale Variable angelegt!", 3); - LocalVarDecl LVD = new LocalVarDecl(); - LVD.set_Type($1); - LVD.declid=$2.declid; - $$ = LVD; - } - -statementwithouttrailingsubstatement : block - { - $$=$1; - } - | emptystatement - { - $$=$1; - } - | expressionstatement - { - $$=$1; - } - | returnstatement - { - $$=$1; - } - -ifthenstatement : IF '(' expression ')' statement - { - IfStmt Ifst = new IfStmt(); - Ifst.set_Expr($3); - Ifst.set_Then_block($5); - $$=Ifst; - } - -ifthenelsestatement : IF '('expression ')'statementnoshortif ELSE statement - { - IfStmt IfstElst = new IfStmt(); - IfstElst.set_Expr($3); - IfstElst.set_Then_block($5); - IfstElst.set_Else_block($7); - $$=IfstElst; - } - -whilestatement : WHILE '(' expression ')' statement - { - WhileStmt Whlst = new WhileStmt(); - Whlst.set_Expr($3); - Whlst.set_Loop_block($5); - $$=Whlst; - } - -assignmentexpression : conditionalexpression - { - $$=$1; - } - | assignment - { - $$=$1; - } - -emptystatement : ';' - { - EmptyStmt Empst = new EmptyStmt(); - $$=Empst; - } - -expressionstatement : statementexpression ';' - { - $$=$1; - } - -returnstatement : RETURN ';' - { - Return ret = new Return(); - $$= ret; - } - | RETURN expression ';' - { - Return retexp = new Return(); - retexp.set_ReturnExpr($2); - $$=retexp; - } - -statementnoshortif :statementwithouttrailingsubstatement - { - $$=$1; - } - | ifthenelsestatementnoshortif - { - $$=$1; - } - | whilestatementnoshortif - { - $$=$1; - } - -conditionalexpression :conditionalorexpression - { - $$=$1; - } - // | conditionalorexpression '?' expression ':' conditionalexpression - -assignment :lefthandside assignmentoperator assignmentexpression - { - MyCompiler.Debug("\nParser --> Zuweisung1!\n", 3); - Assign Ass = new Assign(); - LocalOrFieldVar LOFV = new LocalOrFieldVar(); - LOFV.set_UsedId($1); - if( $2 == null ) - { - MyCompiler.Debug("\nParser --> Zuweisung1 --> " + $3 + " \n", 3); - Ass.set_Expr( LOFV,$3 ); - } - else - { - Binary Bin = new Binary(); - Bin.set_Expr1(LOFV); - Bin.set_Operator($2); - Bin.set_Expr2($3); - MyCompiler.Debug("\nParser --> Zuweisung1 --> Binary\n", 3); - Ass.set_Expr( LOFV, Bin ); - } - $$=Ass; - } - | lefthandside assignmentoperator classinstancecreationexpression - { - Assign Ass =new Assign(); - LocalOrFieldVar LOFV = new LocalOrFieldVar(); - LOFV.set_UsedId($1); - if($2==null) - { - Ass.set_Expr(LOFV,$3); - } - else - { - Binary Bin = new Binary(); - Bin.set_Expr1(LOFV); - Bin.set_Operator($2); - Bin.set_Expr2($3); - Ass.set_Expr(LOFV,Bin); - } - $$=Ass; - } - -statementexpression :assignment - { - $$=$1; - } - | preincrementexpression - { - $$=$1; - } - | predecrementexpression - { - $$=$1; - } - | postincrementexpression - { - $$=$1; - } - | postdecrementexpression - { - $$=$1; - } - | methodinvocation - { - $$=$1; - } -/* | classinstancecreationexpression - { - $$=$1; - } -*/ - -ifthenelsestatementnoshortif :IF '(' expression ')' statementnoshortif - ELSE statementnoshortif - { - IfStmt IfElno = new IfStmt(); - IfElno.set_Expr($3); - IfElno.set_Then_block($5); - IfElno.set_Else_block($7); - $$=IfElno; - } - -whilestatementnoshortif :WHILE '(' expression ')' statementnoshortif - { - WhileStmt Whstno = new WhileStmt(); - Whstno.set_Expr($3); - Whstno.set_Loop_block($5); - $$=Whstno; - } - -conditionalorexpression : conditionalandexpression - { - $$=$1; - } - | conditionalorexpression LOGICALOR conditionalandexpression - { - Binary LogOr = new Binary(); - OrOp OrO = new OrOp(); - LogOr.set_Expr1($1); - LogOr.set_Expr2($3); - LogOr.set_Operator(OrO); - $$=LogOr; - } - - -lefthandside :name - { - $$=$1; - } - -assignmentoperator : '=' - { - $$=null; - } - | TIMESEQUAL - { - TimesOp TEO = new TimesOp(); - $$=TEO; - } - | DIVIDEEQUAL - { - DivideOp DEO = new DivideOp(); - $$=DEO; - } - | MODULOEQUAL - { - ModuloOp MEO = new ModuloOp(); - $$=MEO; - } - | PLUSEQUAL - { - PlusOp PEO = new PlusOp(); - $$=PEO; - } - | MINUSEQUAL - { - MinusOp MEO = new MinusOp(); - $$=MEO; - } - // | SHIFTLEFTEQUAL - // | SIGNEDSHIFTRIGHTEQUAL - // | UNSIGNEDSHIFTRIGHTEQUAL - // | ANDEQUAL - // | XOREQUAL - // | OREQUAL - -preincrementexpression :INCREMENT unaryexpression - { - PreIncExpr PRINC = new PreIncExpr(); - PRINC.set_Expr($2); - $$=PRINC; - } - -predecrementexpression :DECREMENT unaryexpression - { - PreDecExpr PRDEC = new PreDecExpr(); - PRDEC.set_Expr($2); - $$=PRDEC; - } - -postincrementexpression :postfixexpression INCREMENT - { - PostIncExpr PIE = new PostIncExpr(); - PIE.set_Expr($1); - $$=PIE; - } - -postdecrementexpression :postfixexpression DECREMENT - { - PostDecExpr PDE = new PostDecExpr(); - PDE.set_Expr($1); - $$=PDE; - } - -methodinvocation :name '(' ')' - { - MethodCall MC = new MethodCall(); - MC.set_UsedId($1); - $$=MC; - } - | name '('argumentlist')' - { - MethodCall MCarg = new MethodCall(); - MCarg.set_UsedId($1); - MCarg.set_ArgumentList($3); - $$=MCarg; - } - | primary '.' IDENTIFIER '(' ')' - { - MethodCall MCpr = new MethodCall(); - $1.usedid.set_Name($3.getLexem()); - MCpr.set_UsedId($1.get_UsedId()); - $$=MCpr; - } - | primary '.' IDENTIFIER '('argumentlist ')' - { - MethodCall MCPA = new MethodCall(); - $1.usedid.set_Name($3.getLexem()); - MCPA.set_UsedId($1.get_UsedId()); - MCPA.set_ArgumentList($5); - $$=MCPA; - } - // | SUPER '.' IDENTIFIER '(' ')' - // | SUPER '.' IDENTIFIER '('argumentlist')' - -classinstancecreationexpression : NEW classtype '(' ')' - { - NewClass NC = new NewClass(); - NC.set_UsedId($2); - $$=NC; - } - | NEW classtype '(' argumentlist ')' - { - NewClass NCarg = new NewClass(); - NCarg.set_UsedId($2); - NCarg.set_ArgumentList($4); - $$=NCarg; - } - -conditionalandexpression : inclusiveorexpression - { - $$=$1; - } - | conditionalandexpression LOGICALAND inclusiveorexpression - { - Binary And = new Binary(); - AndOp AndO = new AndOp(); - And.set_Expr1($1); - And.set_Expr2($3); - And.set_Operator(AndO); - $$=And; - } - -/* -fieldaccess :primary '.' IDENTIFIER - | SUPER '.' IDENTIFIER -*/ - -unaryexpression : preincrementexpression - { - $$=$1; - } - | predecrementexpression - { - $$=$1; - } - | '+' unaryexpression - { - PositivExpr POSEX=new PositivExpr(); - UnaryPlus UP= new UnaryPlus(); - POSEX.set_UnaryPlus(UP); - POSEX.set_Expr($2); - $$=POSEX; - } - | '-' unaryexpression - { - NegativeExpr NEGEX=new NegativeExpr(); - UnaryMinus UM=new UnaryMinus(); - NEGEX.set_UnaryMinus(UM); - NEGEX.set_Expr($2); - $$=NEGEX; - } - | unaryexpressionnotplusminus - { - $$=$1; - } - -postfixexpression :primary - { - $$=$1; - } - | name - { - LocalOrFieldVar Postincexpr = new LocalOrFieldVar(); - Postincexpr.set_UsedId($1); - $$=Postincexpr; - } - | postincrementexpression - { - $$=$1; - } - | postdecrementexpression - { - $$=$1; - } - -primary : primarynonewarray - { - $$=$1; - } - -inclusiveorexpression : exclusiveorexpression - { - $$=$1; - } - | inclusiveorexpression '|' exclusiveorexpression - -primarynonewarray : literal - { - $$=$1; - } - | THIS - { - This T = new This(); - UsedId UT = new UsedId(); - UT.set_Name($1.getLexem()); - T.set_UsedId(UT); - $$=T; - } - - | '('expression')' - { - $$=$2; - } -/* - | classinstancecreationexpression - { - $$=$1; - } - | fieldaccess -*/ - | methodinvocation - { - $$=$1; - } - -unaryexpressionnotplusminus : postfixexpression {$$=$1;} - // | '~' unaryexpression - | '!' unaryexpression {NotExpr NE=new NotExpr(); - UnaryNot UN=new UnaryNot(); - NE.set_UnaryNot(UN); - NE.set_Expr($2); - $$=NE; - } - | castexpression {$$=$1;} - -exclusiveorexpression :andexpression {$$=$1;} - | exclusiveorexpression '^' andexpression //{ - // - //} - -literal : INTLITERAL {IntLiteral IL = new IntLiteral(); - IL.set_Int($1.String2Int()); - $$ = IL; - } - - | BOOLLITERAL {BoolLiteral BL = new BoolLiteral(); - BL.set_Bool($1.String2Bool()); - $$ = BL; - } - | CHARLITERAL {CharLiteral CL = new CharLiteral(); - CL.set_Char($1.CharInString()); - $$=CL; - } - | STRINGLITERAL - { - StringLiteral ST = new StringLiteral(); - ST.set_String($1.get_String()); - $$=ST; - } - | JNULL; - { - Null NN = new Null(); - $$=NN; - } - -castexpression : '(' primitivetype ')' unaryexpression - { - CastExpr CaEx=new CastExpr(); - CaEx.set_Type($2); - CaEx.set_Expr($4); - $$=CaEx; - } - //| '(' expression ')' unaryexpressionnotplusminus - -andexpression :equalityexpression - { - $$=$1; - } - | andexpression '&' equalityexpression - { - } - -equalityexpression : relationalexpression - { - $$=$1; - } - | equalityexpression EQUAL relationalexpression - { - Binary EQ = new Binary(); - EqualOp EO = new EqualOp(); - EQ.set_Expr1($1); - EQ.set_Expr2($3); - EQ.set_Operator(EO); - $$=EQ; - } - | equalityexpression NOTEQUAL relationalexpression - { - Binary NEQ = new Binary(); - NotEqualOp NEO = new NotEqualOp(); - NEQ.set_Expr1($1); - NEQ.set_Expr2($3); - NEQ.set_Operator(NEO); - $$=NEQ; - } - -relationalexpression : shiftexpression - { - $$=$1; - } - | relationalexpression '<' shiftexpression - { - Binary LO = new Binary(); - LessOp LOO = new LessOp(); - LO.set_Expr1($1); - LO.set_Expr2($3); - LO.set_Operator(LOO); - $$=LO; - } - | relationalexpression '>' shiftexpression - { - Binary GO = new Binary(); - GreaterOp GOO = new GreaterOp(); - GO.set_Expr1($1); - GO.set_Expr2($3); - GO.set_Operator( GOO ); - $$=GO; - } - | relationalexpression LESSEQUAL shiftexpression - { - Binary LE = new Binary(); - LessEquOp LEO = new LessEquOp(); - LE.set_Expr1($1); - LE.set_Expr2($3); - LE.set_Operator(LEO); - $$=LE; - } - | relationalexpression GREATEREQUAL shiftexpression - { - Binary GE = new Binary(); - GreaterEquOp GEO = new GreaterEquOp(); - GE.set_Expr1($1); - GE.set_Expr2($3); - GE.set_Operator(GEO); - $$=GE; - } - | relationalexpression INSTANCEOF referencetype - { - InstanceOf ISO=new InstanceOf(); - ISO.set_Expr($1); - ISO.set_Type($3); - $$=ISO; - } - -shiftexpression : additiveexpression - { - $$=$1; - } - -additiveexpression :multiplicativeexpression - { - $$=$1; - } - | additiveexpression '+' multiplicativeexpression - { - Binary AD = new Binary(); - PlusOp PO = new PlusOp(); - AD.set_Expr1($1); - AD.set_Expr2($3); - AD.set_Operator(PO); - $$=AD; - } - | additiveexpression '-' multiplicativeexpression - { - Binary MI = new Binary(); - MinusOp MO = new MinusOp(); - MI.set_Expr1($1); - MI.set_Expr2($3); - MI.set_Operator(MO); - $$=MI; - } - -multiplicativeexpression : unaryexpression - { - $$=$1; - } - | multiplicativeexpression '*' unaryexpression - { - Binary ML = new Binary(); - TimesOp TO = new TimesOp(); - ML.set_Expr1($1); - ML.set_Expr2($3); - ML.set_Operator(TO); - $$=ML; - } - | multiplicativeexpression '/' unaryexpression - { - Binary DV = new Binary(); - DivideOp DO = new DivideOp(); - DV.set_Expr1($1); - DV.set_Expr2($3); - DV.set_Operator(DO); - $$ = DV; - } - | multiplicativeexpression '%' unaryexpression - { - Binary MD = new Binary(); - ModuloOp MO = new ModuloOp(); - MD.set_Expr1($1); - MD.set_Expr2($3); - MD.set_Operator(MO); - $$ =MD; - } - -/* OTTH: Methodenparametertypen müssen nicht mehr angegeben werden */ - -formalparameter : variabledeclaratorid - { - MyCompiler.Debug("\nFunktionsdeklaration mit typlosen Parametern: " + $1.name, 3); - - FormalParameter FP = new FormalParameter(); - - Type T = new TyploseVariable(""); /* otth: Name wird automatisch berechnet */ - MyCompiler.Debug("\n--> berechneter Name: " + T.get_Type(), 3); - - FP.set_Type( T ); - FP.set_DeclId($1); - - $$=FP; - } - -%% \ No newline at end of file diff --git a/tools/Lambda/RunWithJava8.sh b/tools/Lambda/RunWithJava8.sh deleted file mode 100755 index 74c96c2e..00000000 --- a/tools/Lambda/RunWithJava8.sh +++ /dev/null @@ -1,12 +0,0 @@ - #!/bin/bash - -if [ $1 ] ; -then -/usr/lib/jvm/jdk1.8.0/bin/javac -d './' $1 -echo $classfile -classfile=`echo $1 | sed 's/^.*\/\([^/]*\)\.java/\1/'` -#classfile=`pwd`"/$classfile" -echo "Klasse erfolgreich generiert: $classfile" -/usr/lib/jvm/jdk1.8.0/bin/java $classfile -else echo "Fehler: Bitte den Pfad zu einer .java Datei als Parameter übergeben!" -fi diff --git a/tools/RunJay.bat b/tools/RunJay.bat deleted file mode 100755 index 387dcf57..00000000 --- a/tools/RunJay.bat +++ /dev/null @@ -1 +0,0 @@ -jay.cygwin32 -v .\..\src\mycompiler\myparser\JavaParser.jay < skeleton > .\..\src\mycompiler\myparser\JavaParser.java \ No newline at end of file diff --git a/tools/RunJay.sh b/tools/RunJay.sh deleted file mode 100755 index 26ce5079..00000000 --- a/tools/RunJay.sh +++ /dev/null @@ -1 +0,0 @@ -./../tools/jay -v ./../src/de/dhbwstuttgart/parser/JavaParser.jay < skeleton > ./../src/de/dhbwstuttgart/parser/JavaParser.java diff --git a/tools/RunJayDarwin.sh b/tools/RunJayDarwin.sh deleted file mode 100755 index 12bccc1d..00000000 --- a/tools/RunJayDarwin.sh +++ /dev/null @@ -1 +0,0 @@ -./../tools/jay.darwin -v ./../src/de/dhbwstuttgart/parser/JavaParser.jay < skeleton > ./../src/de/dhbwstuttgart/parser/JavaParser.java diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/_update-info-dir/_update-info-dir-00230-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/_update-info-dir/_update-info-dir-00230-1.tar.bz2 deleted file mode 100755 index e3c6b564..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/_update-info-dir/_update-info-dir-00230-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ash/ash-20040127-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ash/ash-20040127-1.tar.bz2 deleted file mode 100755 index e4e453ed..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ash/ash-20040127-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/base-files/base-files-3.1-4.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/base-files/base-files-3.1-4.tar.bz2 deleted file mode 100755 index de0b7bb3..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/base-files/base-files-3.1-4.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/base-passwd/base-passwd-2.1-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/base-passwd/base-passwd-2.1-1.tar.bz2 deleted file mode 100755 index 43f84b03..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/base-passwd/base-passwd-2.1-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bash/bash-2.05b-16.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bash/bash-2.05b-16.tar.bz2 deleted file mode 100755 index 60a63b2b..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bash/bash-2.05b-16.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bzip2/bzip2-1.0.2-6.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bzip2/bzip2-1.0.2-6.tar.bz2 deleted file mode 100755 index c9207dd5..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bzip2/bzip2-1.0.2-6.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bzip2/libbz2_1/libbz2_1-1.0.2-6.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bzip2/libbz2_1/libbz2_1-1.0.2-6.tar.bz2 deleted file mode 100755 index a70eba2c..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bzip2/libbz2_1/libbz2_1-1.0.2-6.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygutils/cygutils-1.2.5-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygutils/cygutils-1.2.5-1.tar.bz2 deleted file mode 100755 index 7d700597..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygutils/cygutils-1.2.5-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygwin-doc/cygwin-doc-1.3-7.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygwin-doc/cygwin-doc-1.3-7.tar.bz2 deleted file mode 100755 index b28d8784..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygwin-doc/cygwin-doc-1.3-7.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygwin/cygwin-1.5.12-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygwin/cygwin-1.5.12-1.tar.bz2 deleted file mode 100755 index 84413a34..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygwin/cygwin-1.5.12-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/diffutils/diffutils-2.8.7-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/diffutils/diffutils-2.8.7-1.tar.bz2 deleted file mode 100755 index 8b10e112..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/diffutils/diffutils-2.8.7-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/editrights/editrights-1.01-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/editrights/editrights-1.01-1.tar.bz2 deleted file mode 100755 index 0568d7c9..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/editrights/editrights-1.01-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/fileutils/fileutils-4.1-2.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/fileutils/fileutils-4.1-2.tar.bz2 deleted file mode 100755 index 504f49d0..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/fileutils/fileutils-4.1-2.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/findutils/findutils-4.1.7-4.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/findutils/findutils-4.1.7-4.tar.bz2 deleted file mode 100755 index fbf8e2f0..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/findutils/findutils-4.1.7-4.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gawk/gawk-3.1.4-3.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gawk/gawk-3.1.4-3.tar.bz2 deleted file mode 100755 index 79da7bfb..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gawk/gawk-3.1.4-3.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/gdbm-1.8.3-7.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/gdbm-1.8.3-7.tar.bz2 deleted file mode 100755 index f626e039..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/gdbm-1.8.3-7.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm-devel/libgdbm-devel-1.8.3-7.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm-devel/libgdbm-devel-1.8.3-7.tar.bz2 deleted file mode 100755 index 83fc4857..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm-devel/libgdbm-devel-1.8.3-7.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm/libgdbm-1.8.0-5.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm/libgdbm-1.8.0-5.tar.bz2 deleted file mode 100755 index 8d0d508c..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm/libgdbm-1.8.0-5.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm3/libgdbm3-1.8.3-3.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm3/libgdbm3-1.8.3-3.tar.bz2 deleted file mode 100755 index cdb25434..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm3/libgdbm3-1.8.3-3.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm4/libgdbm4-1.8.3-7.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm4/libgdbm4-1.8.3-7.tar.bz2 deleted file mode 100755 index 1c9052ea..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm4/libgdbm4-1.8.3-7.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libgettextpo0/libgettextpo0-0.14.1-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libgettextpo0/libgettextpo0-0.14.1-1.tar.bz2 deleted file mode 100755 index 620c5b19..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libgettextpo0/libgettextpo0-0.14.1-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl1/libintl1-0.10.40-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl1/libintl1-0.10.40-1.tar.bz2 deleted file mode 100755 index 2b19813a..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl1/libintl1-0.10.40-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl2/libintl2-0.12.1-3.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl2/libintl2-0.12.1-3.tar.bz2 deleted file mode 100755 index bf8190a0..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl2/libintl2-0.12.1-3.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl3/libintl3-0.14.1-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl3/libintl3-0.14.1-1.tar.bz2 deleted file mode 100755 index 3545764b..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl3/libintl3-0.14.1-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/grep/grep-2.5-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/grep/grep-2.5-1.tar.bz2 deleted file mode 100755 index 5952dc37..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/grep/grep-2.5-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/groff/groff-1.18.1-2.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/groff/groff-1.18.1-2.tar.bz2 deleted file mode 100755 index 796db6a2..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/groff/groff-1.18.1-2.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gzip/gzip-1.3.5-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gzip/gzip-1.3.5-1.tar.bz2 deleted file mode 100755 index fccfa7a5..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gzip/gzip-1.3.5-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/less/less-381-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/less/less-381-1.tar.bz2 deleted file mode 100755 index f0c22d34..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/less/less-381-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libcharset1/libcharset1-1.9.2-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libcharset1/libcharset1-1.9.2-1.tar.bz2 deleted file mode 100755 index af71917a..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libcharset1/libcharset1-1.9.2-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libiconv-1.9.2-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libiconv-1.9.2-1.tar.bz2 deleted file mode 100755 index 8c3b1ad2..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libiconv-1.9.2-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libiconv2/libiconv2-1.9.2-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libiconv2/libiconv2-1.9.2-1.tar.bz2 deleted file mode 100755 index 8d1eb22e..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libiconv2/libiconv2-1.9.2-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/login/login-1.9-7.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/login/login-1.9-7.tar.bz2 deleted file mode 100755 index 569035c5..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/login/login-1.9-7.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/man/man-1.5o-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/man/man-1.5o-1.tar.bz2 deleted file mode 100755 index b8d81dff..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/man/man-1.5o-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/mktemp/mktemp-1.5-3.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/mktemp/mktemp-1.5-3.tar.bz2 deleted file mode 100755 index 7f12d2ee..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/mktemp/mktemp-1.5-3.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses5/libncurses5-5.2-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses5/libncurses5-5.2-1.tar.bz2 deleted file mode 100755 index d7b3874f..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses5/libncurses5-5.2-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses6/libncurses6-5.2-8.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses6/libncurses6-5.2-8.tar.bz2 deleted file mode 100755 index 357d871e..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses6/libncurses6-5.2-8.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses7/libncurses7-5.3-4.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses7/libncurses7-5.3-4.tar.bz2 deleted file mode 100755 index 0b2e8eb6..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses7/libncurses7-5.3-4.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses8/libncurses8-5.4-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses8/libncurses8-5.4-1.tar.bz2 deleted file mode 100755 index f26fbbea..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses8/libncurses8-5.4-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/ncurses-5.4-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/ncurses-5.4-1.tar.bz2 deleted file mode 100755 index b8353449..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/ncurses-5.4-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/pcre/libpcre/libpcre-4.1-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/pcre/libpcre/libpcre-4.1-1.tar.bz2 deleted file mode 100755 index a53b4742..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/pcre/libpcre/libpcre-4.1-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/pcre/libpcre0/libpcre0-4.5-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/pcre/libpcre0/libpcre0-4.5-1.tar.bz2 deleted file mode 100755 index 67c1098b..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/pcre/libpcre0/libpcre0-4.5-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/popt/libpopt0/libpopt0-1.6.4-4.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/popt/libpopt0/libpopt0-1.6.4-4.tar.bz2 deleted file mode 100755 index 5be6833b..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/popt/libpopt0/libpopt0-1.6.4-4.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline4/libreadline4-4.1-2.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline4/libreadline4-4.1-2.tar.bz2 deleted file mode 100755 index 47764561..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline4/libreadline4-4.1-2.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline5/libreadline5-4.3-5.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline5/libreadline5-4.3-5.tar.bz2 deleted file mode 100755 index 81d7f1b8..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline5/libreadline5-4.3-5.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline6/libreadline6-5.0-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline6/libreadline6-5.0-1.tar.bz2 deleted file mode 100755 index 894514d3..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline6/libreadline6-5.0-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/readline-5.0-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/readline-5.0-1.tar.bz2 deleted file mode 100755 index 77a63b08..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/readline-5.0-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/sed/sed-4.1.2-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/sed/sed-4.1.2-1.tar.bz2 deleted file mode 100755 index d98ffc49..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/sed/sed-4.1.2-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/sh-utils/sh-utils-2.0.15-4.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/sh-utils/sh-utils-2.0.15-4.tar.bz2 deleted file mode 100755 index 7cc27b4d..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/sh-utils/sh-utils-2.0.15-4.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/tar/tar-1.13.25-5.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/tar/tar-1.13.25-5.tar.bz2 deleted file mode 100755 index 0aca05f2..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/tar/tar-1.13.25-5.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/termcap/termcap-20021106-2.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/termcap/termcap-20021106-2.tar.bz2 deleted file mode 100755 index d1d4354f..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/termcap/termcap-20021106-2.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/terminfo/terminfo-5.4_20041009-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/terminfo/terminfo-5.4_20041009-1.tar.bz2 deleted file mode 100755 index 8dda44da..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/terminfo/terminfo-5.4_20041009-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/texinfo/texinfo-4.2-4.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/texinfo/texinfo-4.2-4.tar.bz2 deleted file mode 100755 index f5172b22..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/texinfo/texinfo-4.2-4.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/textutils/textutils-2.0.21-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/textutils/textutils-2.0.21-1.tar.bz2 deleted file mode 100755 index 7d572d84..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/textutils/textutils-2.0.21-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/which/which-1.5-2.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/which/which-1.5-2.tar.bz2 deleted file mode 100755 index dd46d883..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/which/which-1.5-2.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/zlib/zlib-1.2.2-1.tar.bz2 b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/zlib/zlib-1.2.2-1.tar.bz2 deleted file mode 100755 index 4396713d..00000000 Binary files a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/zlib/zlib-1.2.2-1.tar.bz2 and /dev/null differ diff --git a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/setup.ini b/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/setup.ini deleted file mode 100755 index 3142986a..00000000 --- a/tools/cygwin/Cygwin-Files/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/setup.ini +++ /dev/null @@ -1,7900 +0,0 @@ -# This file is automatically generated. If you edit it, your -# edits will be discarded next time the file is generated. -# See http://cygwin.com/setup.html for details. -# -setup-timestamp: 1100703644 - -@ ELFIO -sdesc: "ELF file reader and producer implemented as a C++ library" -ldesc: "ELFIO is a C++ library for reading and generating files in the -ELF (Executable and Linkable Format) binary format. This library is -unique and not based on any other product. It is also platform -independent. The library uses standard ANSI C++ constructions and runs -on a wide variety of architectures." -category: Devel Libs -requires: cygwin -version: 1.0.0-1 -install: release/ELFIO/ELFIO-1.0.0-1.tar.bz2 151514 47cf28298685439ba5b5ac478e8eb44e -source: release/ELFIO/ELFIO-1.0.0-1-src.tar.bz2 274022 d29ab8fb0cad01250969983afca9891b - -@ GConf2 -sdesc: "Configuration database system" -ldesc: "GConf is a configuration database system, functionally similar to the -Windows registry but lots better. :-) It's being written for the GNOME -desktop but does not require GNOME; configure should notice if GNOME -is not installed and compile the basic GConf library anyway. - -GConf does require glib, ORBit, libxml, and the popt option parsing -library. libxml will be optional in the future if someone writes another -storage backend. (Update: one is written but not enabled by default yet.) - -For information, see: - http://www.gnome.org/projects/gconf/" -category: Gnome -requires: atk-runtime cygwin expat glib2-runtime gtk2-x11-runtime libfontconfig1 libfreetype26 libiconv2 libintl3 libpopt0 libXft2 libxml2 pango-runtime xorg-x11-bin-dlls zlib -version: 2.8.0.1-1 -install: release/GNOME/GConf2/GConf2-2.8.0.1-1.tar.bz2 863854 421b8f053bf8345671cfa7cf256d5318 -source: release/GNOME/GConf2/GConf2-2.8.0.1-1-src.tar.bz2 1875770 f19b5d03b0f527168fceea8e36652b4a - -@ GraphicsMagick -sdesc: "GraphicsMagick" -ldesc: "GraphicsMagick is a robust collection of tools and libraries -which support reading, writing, and manipulating an image in over 88 -major formats including popular formats like TIFF, JPEG, JPEG-2000, -PNG, PDF, PhotoCD, SVG, and GIF. GraphicsMagick supports creating new -images on the fly, making it suitable for building dynamic Web -applications. GraphicsMagick may be used to resize, rotate, sharpen, -color reduce, or add special effects to an image and save the result -in the same or differing image format. Image processing operations are -available from the command line, as well as through C, C++, Perl, -Java, or Windows COM programming interfaces. Extensions are available -from third-parties to support programming in Borland's Delphi, Java, -PHP, Python, Scheme, and Ruby." -category: Graphics -requires: cygwin jbigkit libbz2_1 libfreetype26 libiconv2 libjpeg62 libpng12 libtiff4 libxml2 xorg-x11-bin-dlls zlib libGraphicsMagick0 -version: 1.0.6-1 -install: release/GraphicsMagick/GraphicsMagick-1.0.6-1.tar.bz2 883453 934af4ee774f5435483112f52068d150 -source: release/GraphicsMagick/GraphicsMagick-1.0.6-1-src.tar.bz2 3756399 bfd6f5862f2038b5f097e0b1fe6fe8ca - -@ ImageMagick -sdesc: "ImageMagick" -ldesc: "ImageMagick is a robust collection of tools and libraries -offered under a usage license to read, write, and manipulate an image -in many image formats (over 89 major formats) including popular -formats like TIFF, JPEG, PNG, PDF, PhotoCD, and GIF." -category: Graphics -requires: cygwin jasper jbigkit lcms libbz2_1 libfpx libfreetype26 libiconv2 libjpeg62 libpng12 libtiff4 libxml2 xorg-x11-bin-dlls zlib libMagick6 -version: 6.0.4-1 -install: release/ImageMagick/ImageMagick-6.0.4-1.tar.bz2 1699833 6c96b4cbc8dba18ef7ee040162fd819e -source: release/ImageMagick/ImageMagick-6.0.4-1-src.tar.bz2 5774156 4d711fce924a9d47e2f273690ebac6c7 - -@ ORBit2 -sdesc: "CORBA 2.4 Object Request Broker library (executables, runtime libraries and docs)" -ldesc: "ORBit2 is a CORBA 2.4-compliant Object Request Broker (ORB) -featuring mature C and Perl bindings. It supports POA, DII, DSI, -TypeCode, Any, IR and IIOP. Optional features including INS and -threading are available. ORBit2 is engineered for the GNU Object Model -Environment (GNOME) with a focus on performance, low resource usage, -and security." -category: Libs -requires: cygwin glib2-runtime libIDL libiconv2 libintl3 libpopt0 minires -version: 2.12.0-1 -install: release/ORBit2/ORBit2-2.12.0-1.tar.bz2 193890 674b152df9501a9d9a76d385259060c3 -source: release/ORBit2/ORBit2-2.12.0-1-src.tar.bz2 820068 ae159e4008b18e6c6bd9c471bdb5378b -[prev] -version: 2.10.3-1 -install: release/ORBit2/ORBit2-2.10.3-1.tar.bz2 189327 6e05d304001f1c43b4d900a4e25d8d9f -source: release/ORBit2/ORBit2-2.10.3-1-src.tar.bz2 721375 7b1774ae0bd790ff1883928fcc8ed531 - -@ ORBit2-devel -sdesc: "CORBA 2.4 Object Request Broker library (development libraries and headers)" -ldesc: "ORBit2 is a CORBA 2.4-compliant Object Request Broker (ORB) -featuring mature C and Perl bindings. It supports POA, DII, DSI, -TypeCode, Any, IR and IIOP. Optional features including INS and -threading are available. ORBit2 is engineered for the GNU Object Model -Environment (GNOME) with a focus on performance, low resource usage, -and security." -category: Libs Devel -requires: cygwin glib2-devel libIDL libiconv gettext popt ORBit2 -version: 2.12.0-1 -install: release/ORBit2/ORBit2-devel/ORBit2-devel-2.12.0-1.tar.bz2 154143 bde63c192600842b049bcdabd4e76552 -source: release/ORBit2/ORBit2-2.12.0-1-src.tar.bz2 820068 ae159e4008b18e6c6bd9c471bdb5378b -[prev] -version: 2.10.3-1 -install: release/ORBit2/ORBit2-devel/ORBit2-devel-2.10.3-1.tar.bz2 141498 42aaed09f2b55bfc0fd2c5493572d4a9 -source: release/ORBit2/ORBit2-2.10.3-1-src.tar.bz2 721375 7b1774ae0bd790ff1883928fcc8ed531 - -@ OpenSP -sdesc: "SGML parser, production release." -ldesc: "The OpenJade project provides a suite of tools and libraries -for validating, processing and applying DSSSL (Document Style Semantics -and Specification Language) style sheets to SGML and XML documents." -category: Text Libs -requires: cygwin libintl2 libiconv2 -version: 1.5.1-1 -install: release/OpenSP/OpenSP-1.5.1-1.tar.bz2 1293518 d202d0cc7a1383d71ba605ed8d6b4c44 -source: release/OpenSP/OpenSP-1.5.1-1-src.tar.bz2 1697860 433c75335422029ea7380dca9c348219 - -@ SWI-Prolog -sdesc: "Prolog Interpreter" -ldesc: "SWI-Prolog is an ISO compatible Prolog compiler. It has a good -collection of built-in predicates, a large set of which it shares with -Edinburgh C-Prolog, Quintus Prolog and SICStus Prolog. Among its features -are a very fast compiler, a Quintus-like module system, library autoloading, -garbage collection, atom garbage collection, fast bidirectional C interface, -true C++ interface, execution profiling and many more. - -See the SWI-Prolog home page at http://www.swi-prolog.org for details." -category: Interpreters Devel -requires: cygwin libncurses7 libreadline5 terminfo -version: 5.2.6-1 -install: release/SWI-Prolog/SWI-Prolog-5.2.6-1.tar.bz2 912081 b58e4e714874473443b4280ac8415b53 -source: release/SWI-Prolog/SWI-Prolog-5.2.6-1-src.tar.bz2 5815439 3c8b45d8653856f237ca7b4b85498c9d - -@ TeXmacs -sdesc: "A scientific wysiwyg Editor and Interface for Computer Algebra -Systems." -ldesc: "GNU TeXmacs is a free scientific text editor, which was both -inspired by TeX and GNU Emacs. The editor allows you to write -structured documents via a wysiwyg (what-you-see-is-what-you-get) and -user friendly interface. New styles may be created by the user. The -program implements high-quality typesetting algorithms and TeX fonts, -which help you to produce professionally looking documents. - -The high typesetting quality still goes through for automatically -generated formulas, which makes TeXmacs suitable as an interface for -computer algebra systems. TeXmacs also supports the Guile/Scheme -extension language, so that you may customize the interface and write -your own extensions to the editor. - -Converters exist for TeX/LaTeX and Html/MathML/Xml. In the future, -TeXmacs is planned to evolve towards a complete scientific office -suite." -category: Editors Math -requires: ghostscript-base ghostscript-x11 guile guile-devel guile-doc libguile12 tetex-bin tetex-base tetex-extra tetex-devel xorg-x11-base transfig libfreetype26 libiconv2 XFree86-lib-compat -version: 1.0.4-4 -install: release/TeXmacs/TeXmacs-1.0.4-4.tar.bz2 3001571 4ccd892dda015ead15c490fbc967fb18 -source: release/TeXmacs/TeXmacs-1.0.4-4-src.tar.bz2 2640764 78c2b3de246bb4acd9951d32c75e23d0 - -@ WindowMaker -sdesc: "WindowMaker" -ldesc: "Window Maker is an X11 window manager originally designed to -provide integration support for the GNUstep Desktop Environment. In -every way possible, it reproduces the elegant look and feel of the -NEXTSTEP[tm] user interface. It is fast, feature rich, easy to -configure, and easy to use. It is also free software and part of the -GNU Project, with contributions being made by programmers from around -the world." -category: X11 -requires: xorg-x11-base jpeg tiff libpng libungif -version: 0.90.0-1 -install: release/X11/WindowMaker/WindowMaker-0.90.0-1.tar.bz2 1516626 4035a4042c4c7c30de5f38dc471f2d4c -source: release/X11/WindowMaker/WindowMaker-0.90.0-1-src.tar.bz2 2218141 4c264bbc18cdfa33501eb11a3aa63e7c - -@ WordNet -sdesc: "An online lexical reference system" -ldesc: "WordNet is an online lexical reference system. Word forms in WordNet are -represented in their familiar orthography; word meanings are represented by synonym -sets (synsets) - lists of synonymous word forms that are interchangeable in some -context. Two kinds of relations are recognized: lexical and semantic. Lexical -relations hold between word forms; semantic relations hold between word meanings." -category: Text Utils -requires: cygwin tcltk -version: 2.0-1 -install: release/WordNet/WordNet-2.0-1.tar.bz2 8666958 1bbdd37fbcb3c7c5d6891f3753d1635b -source: release/WordNet/WordNet-2.0-1-src.tar.bz2 12917713 400463920d0b4ad063eccf53a8b541ed - -@ X-start-menu-icons -sdesc: "Start menu icons for Cygwin/X programs" -ldesc: "This package creates icons for the X clients in the standard X -distribution like xterm and xclock, plus icons for other installed X -clients, such as emacs." -category: X11 -requires: cygwin bash cygutils findutils textutils xorg-x11-bin xorg-x11-xwin X-startup-scripts -version: 1.0.3-2 -install: release/X11/X-start-menu-icons/X-start-menu-icons-1.0.3-2.tar.bz2 3656 69b6cc1c9b0ab7b2859d06fef2937ab6 -source: release/X11/X-start-menu-icons/X-start-menu-icons-1.0.3-2-src.tar.bz2 44490 258fc3708209c715f3d2c8a8b8680b96 -[prev] -version: 1.0.3-1 -install: release/X11/X-start-menu-icons/X-start-menu-icons-1.0.3-1.tar.bz2 3645 f5d146258cfbee40e550924deb816770 -source: release/X11/X-start-menu-icons/X-start-menu-icons-1.0.3-1-src.tar.bz2 43802 f145ab8957bd2e4b921f57a27ced4335 - -@ X-startup-scripts -sdesc: "Cygwin/X startup-scripts" -ldesc: "This package contains the startup-scripts for the X Server." -category: X11 -requires: cygwin bash xorg-x11-base xorg-x11-bin xorg-x11-xwin xterm -version: 1.0.10-2 -install: release/X11/X-startup-scripts/X-startup-scripts-1.0.10-2.tar.bz2 22221 118afdd45e5e76eb9a096e777627db9a -source: release/X11/X-startup-scripts/X-startup-scripts-1.0.10-2-src.tar.bz2 75371 c91336caa5bcce217843a26f9cb5c084 -[prev] -version: 1.0.9-1 -install: release/X11/X-startup-scripts/X-startup-scripts-1.0.9-1.tar.bz2 22165 3a040b81ef9a05d1d11a152ec9188bbb -source: release/X11/X-startup-scripts/X-startup-scripts-1.0.9-1-src.tar.bz2 74512 e3fc7491fc49479d705dc54613a5ead7 - -@ XFree86-base -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-base -version: 4.3.0-11 -install: release/ZZZRemovedPackages/XFree86-base/XFree86-base-4.3.0-11.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-bin -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-bin -version: 4.3.0-21 -install: release/ZZZRemovedPackages/XFree86-bin/XFree86-bin-4.3.0-21.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-bin-icons -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: X-start-menu-icons -version: 4.3.0-7 -install: release/ZZZRemovedPackages/XFree86-bin-icons/XFree86-bin-icons-4.3.0-7.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-doc -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -version: 4.3.0-2 -install: release/ZZZRemovedPackages/XFree86-doc/XFree86-doc-4.3.0-2.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-etc -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-etc -version: 4.3.0-12 -install: release/ZZZRemovedPackages/XFree86-etc/XFree86-etc-4.3.0-12.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-f100 -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-f100 -version: 4.3.0-2 -install: release/ZZZRemovedPackages/XFree86-f100/XFree86-f100-4.3.0-2.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-fcyr -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-fcyr -version: 4.3.0-2 -install: release/ZZZRemovedPackages/XFree86-fcyr/XFree86-fcyr-4.3.0-2.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-fenc -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-fenc -version: 4.3.0-2 -install: release/ZZZRemovedPackages/XFree86-fenc/XFree86-fenc-4.3.0-2.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-fnts -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-fnts -version: 4.3.0-2 -install: release/ZZZRemovedPackages/XFree86-fnts/XFree86-fnts-4.3.0-2.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-fscl -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-fscl -version: 4.3.0-2 -install: release/ZZZRemovedPackages/XFree86-fscl/XFree86-fscl-4.3.0-2.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-fsrv -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-fsrv -version: 4.3.0-9 -install: release/ZZZRemovedPackages/XFree86-fsrv/XFree86-fsrv-4.3.0-9.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-html -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-man-pages-html -version: 4.3.0-10 -install: release/ZZZRemovedPackages/XFree86-html/XFree86-html-4.3.0-10.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-jdoc -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -version: 4.3.0-2 -install: release/ZZZRemovedPackages/XFree86-jdoc/XFree86-jdoc-4.3.0-2.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-lib -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-libs-data -version: 4.3.0-3 -install: release/ZZZRemovedPackages/XFree86-lib/XFree86-lib-4.3.0-3.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-lib-compat -sdesc: "Cygwin/X 4.2.0 shared libraries" -ldesc: "This package contains the Cygwin/X 4.2.0 shared libraries (DLLs) that allow X Clients compiled for Cygwin/X to function properly with Cygwin/X 4.3.0." -category: X11 -requires: xorg-x11-base -version: 4.3.0-2 -install: release/X11/XFree86-lib-compat/XFree86-lib-compat-4.3.0-2.tar.bz2 1418166 48d0366745c93fc822915346f8be6234 -[prev] -version: 4.3.0-1 -install: release/X11/XFree86-lib-compat/XFree86-lib-compat-4.3.0-1.tar.bz2 1571095 b733f7fc2bb14b6bfe97ce9060d8de17 - -@ XFree86-man -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-man-pages -version: 4.3.0-10 -install: release/ZZZRemovedPackages/XFree86-man/XFree86-man-4.3.0-10.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-nest -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-nest -version: 4.3.0-8 -install: release/ZZZRemovedPackages/XFree86-nest/XFree86-nest-4.3.0-8.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-prog -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-devel -version: 4.3.0-21 -install: release/ZZZRemovedPackages/XFree86-prog/XFree86-prog-4.3.0-21.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-prt -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -version: 4.3.0-6 -install: release/ZZZRemovedPackages/XFree86-prt/XFree86-prt-4.3.0-6.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-ps -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -version: 4.3.0-2 -install: release/ZZZRemovedPackages/XFree86-ps/XFree86-ps-4.3.0-2.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-startup-scripts -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: X-startup-scripts -version: 4.3.0-1 -install: release/ZZZRemovedPackages/XFree86-startup-scripts/XFree86-startup-scripts-4.3.0-1.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-vfb -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-vfb -version: 4.3.0-8 -install: release/ZZZRemovedPackages/XFree86-vfb/XFree86-vfb-4.3.0-8.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-xserv -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -requires: xorg-x11-xwin -version: 4.3.0-68 -install: release/ZZZRemovedPackages/XFree86-xserv/XFree86-xserv-4.3.0-68.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ XFree86-xwinclip -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed package." -category: ZZZRemovedPackages -version: 4.3.0-3 -install: release/ZZZRemovedPackages/XFree86-xwinclip/XFree86-xwinclip-4.3.0-3.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ Xaw3d -sdesc: "A 3D version of the MIT Athena widget set for X" -ldesc: "Xaw3d is an enhanced version of the MIT Athena widget set for -the X Window System. Xaw3d adds a three-dimensional look to X11 -applications with minimal or no source code changes. You should install -Xaw3d if you are using applications which incorporate the MIT Athena -widget set and you'd like to incorporate a 3D look into those -applications. Xaw3d includes the header files and shared libraries for -developing programs that take full advantage of Xaw3d's features. You -should install Xaw3d if you are going to develop applications using the -Xaw3d widget set." -category: X11 -requires: cygwin xorg-x11-bin -version: 1.5D-5 -install: release/X11/Xaw3d/Xaw3d-1.5D-5.tar.bz2 169912 b1b7a09ba2fad5020b9e8eb496b2b554 -source: release/X11/Xaw3d/Xaw3d-1.5D-5-src.tar.bz2 317571 f1a0709f3b83bd6ddd9cd7f3e4f9efe3 - -@ XmHTML -sdesc: "XmHTML provides a widget capable of displaying HTML 3.2 conforming text" -ldesc: "XmHTML provides a widget capable of displaying HTML 3.2 conforming text." -category: Libs Web X11 -requires: cygwin expat lesstif libfontconfig1 libfreetype26 libjpeg62 libpng12 xorg-x11-bin zlib -version: 1.1.7-1 -install: release/X11/XmHTML/XmHTML-1.1.7-1.tar.bz2 1768549 08f05d172cd1e3a1a3bf7a7d95fccc63 -source: release/X11/XmHTML/XmHTML-1.1.7-1-src.tar.bz2 1307412 7b14f9555cfd381fb8ce3a08fc9316b1 - -@ a2ps -sdesc: "Formats files for printing on a PostScript printer." -ldesc: "Formats files for printing on a PostScript printer. - -The format used is nice and compact: normally two pages on each physical page, borders surrounding pages, headers with useful information (page number, printing date, file name or supplied header), line numbering, pretty-printing, symbol substitution etc. This is very useful for making archive listings of programs or just to check your code on the bus." -category: Text -requires: cygwin groff man psutils -version: 4.13-1 -install: release/a2ps/a2ps-4.13-1.tar.bz2 844725 fd9509ef1ce14ee090f148f66ab80e25 -source: release/a2ps/a2ps-4.13-1-src.tar.bz2 1959335 7538095a2fddaee6b41b7630bd225a37 -[prev] -version: 4.12-2 -install: release/a2ps/a2ps-4.12-2.tar.bz2 819281 002f613c1c05fed16028da5ddc00c6d8 -source: release/a2ps/a2ps-4.12-2-src.tar.bz2 1843856 7e3a20e1c1ecdedcd1fae879cad554c8 - -@ agetty -sdesc: "An improved getty program" -ldesc: "Traditionally, getty is the program that listens on terminal and modem -ports and that prompts for a login name. Agetty is an alternative for -the System V or SunOS 4 environments that sports some useful features." -category: System -requires: cygwin login -version: 2.1-1 -install: release/agetty/agetty-2.1-1.tar.bz2 21225 950635063cfccccc495c6e03554a44de -source: release/agetty/agetty-2.1-1-src.tar.bz2 25288 b985a0be287a243024148a1bfd8c943d - -@ antiword -sdesc: "A free MS Word reader" -ldesc: "Antiword converts the binary files from -Word 2, 6, 7, 97, 2000 and 2002 to plain text -and to PostScript TM." -category: Text -requires: cygwin -version: 0.34-2 -install: release/antiword/antiword-0.34-2.tar.bz2 135000 64d78756c52a554cd6dc9923740bb005 -source: release/antiword/antiword-0.34-2-src.tar.bz2 280821 558a5ca920b086ce72eb21afea6ea581 -[prev] -version: 0.34-1 -install: release/antiword/antiword-0.34-1.tar.bz2 134737 18e6eeef42490c0c2c16fb0246bd64f4 -source: release/antiword/antiword-0.34-1-src.tar.bz2 274374 cd3a238d0a3d9b2e68f33a5387c357eb - -@ apache -sdesc: "The industry standard HTTP (Web) Server" -ldesc: "The Apache Project is a collaborative software development -effort aimed at creating a robust, commercial-grade, featureful, -and freely-available source code implementation of an HTTP (Web) -server. The project is jointly managed by a group of volunteers -located around the world, using the Internet and the Web to -communicate, plan, and develop the server and its related -documentation. These volunteers are known as the Apache Group. -In addition, hundreds of users have contributed ideas, code, and -documentation to the project. This file is intended to briefly -describe the history of the Apache Group and recognize the many -contributors." -category: Net Web -requires: cygwin crypt libgdbm4 -version: 1.3.29-2 -install: release/apache/apache-1.3.29-2.tar.bz2 1358168 e492bb7cf0e3389696c5a17cb26c2f36 -source: release/apache/apache-1.3.29-2-src.tar.bz2 2011138 9cd76635afd00fd0fe3ddf6e89fa3634 - -@ apr -sdesc: "The Apache Portable Runtime (development/documentation package)" -ldesc: "The mission of the Apache Portable Runtime (APR) project is to create -and maintain software libraries that provide a predictable and consistent -interface to underlying platform-specific implementations. - -This is the core library of this system." -category: Libs Devel -requires: cygwin libapr0 -version: 0.9.5_2.0.52-1 -install: release/apr/apr-0.9.5_2.0.52-1.tar.bz2 153313 f94371a77c7cf8b2f6644155810b2faf -source: release/apr/apr-0.9.5_2.0.52-1-src.tar.bz2 853475 4274d5d4ed7754502438f15f0d2f56dc -[prev] -version: 0.9.5pre20040608-1 -install: release/apr/apr-0.9.5pre20040608-1.tar.bz2 152089 f8522fbf732ded8578531ff798f71d74 -source: release/apr/apr-0.9.5pre20040608-1-src.tar.bz2 850515 07b69b254366c1b805f1ed159a56f52e - -@ apr-util -sdesc: "Additional utility library for use with the Apache Portable Runtime (development/documentation package)" -ldesc: "The mission of the Apache Portable Runtime (APR) project is to create -and maintain software libraries that provide a predictable and consistent -interface to underlying platform-specific implementations. - -This is APR-Util, an addon library which provides miscellaneous additional -utility functionality." -category: Libs Devel -requires: cygwin libaprutil0 apr -version: 0.9.5_2.0.52-1 -install: release/apr-util/apr-util-0.9.5_2.0.52-1.tar.bz2 52381 fb942f86c66ee915305d8540d3fc8a13 -source: release/apr-util/apr-util-0.9.5_2.0.52-1-src.tar.bz2 462995 43d49430b67d983decd68de3ea2df280 -[prev] -version: 0.9.5pre20040608-1 -install: release/apr-util/apr-util-0.9.5pre20040608-1.tar.bz2 52409 128170544de325303400930d7c4eb869 -source: release/apr-util/apr-util-0.9.5pre20040608-1-src.tar.bz2 460182 a0624c21725ecabbdd733aa59062af75 - -@ ash -sdesc: "A Bourne Shell (/bin/sh) workalike" -ldesc: "A Bourne Shell (/bin/sh) workalike" -category: Base Shells -requires: cygwin -version: 20040127-1 -install: release/ash/ash-20040127-1.tar.bz2 47258 471c6309ffd294b58ada1f96d2de4758 -source: release/ash/ash-20040127-1-src.tar.bz2 243376 8096502abda7653e0099d741185a678b -[prev] -version: 20031007-1 -install: release/ash/ash-20031007-1.tar.bz2 49148 b9e3d2795033260203574cea6b5f1d92 -source: release/ash/ash-20031007-1-src.tar.bz2 110856 ffeed8c41bb99d745817f4f5d63ed0f9 - -@ aspell -sdesc: "A powerful spell checker, designed to replace ispell" -ldesc: "Aspell is a powerful spell checker designed to replace ispell. -The current version is derived from the combination of pspell and older -aspell versions." -category: Text -requires: cygwin libaspell15 ncurses aspell-en -version: 0.50.3-1 -install: release/aspell/aspell-0.50.3-1.tar.bz2 61844 b59a73e6ab447c77def5c475c22a36af -source: release/aspell/aspell-0.50.3-1-src.tar.bz2 949608 b737cb307f70ab413e03232fb913e3cf - -@ aspell-de -sdesc: "German dictionary files for aspell" -ldesc: "German dictionary files for aspell" -category: Text -requires: cygwin aspell -version: 0.50.2-1 -install: release/aspell/aspell-de/aspell-de-0.50.2-1.tar.bz2 4944259 d582e79deb9fafeee52cf90ea8805aec -source: release/aspell/aspell-de/aspell-de-0.50.2-1-src.tar.bz2 311695 10a0a41295e9e60beb4afc601af22148 - -@ aspell-dev -sdesc: "Header files for aspell development." -ldesc: "Aspell is a powerful spell checker designed to replace ispell. -The current version is derived from the combination of pspell and older -aspell versions." -category: Text -requires: cygwin libaspell15 -version: 0.50.3-1 -install: release/aspell/aspell-dev/aspell-dev-0.50.3-1.tar.bz2 57598 da1b7f19eeb6162353f9c781b67f7830 -source: release/aspell/aspell-0.50.3-1-src.tar.bz2 949608 b737cb307f70ab413e03232fb913e3cf - -@ aspell-doc -sdesc: "Aspell documentation other then basic man files." -ldesc: "Aspell is a powerful spell checker designed to replace ispell. -The current version is derived from the combination of pspell and older -aspell versions." -category: Text -requires: cygwin -version: 0.50.3-1 -install: release/aspell/aspell-doc/aspell-doc-0.50.3-1.tar.bz2 277894 62622d1b11124fd381a6ab12e6fffaae -source: release/aspell/aspell-0.50.3-1-src.tar.bz2 949608 b737cb307f70ab413e03232fb913e3cf - -@ aspell-en -sdesc: "English dictionary files for aspell." -category: Text -requires: cygwin aspell -version: 0.51.0-1 -install: release/aspell/aspell-en/aspell-en-0.51.0-1.tar.bz2 1823914 33fad88cd4d517596ebab42d368ba750 -source: release/aspell/aspell-en/aspell-en-0.51.0-1-src.tar.bz2 177972 04be855c088559b4682b5495510234fe - -@ aspell-pl -sdesc: "Polish dictionary files for aspell" -ldesc: "Polish dictionary files for aspell" -category: Text -requires: cygwin aspell -version: 0.50.2-1 -install: release/aspell/aspell-pl/aspell-pl-0.50.2-1.tar.bz2 9250296 c9a8c055d62b701377fc7360b1318749 -source: release/aspell/aspell-pl/aspell-pl-0.50.2-1-src.tar.bz2 318415 300cd10eef85242d0afd1d5df9e887c6 - -@ astyle -sdesc: "Artistic Style is a reindenter and reformatter of C, C++, C# and Java source code. " -ldesc: "Artistic Style is a reindenter and reformatter of C, C++, C# and Java source code. " -category: Devel Utils -requires: cygwin -version: 1.15.3-3 -install: release/astyle/astyle-1.15.3-3.tar.bz2 104574 6181d560926f235da4bbda3a1bbc0284 -source: release/astyle/astyle-1.15.3-3-src.tar.bz2 47289 1183b293421015704fad6bcf92d000fb -[prev] -version: 1.15.3-2 -install: release/astyle/astyle-1.15.3-2.tar.bz2 104483 ae86bf1fa191ca0bc50e8edcb6ae8fef -source: release/astyle/astyle-1.15.3-2-src.tar.bz2 45851 ae1b2440aecff846122142354ee80644 - -@ atk -sdesc: "Low-level core library - runtime library" -ldesc: "ATK is the low-level core library that forms the basis -of GTK+ and GNOME. It provides the accessibility API in GNOME." -category: Libs Devel -requires: atk-runtime -version: 1.8.0-1 -install: release/atk/atk-1.8.0-1.tar.bz2 111738 0a8201f8eca289144eccb9b235b2e88c -source: release/atk/atk-1.8.0-1-src.tar.bz2 626461 350b13eff822c62a798e33d9d0f66911 -[prev] -version: 1.6.1-2 -install: release/atk/atk-1.6.1-2.tar.bz2 100357 72a356462257c0f9d641314c263b254b -source: release/atk/atk-1.6.1-2-src.tar.bz2 612536 a41ecefa8500698da9948674f4e3d107 - -@ atk-devel -sdesc: "Headers and import libraries for ATK" -category: Libs Devel -requires: atk-runtime -version: 1.8.0-1 -install: release/atk/atk-devel/atk-devel-1.8.0-1.tar.bz2 25797 7a72ce6a92dd03c76b6bc6a2d46b3c7f -source: release/atk/atk-1.8.0-1-src.tar.bz2 626461 350b13eff822c62a798e33d9d0f66911 -[prev] -version: 1.6.1-2 -install: release/atk/atk-devel/atk-devel-1.6.1-2.tar.bz2 25770 ef978a9cc1e1bfa78b664bab7239ffe8 -source: release/atk/atk-1.6.1-2-src.tar.bz2 612536 a41ecefa8500698da9948674f4e3d107 - -@ atk-doc -sdesc: "HTML docs and manpages for ATK" -category: Libs Devel Doc -version: 1.8.0-1 -install: release/atk/atk-doc/atk-doc-1.8.0-1.tar.bz2 37329 df10b4098c4f60d50e8286e30b122b53 -source: release/atk/atk-1.8.0-1-src.tar.bz2 626461 350b13eff822c62a798e33d9d0f66911 -[prev] -version: 1.6.1-2 -install: release/atk/atk-doc/atk-doc-1.6.1-2.tar.bz2 37921 4a07cb604363c9ea814249b19d971f52 -source: release/atk/atk-1.6.1-2-src.tar.bz2 612536 a41ecefa8500698da9948674f4e3d107 - -@ atk-runtime -sdesc: "Headers and import libraries for ATK" -category: Libs Devel -requires: cygwin libiconv2 libintl2 glib2 atk -version: 1.8.0-1 -install: release/atk/atk-runtime/atk-runtime-1.8.0-1.tar.bz2 43667 352a4ea316085d9a767eaea99f81ef44 -source: release/atk/atk-1.8.0-1-src.tar.bz2 626461 350b13eff822c62a798e33d9d0f66911 -[prev] -version: 1.6.1-2 -install: release/atk/atk-runtime/atk-runtime-1.6.1-2.tar.bz2 33110 6aa13132387a029bb0fb3a79c97a304b -source: release/atk/atk-1.6.1-2-src.tar.bz2 612536 a41ecefa8500698da9948674f4e3d107 - -@ audiofile -sdesc: "Digital audio file library (executables)" -ldesc: "The Audio File Library provides a uniform programming interface -to standard digital audio file formats. - -This library allows the processing of audio data to and from audio -files of many common formats (currently AIFF, AIFF-C, WAVE, NeXT/Sun -.snd/.au, IRCAM, AVR, Amiga IFF/8SVX, and NIST SPHERE). The library -also supports compression (currently G.711 mu-law and A-law and IMA and -MS ADPCM) as well as PCM formats of all flavors (signed and unsigned -integer, single- and double-precision floating point)." -category: Libs -requires: cygwin libaudiofile0 -version: 0.2.6-2 -install: release/audiofile/audiofile-0.2.6-2.tar.bz2 27660 4da80ca1c8691afc6df403948b3a5caf -source: release/audiofile/audiofile-0.2.6-2-src.tar.bz2 501056 2ec42a8b3cbb25dc22691db2b6d897ed -[prev] -version: 0.2.6-1 -install: release/audiofile/audiofile-0.2.6-1.tar.bz2 27650 f28500762824fb504988c8c885bb43d3 -source: release/audiofile/audiofile-0.2.6-1-src.tar.bz2 500790 5eee40a488638560a5dfbcb4f5984b97 - -@ autoconf -sdesc: "Wrapper scripts for autoconf-devel and autoconf-stable" -ldesc: "Autoconf is an extensible package of m4 macros that produce shell -scripts to automatically configure software source code packages. -These scripts can adapt the packages to many kinds of UNIX-like -systems without manual user intervention. Autoconf creattes a -configuration script for a package from a template file that lists the -operating system features that the package can use, in the form of m4 -macro calls. - -Autoconf contains autoconf-wrapper-2.59, and is meant to be installed -alongside autoconf-stable (which contains autoconf-2.13) and alongside -autoconf-devel (which contains autoconf-2.5x). It exec's the appropriate -version based on target package heuristics." -category: Devel -requires: ash autoconf-devel autoconf-stable -version: 2.59-1 -install: release/autoconf/autoconf-2.59-1.tar.bz2 14660 e4d6a5874e9ccaa74fe0548b42d165ad -source: release/autoconf/autoconf-2.59-1-src.tar.bz2 55648 50d1ef8c5ee031e3e136ff936ba14bb2 -[prev] -version: 2.57a-1 -install: release/autoconf/autoconf-2.57a-1.tar.bz2 14583 8e373598dd451df54425d1e941659ba0 -source: release/autoconf/autoconf-2.57a-1-src.tar.bz2 66061 4a9aee288bf78ddc50c071f4b7613411 - -@ autoconf-devel -sdesc: "Development version of the automatic configure script builder" -ldesc: "Autoconf is an extensible package of m4 macros that produce shell -scripts to automatically configure software source code packages. -These scripts can adapt the packages to many kinds of UNIX-like -systems without manual user intervention. Autoconf creattes a -configuration script for a package from a template file that lists the -operating system features that the package can use, in the form of m4 -macro calls. - -Autoconf-devel contains autoconf-2.5x, and is meant to be installed -alongside autoconf-stable (which contains autoconf-2.13) and alongside -the 'autoconf' package, which contains wrapper scripts which call the -appropriate 'real' autoconf, stable or devel, based on target package -heuristics." -category: Devel -requires: m4 perl mktemp texinfo _update-info-dir -version: 2.59-1 -install: release/autoconf/autoconf-devel/autoconf-devel-2.59-1.tar.bz2 605101 e585bd0643c8ab6a0b76f943a519078c -source: release/autoconf/autoconf-devel/autoconf-devel-2.59-1-src.tar.bz2 933734 378bfa6561a4d53159e6c7ab1b68d066 -[prev] -version: 2.57-2 -install: release/autoconf/autoconf-devel/autoconf-devel-2.57-2.tar.bz2 561402 8843c2e3467342bec1294d84cf82338d -source: release/autoconf/autoconf-devel/autoconf-devel-2.57-2-src.tar.bz2 820177 b5a7be7428a48d866bfd7194766ee9ed - -@ autoconf-stable -sdesc: "Stable version of the automatic configure script builder" -ldesc: "Autoconf is an extensible package of m4 macros that produce shell -scripts to automatically configure software source code packages. -These scripts can adapt the packages to many kinds of UNIX-like -systems without manual user intervention. Autoconf creattes a -configuration script for a package from a template file that lists the -operating system features that the package can use, in the form of m4 -macro calls. - -Autoconf-stable contains autoconf-2.13, and is meant to be installed -alongside autoconf-devel (which contains autoconf-2.5x) and alongside -the 'autoconf' package, which contains wrapper scripts which call the -appropriate 'real' autoconf, stable or devel, based on target package -heuristics." -category: Devel -requires: m4 perl mktemp -version: 2.13-5 -install: release/autoconf/autoconf-stable/autoconf-stable-2.13-5.tar.bz2 174797 e12f6e2daf8ac9c26a9788a23306e548 -source: release/autoconf/autoconf-stable/autoconf-stable-2.13-5-src.tar.bz2 450584 28f81bcb6c578868ff73cef3391319a7 -[prev] -version: 2.13-4 -install: release/autoconf/autoconf-stable/autoconf-stable-2.13-4.tar.bz2 174733 de83c2e1113dfbfa23f1f38bd6f0bf7c -source: release/autoconf/autoconf-stable/autoconf-stable-2.13-4-src.tar.bz2 450400 2081329c5671976cfaf9b2bbe2869e0e - -@ automake -sdesc: "Wrapper scripts for automake-devel and automake-stable" -ldesc: "This is Automake, a Makefile generator. It was inspired -by the 4.4BSD make and include files, but aims to be portable and -to conform to the GNU standards for Makefile variables and targets. - -This package also includes the 'aclocal' program. aclocal is a -program to generate an `aclocal.m4' based on the contents of -`configure.in'. It is useful as an extensible, maintainable mechanism -for augmenting autoconf. It is intended that other package authors -will write m4 macros which can be automatically used by aclocal. - -Automake contains automake-wrapper-1.7.x, and is meant to be installed -alongside automake-stable (which contains automake-1.4-p6) and alongside -automake-devel (which contains automake-1.7.x). It exec's the appropriate -version based on target package heuristics." -category: Devel -requires: ash automake-devel automake-stable -version: 1.7.9-1 -install: release/automake/automake-1.7.9-1.tar.bz2 12650 d4ae1fd95c8e0b0f2e379fe5882fb4eb -source: release/automake/automake-1.7.9-1-src.tar.bz2 53927 74648d6d651d8d5fedd7dab0c2b3b764 -[prev] -version: 1.7.5a-1 -install: release/automake/automake-1.7.5a-1.tar.bz2 12583 25fc4133fd0a4c74fcc9b86b1a7b31e7 -source: release/automake/automake-1.7.5a-1-src.tar.bz2 63822 b6c55f096aa3576318eef167dd676d38 - -@ automake-devel -sdesc: "Development version of a tool for generating GNU-compliant Makefiles" -ldesc: "This is Automake, a Makefile generator. It was inspired -by the 4.4BSD make and include files, but aims to be portable and -to conform to the GNU standards for Makefile variables and targets. - -This package also includes the 'aclocal' program. aclocal is a -program to generate an `aclocal.m4' based on the contents of -`configure.in'. It is useful as an extensible, maintainable mechanism -for augmenting autoconf. It is intended that other package authors -will write m4 macros which can be automatically used by aclocal. - -Automake-devel contains automake-1.9.x, and is meant to be installed -alongside automake-stable (which contains automake-1.4-p6) and alongside -the 'automake' package, which contains wrapper scripts which call the -appropriate 'real' automake, stable or devel, based on target package -heuristics." -category: Devel -requires: autoconf perl mktemp m4 texinfo _update-info-dir -version: 1.9.2-1 -install: release/automake/automake-devel/automake-devel-1.9.2-1.tar.bz2 679874 02ec4f54f9b440733a18920c43be2606 -source: release/automake/automake-devel/automake-devel-1.9.2-1-src.tar.bz2 744879 52b45e68b31e3db4f7bdbf5c4a1f2027 -[prev] -version: 1.9.1-1 -install: release/automake/automake-devel/automake-devel-1.9.1-1.tar.bz2 640631 f07204054ed7af36c0b371a55c5c4699 -source: release/automake/automake-devel/automake-devel-1.9.1-1-src.tar.bz2 709620 2c18dbe0aad8485846e77b9fc1cd6a95 - -@ automake-stable -sdesc: "Stable version of a tool for generating GNU-compliant Makefiles" -ldesc: "This is Automake, a Makefile generator. It was inspired -by the 4.4BSD make and include files, but aims to be portable and -to conform to the GNU standards for Makefile variables and targets. - -This package also includes the 'aclocal' program. aclocal is a -program to generate an `aclocal.m4' based on the contents of -`configure.in'. It is useful as an extensible, maintainable mechanism -for augmenting autoconf. It is intended that other package authors -will write m4 macros which can be automatically used by aclocal. - -Automake-stable contains automake-1.4-p6, and is meant to be installed -alongside automake-devel (which contains automake-1.7.x) and alongside -the 'automake' package, which contains wrapper scripts which call the -appropriate 'real' automake, stable or devel, based on target package -heuristics." -category: Devel -requires: autoconf perl mktemp m4 -version: 1.4p6-2 -install: release/automake/automake-stable/automake-stable-1.4p6-2.tar.bz2 199873 52a5bbe91f63805aaaecd45bdd779ec2 -source: release/automake/automake-stable/automake-stable-1.4p6-2-src.tar.bz2 383134 740e373dff44e82e536b74db3d5deef3 -[prev] -version: 1.4p6-1 -install: release/automake/automake-stable/automake-stable-1.4p6-1.tar.bz2 199076 33e7ebfdedcec9ef2723e1895bf73e78 -source: release/automake/automake-stable/automake-stable-1.4p6-1-src.tar.bz2 382957 44bc63a98036acb332fbf58707f8bd68 - -@ autossh -sdesc: "Automatically restart SSH sessions and tunnels" -ldesc: "autossh is a program to start an instance of ssh and monitor it, restarting -it as necessary should it die or stop passing traffic. autossh monitors -connections by sending data through a loop of port forwardings, and checking -that the data returns. autossh backs off on the rate of connection attempts -when experiencing rapid failures such as connection refused. It includes an -NT service mode, which works well as an NT system service under cygrunsrv." -category: Net -requires: openssh cygwin -version: 1.2g-4 -install: release/autossh/autossh-1.2g-4.tar.bz2 19330 a80c2a55ab94f06544d400a98fa0c69d -source: release/autossh/autossh-1.2g-4-src.tar.bz2 28241 0e11e2de21c8935399dd66b2d63b8579 -[prev] -version: 1.2g-2 -install: release/autossh/autossh-1.2g-2.tar.bz2 16180 c29bec8e307c42f3906b4ec1e411e00e -source: release/autossh/autossh-1.2g-2-src.tar.bz2 21725 b576bca56ded55a8ebca36a44be0453f - -@ base-files -sdesc: "A set of important system configuration and setup files" -ldesc: "A set of important system configuration and setup files" -category: Base -requires: ash fileutils sh-utils textutils findutils sed -version: 3.1-4 -install: release/base-files/base-files-3.1-4.tar.bz2 34476 d83503b1a800bdec09472b102cd131f0 -[prev] -version: 3.0-3 -install: release/base-files/base-files-3.0-3.tar.bz2 34346 8bd5c75c404bae8f17ab27affa59c184 - -@ base-passwd -sdesc: "A script to set up initial passwords and groups" -category: Base -requires: cygwin ash -version: 2.1-1 -install: release/base-passwd/base-passwd-2.1-1.tar.bz2 480 bb215c08e7aeb5b3c50ad1300ac82131 -[prev] -version: 2.0-1 -install: release/base-passwd/base-passwd-2.0-1.tar.bz2 478 96b3b805a343a68311d8872c36871087 - -@ bash -sdesc: "The GNU Bourne Again SHell" -ldesc: "Bash is an sh-compatible shell that incorporates useful features from -the Korn shell (ksh) and C shell (csh)." -category: Base Shells -requires: cygwin termcap _update-info-dir -version: 2.05b-16 -install: release/bash/bash-2.05b-16.tar.bz2 400957 837f987c5c5cbceb773bf14a32060bac -source: release/bash/bash-2.05b-16-src.tar.bz2 2033745 e148fb06b6c856a591a985d86361da15 -[prev] -version: 2.05b-15 -install: release/bash/bash-2.05b-15.tar.bz2 403141 35f42365aeec1f461919431559344791 -source: release/bash/bash-2.05b-15-src.tar.bz2 2032846 557979e303ed971c1cb52d55be487b6a -[test] -version: 2.05b-17 -install: release/bash/bash-2.05b-17.tar.bz2 393686 7c2f962718bf072af97ad505116cfaa8 -source: release/bash/bash-2.05b-17-src.tar.bz2 2037482 c71afc4cde07a18868d76f3a19b75c34 - -@ bc -sdesc: "The GNU numeric processing language and reverse polish calculator" -ldesc: "The bc package includes bc and dc. Bc is an arbitrary precision -numeric processing arithmetic language. Dc is an interactive -arbitrary precision stack based calculator, which can be used as a -text mode calculator." -category: Utils Math -requires: cygwin -version: 1.06-1 -install: release/bc/bc-1.06-1.tar.bz2 61985 39a826fe8e7c0fa44e5736a598b58de7 -source: release/bc/bc-1.06-1-src.tar.bz2 229290 058c24f9fd1c941def08feb7d6ca1436 - -@ binutils -sdesc: "The GNU assembler, linker and binary utilities" -ldesc: "Binutils is a collection of binary utilities, including ar (for -creating, modifying and extracting from archives), as (a family of GNU -assemblers), gprof (for displaying call graph profile data), ld (the -GNU linker), nm (for listing symbols from object files), objcopy (for -copying and translating object files), objdump (for displaying -information from object files), ranlib (for generating an index for -the contents of an archive), size (for listing the section sizes of an -object or archive file), strings (for listing printable strings from -files), strip (for discarding symbols), and addr2line (for converting -addresses to file and line)." -category: Devel -requires: cygwin ash -version: 20040725-2 -install: release/binutils/binutils-20040725-2.tar.bz2 4266533 759d426f6f314f29952e8487f0ee6f8f -source: release/binutils/binutils-20040725-2-src.tar.bz2 11382258 26c8c08b674b0e3f7ae986d95fcd075f -[prev] -version: 20040312-1 -install: release/binutils/binutils-20040312-1.tar.bz2 4204319 73b3b07eb1fc5885993aa34a353276a0 -source: release/binutils/binutils-20040312-1-src.tar.bz2 11091476 61fe77a5aa9a09beec99b4db155fe799 - -@ bison -sdesc: "A parser generator that is compatible with YACC" -ldesc: "A parser generator that is compatible with YACC. -Bison is a general-purpose parser generator that converts a -grammar description for an LALR(1) context-free grammar into a C -program to parse that grammar. Once you are proficient with Bison, you -may use it to develop a wide range of language parsers, from those used -in simple desk calculators to complex programming languages. - -Bison is upward compatible with Yacc: all properly-written Yacc -grammars ought to work with Bison with no change. Anyone familiar with -Yacc should be able to use Bison with little trouble." -category: Devel -requires: cygwin libintl2 libiconv2 m4 -version: 20030307-1 -install: release/bison/bison-20030307-1.tar.bz2 244593 5ddf58f893b2cd34052a2a8c4da51fcd -source: release/bison/bison-20030307-1-src.tar.bz2 737599 26e47a01c6eaf0ae07ff59b6422116ac -[prev] -version: 1.875-1 -install: release/bison/bison-1.875-1.tar.bz2 233469 480c307fe532772941d40ffd0a5f0b29 -source: release/bison/bison-1.875-1-src.tar.bz2 833198 896d50b921f39642f123737490e0aae0 - -@ byacc -sdesc: "The Berkeley LALR parser generator" -ldesc: "The Berkeley LALR parser generator Yacc reads the grammar -specification in a file and generates an LR(1) parser for it. The parsers -consist of a set of LALR(1) parsing tables and a driver routine written -in the C programming language." -category: Devel -requires: cygwin -version: 1.9-1 -install: release/byacc/byacc-1.9-1.tar.bz2 27943 f6365f14c188348ced5e5c6b3ccdc26a -source: release/byacc/byacc-1.9-1-src.tar.bz2 65287 cb7b0f23ac279c36dfb249ec4f41cba6 - -@ bzip2 -sdesc: "A high-quality block-sorting file compressor - utilities" -ldesc: "bzip2 is a freely available, patent free, high-quality data -compressor. It typically compresses files to within 10% to 15% of the best -available techniques (the PPM family of statistical compressors), whilst being -around twice as fast at compression and six times faster at decompression." -category: Utils -requires: cygwin libbz2_1 _update-info-dir -version: 1.0.2-6 -install: release/bzip2/bzip2-1.0.2-6.tar.bz2 214151 a10e458be7f4f643c20aaee032f1609f -source: release/bzip2/bzip2-1.0.2-6-src.tar.bz2 684459 a77b0f5188442c548155631834d110b0 -[prev] -version: 1.0.2-5 -install: release/bzip2/bzip2-1.0.2-5.tar.bz2 223144 483f8e560681862478272be3217f88eb -source: release/bzip2/bzip2-1.0.2-5-src.tar.bz2 683957 e6350754bbaf2c77065c7b16c61845bd - -@ c-client -sdesc: "UW c-client library" -ldesc: "University of Washington c-client library and headers" -category: Devel -requires: openssl-devel uw-imap -version: 2002e-3 -install: release/uw-imap/c-client/c-client-2002e-3.tar.bz2 732916 3a9c9a07cc25bbc0c7cde57392cf78ec -source: release/uw-imap/uw-imap-2002e-3-src.tar.bz2 1028381 5cded01e5e3afd4ba03328ef6e00c4db -[prev] -version: 2002e-2 -install: release/uw-imap/c-client/c-client-2002e-2.tar.bz2 733288 2c6726f88681745a4bbf8536b11cbc6b -source: release/uw-imap/uw-imap-2002e-2-src.tar.bz2 1028313 17914f867956c4ff2d16f8c0c573cc22 - -@ c3270 -sdesc: "3270 Emulator (Curses)" -ldesc: "c3270 is a curses-based IBM 3270 terminal emulator. It can be used to -communicate with any IBM host that supports 3270-style connections over TELNET. -It can also communicate with hosts that use line-by-line ASCII mode to do -initial login negotiation before switching to full-screen 3270 mode. -c3270 emulates one of four models of an IBM 3278 or 3279 terminal. The -difference between the various models is the screen size. The emulation is -not quite complete; c3270 understands extended field orders but does not -implement some of the extended attributes (outlining, extended validation," -category: Net -requires: cygwin suite3270 libncurses7 -version: 3.2.20-1 -install: release/suite3270/c3270/c3270-3.2.20-1.tar.bz2 111017 132d4f15a4634ad93111a5417e295a72 -source: release/suite3270/suite3270-3.2.20-1-src.tar.bz2 1275892 71982441f2ca037189693628e3f330b2 - -@ cabextract -sdesc: "Program extracts Microsoft cabinet (.CAB) files" -ldesc: "Program extracts Microsoft cabinet (.CAB) files" -category: Archive -requires: cygwin -version: 0.6-2 -install: release/cabextract/cabextract-0.6-2.tar.bz2 31256 b898e68f6c07b6cd1427619a83273992 -source: release/cabextract/cabextract-0.6-2-src.tar.bz2 118602 10cf8544b5c605cf0d3b452dae322032 -[prev] -version: 0.6-1 -install: release/cabextract/cabextract-0.6-1.tar.bz2 31226 f220843700f2752365e482f731274f08 -source: release/cabextract/cabextract-0.6-1-src.tar.bz2 120606 2f2cabf6796a850e7fbafe5bf51b56c2 - -@ ccache -sdesc: "A C compiler cache for improving recompilation" -ldesc: "ccache is a compiler cache. It acts as a caching pre-processor to -C/C++ compilers, using the -E compiler switch and a hash to detect when -a compilation can be satisfied from cache. This often results in a 5 to -10 times speedup in common compilations." -category: Devel -requires: gcc -version: 2.2-1 -install: release/ccache/ccache-2.2-1.tar.bz2 25746 2fef0e51dbb88c6ff97d9402339a2b27 -source: release/ccache/ccache-2.2-1-src.tar.bz2 66895 8eb5846b2a99b8fad802179b987b0464 -[prev] -version: 1.9-1 -install: release/ccache/ccache-1.9-1.tar.bz2 19157 66651f4fbe83ce63897f9ac10d3e9b35 -source: release/ccache/ccache-1.9-1-src.tar.bz2 67662 ea21b4df9c5a62010a8a5ea08ce80460 - -@ ccdoc -sdesc: "Generates HTML interface documentation for C++ packages." -ldesc: "Javadoc inspired tool that automatically generates HTML web -documentation from C++ programs by parsing the source file headers. It -was designed to aid collaboration between package users and package -developers by documenting the interface." -category: Devel -requires: cygwin -version: 0.8.41-2 -install: release/ccdoc/ccdoc-0.8.41-2.tar.bz2 242164 d8ea04841fa69b8a6a3537fd1a0c0df3 -source: release/ccdoc/ccdoc-0.8.41-2-src.tar.bz2 1633387 291664254e2ce0f23d916edaa4c89193 - -@ ccrypt -sdesc: "A utility for encrypting and decrypting files and streams" -ldesc: "ccrypt is a utility for encrypting and decrypting files and -streams. It was designed as a replacement for the standard unix crypt -utility, which is notorious for using a very weak encryption -algorithm. ccrypt is based on the Rijndael cipher, which is the -U.S. government's chosen candidate for the Advanced Encryption -Standard (AES, see http://www.nist.gov/aes/). This cipher is believed -to provide very strong security. - -Unlike unix crypt, the algorithm provided by ccrypt is not symmetric, -i.e., one must specify whether to encrypt or decrypt. The most common -way to invoke ccrypt is via the commands ccencrypt and -ccdecrypt. There is also a ccat command for decrypting a file directly -to the terminal, thus reducing the likelihood of leaving temporary -plaintext files around. In addition, there is a compatibility mode for -decrypting legacy unix crypt files. An emacs mode is also supplied for -editing encrypted text files." -category: Utils -requires: cygwin -version: 1.7-1 -install: release/ccrypt/ccrypt-1.7-1.tar.bz2 70727 6400a533929e9f62f06ff7af23a871c1 -source: release/ccrypt/ccrypt-1.7-1-src.tar.bz2 222706 6dd5df1324bb25241f9604a3062f75fa - -@ cgoban -sdesc: "X11 Client to IGS and NNGS go servers, SGF editor, GUI for Gnu Go" -ldesc: "X11 Client to IGS and NNGS go servers, SGF editor, GUI for Gnu Go -cgoban is an X11 program related to the game of go. With -cgoban you can connect to the IGS and NNGS go servers to play online. -You can create and edit SGF (Smart Game Format) files. -You can play on your computer against Gnu Go or any other program -that communicates throught the Go Modem Protocol (GMP)." -category: Games X11 -requires: xorg-x11-base gnugo -version: 1.9.14-1 -install: release/X11/cgoban/cgoban-1.9.14-1.tar.bz2 196981 2806ae45ff7111eb46a6e9ee04efd85a -source: release/X11/cgoban/cgoban-1.9.14-1-src.tar.bz2 426527 4d4525ce85a26ba0a8e08934a6dad90b -[prev] -version: 1.9.12-1 -install: release/X11/cgoban/cgoban-1.9.12-1.tar.bz2 178804 3b65c36e8ab94dc7bffee41ca1e8327c -source: release/X11/cgoban/cgoban-1.9.12-1-src.tar.bz2 432762 620385d3fcb101b1abfd77468208f2e0 - -@ check -sdesc: "A unit test framework for C" -ldesc: "Check is a unit test framework for C. It features a simple -interface for defining unit tests, putting little in the way of the -developer. Tests are run in a separate address space, so Check can -catch both assertion failures and code errors that cause segmentation -faults or other signals. The output from unit tests can be used within -source code editors and IDEs. -More information at: http://check.sourceforge.net/" -category: Devel -requires: cygwin -version: 0.9.1-1 -install: release/check/check-0.9.1-1.tar.bz2 57357 4e046ba4c6f481f8241d24f80feef19a -source: release/check/check-0.9.1-1-src.tar.bz2 258287 78b89765c7a3db040907ade68ed03432 -[prev] -version: 0.8.4-1 -install: release/check/check-0.8.4-1.tar.bz2 70344 52155707ea1c471ff4ec950009174e59 -source: release/check/check-0.8.4-1-src.tar.bz2 96934 9a9180c6a8e78c2f357b4352c89e8cab - -@ chere -sdesc: "Cygwin Prompt Here context menus" -ldesc: "Shell script to manage shell here context menus for Cygwin" -category: Shells Utils System -requires: ash cygwin sh-utils cygutils bash textutils -version: 0.5-2 -install: release/chere/chere-0.5-2.tar.bz2 8255 d20c318e2d5197ddedd9c71e304b647e -[prev] -version: 0.4-1 -install: release/chere/chere-0.4-1.tar.bz2 5934 7db03042132b6382cc8d5321d22a4165 - -@ chkconfig -sdesc: "Runlevel/xinetd services editor" -ldesc: "chkconfig provides a simple command-line tool for -maintaining the /etc/rc[0-6].d directory hierarchy by relieving -system administrators of the task of directly manipulating -the numerous symbolic links in those directories." -category: System -requires: cygwin initscripts -version: 1.2.24h-1 -install: release/chkconfig/chkconfig-1.2.24h-1.tar.bz2 18340 6bf0db6620f129b1ddfc4d9a47064a78 -source: release/chkconfig/chkconfig-1.2.24h-1-src.tar.bz2 181914 eaa0f6dc721c44e970c2817e9dda3edd - -@ clamav -sdesc: "A GPL virus scanner" -ldesc: "Clam AntiVirus is a GPL anti-virus toolkit for UNIX, featuring: -* command-line scanner -* fast, multi-threaded daemon -* milter interface for sendmail (not applicable) -* database updater with support for digital signatures -* virus scanner C library -* on-access scanning (Linux and FreeBSD) -* detection of over 20000 viruses, worms and trojans -* built-in support for RAR (2.0), Zip, Gzip, Bzip2 -* built-in support for Mbox, Maildir and raw mail files - -More information at http://clamav.net/ - -This binary distribution was built without the Windows UI. -You might want to use clamavwin (python wxWindows) instead." -category: Utils -requires: curl cygwin gmp libbz2_1 minires openssl zlib -version: 0.80-2 -install: release/clamav/clamav-0.80-2.tar.bz2 2196528 2de565a95b7df8fc24372922688fce94 -source: release/clamav/clamav-0.80-2-src.tar.bz2 2953371 578fc389773a0e18e69f536d036cf6b9 - -@ clear -sdesc: "Clears the screen" -category: Utils -requires: cygwin -version: 1.0-1 -install: release/clear/clear-1.0-1.tar.bz2 1066 39c3f8f258e0992dc10a169f162fc126 -source: release/clear/clear-1.0-1-src.tar.bz2 306 b9aac7a0eaf40c3761a0954f789db86e - -@ clisp -sdesc: "An ANSI Common Lisp implementation" -ldesc: " -Common Lisp is a high-level, general-purpose programming language. -GNU CLISP is a Common Lisp implementation by Bruno Haible of Karlsruhe -University and Michael Stoll of Munich University, both in Germany. -It mostly supports the Lisp described in the ANSI Common Lisp standard. -It runs on microcomputers (Windows NT/2000/XP, Windows 95/98/ME) as well -as on Unix workstations (Linux, SVR4, Sun4, DEC Alpha OSF, HP-UX, BeOS, -NeXTstep, SGI, AIX and others) and needs only 2 MB of RAM. -It is Free Software and may be distributed under the terms of GNU GPL, -while it is possible to distribute commercial applications compiled -with GNU CLISP. -The user interface comes in German, English, French, Spanish, Dutch -and Russian. -GNU CLISP includes an interpreter, a compiler, a debugger, CLOS, -a foreign language interface, sockets, i18n, fast bignums and more. -An X11 interface is available through CLX, Garnet, CLUE/CLIO. -GNU CLISP runs Maxima, ACL2 and many other Common Lisp packages. - -More information at - , - , - and - . -Sources and selected binaries are available by anonymous ftp from - , - -and their mirrors. - -This binary distribution was built with the following modules: - syscalls regexp rawsock dirkey bindings/win32 berkeley-db pcre postgresql -" -category: Devel Interpreters Math Shells -version: 2.33.1-1 -install: release/clisp/clisp-2.33.1-1.tar.bz2 4694095 4a2ecf4be01c732042afacd3fa48c1f1 -source: release/clisp/clisp-2.33.1-1-src.tar.bz2 6093075 eb8940331e6a5f66e18b5d01399ac72f -[prev] -version: 2.33-1 -install: release/clisp/clisp-2.33-1.tar.bz2 4626406 4fb0fcf5be38c404cb43691adc1e370b -source: release/clisp/clisp-2.33-1-src.tar.bz2 6081458 5dbf3caee370bdb798f209a70049225d - -@ cmake -sdesc: "A cross platform build manger" -ldesc: "CMake is a cross platform build manager. It allows you to specify build -parameters for C and C++ programs in a cross platform manner. For cygwin -Makefiles will be generated. CMake is also capable of generating microsoft -project files, nmake, and borland makefiles. CMake can also perform system -inspection operations like finding installed libraries and header files." -category: Devel -requires: libncurses7 cygwin -version: 2.0.5-1 -install: release/cmake/cmake-2.0.5-1.tar.bz2 1959985 5a9615ef155535573bb05674be37306f -source: release/cmake/cmake-2.0.5-1-src.tar.bz2 1313187 94276ef83b788bc42991e71855618cf0 -[prev] -version: 1.8.3-1 -install: release/cmake/cmake-1.8.3-1.tar.bz2 1535340 9a6d23974d1015ea42c48698f0921d42 -source: release/cmake/cmake-1.8.3-1-src.tar.bz2 1202819 b227be295621512e7f380c0a50c6d1f5 - -@ cocom -sdesc: "Toolset to help creation of compilers and interpreters" -ldesc: "COCOM is a tool set intended to help creation of compilers, -cross-compilers, interpreters, and other language processors. The -distribution also contains an interpreter for the DINO language as -an example of the tool set usage. The tool set is aimed to use on -Unixes of different flavors." -category: Devel -requires: cygwin -version: 0.995-1 -install: release/cocom/cocom-0.995-1.tar.bz2 1180775 a401f1a33c8cbc211d40c86e3394851e -source: release/cocom/cocom-0.995-1-src.tar.bz2 3169822 396506f8254898112baf2148b0069cda - -@ compface -sdesc: "Conversion utilitities for face graphics" -ldesc: "The program (two programmes really - but they're just links to each -other) converts 48x48x1 images to and from a compressed format. The -uncompressed images are expected to contain 48x48/4 (576) hex digits. -All other characters and any `0's followed by `X' or `x' are ignored. -Usually the files are 48 lines of '0x%04X,0x%04X,0x%04X,'. The -compressed images contain some number of printable characters. Non -printable characters, including ' ' are ignored. The purpose of the -programme is to allow the inclusion of face images within mail headers -using the field name 'X-face: '. -The programmes make use of a library which can be used to allow the -compression and decompression algorithms to be used in other -programmes such as mail dispatchers and mail notification daemons." -category: Devel Mail Libs Utils -requires: cygwin -version: 1.4-5 -install: release/compface/compface-1.4-5.tar.bz2 15273 df9f3f71a57a865a4f32166faf447b3c -source: release/compface/compface-1.4-5-src.tar.bz2 33985 15623aaf150a76f5a27722650ee3b058 - -@ cpio -sdesc: "A program to manage archives of files" -category: Utils -requires: cygwin _update-info-dir -version: 2.5-3 -install: release/cpio/cpio-2.5-3.tar.bz2 71750 397c015a1fcd9af38faeb134084fee6f -source: release/cpio/cpio-2.5-3-src.tar.bz2 155991 464da2c01d0930a3af4aa4256fc32840 -[prev] -version: 2.5-1 -install: release/cpio/cpio-2.5-1.tar.bz2 32703 a515c5cd537122f30cd0c83d86f588eb -source: release/cpio/cpio-2.5-1-src.tar.bz2 155971 5d427093336f683635ae6b53da80b4ec - -@ cppunit -sdesc: "A C++ unit testing framework. It started its life as a port of JUnit to C++ by Michael Feathers." -ldesc: "CppUnit is a C++ unit testing framework. It started its life as a port of JUnit to C++ by Michael Feathers." -category: Devel Libs -requires: cygwin -version: 1.9.14-1 -install: release/cppunit/cppunit-1.9.14-1.tar.bz2 1620769 37f4888cd4ab7a931e7bf9bd17d4164f -source: release/cppunit/cppunit-1.9.14-1-src.tar.bz2 539685 4f4631081872dad9a7579c3586e391c5 - -@ cron -sdesc: "Management of regular background processing" -category: Admin -requires: ash cygwin -version: 3.0.1-13 -install: release/cron/cron-3.0.1-13.tar.bz2 45482 2729686839034b7c3c72ba130c4fb213 -source: release/cron/cron-3.0.1-13-src.tar.bz2 56909 470bd264a3d21a546542c89a533b305a -[prev] -version: 3.0.1-12 -install: release/cron/cron-3.0.1-12.tar.bz2 46256 eac0e3158b49144a600e832510140196 -source: release/cron/cron-3.0.1-12-src.tar.bz2 56663 f3587dfceb766f0f45e134e3b1d6f30d - -@ crypt -sdesc: "Encryption/Decryption utility and library" -category: Libs -requires: cygwin -version: 1.1-1 -install: release/crypt/crypt-1.1-1.tar.bz2 13181 7d7f1557a813840a537002ed593de194 -source: release/crypt/crypt-1.1-1-src.tar.bz2 4465 4c0fb83c8929fffd8b1bbfd1e5b2af6d -[prev] -version: 1.0-2 -install: release/crypt/crypt-1.0-2.tar.bz2 7755 c59920e8b9575e586f0401afc00ae6ff -source: release/crypt/crypt-1.0-2-src.tar.bz2 3484 0b96e0211d5833416095996b668eb68b - -@ ctags -sdesc: "A C programming language indexing and/or cross-reference tool" -ldesc: "Exuberant Ctags generates an index (or tag) file of language objects -found in source files for many popular programming languages. This index -makes it easy for text editors and other tools to locate the indexed -items. Exuberant Ctags improves on traditional ctags because of its -multilanguage support, its ability for the user to define new languages -searched by regular expressions, and its ability to generate emacs-style -TAGS files." -category: Devel -requires: cygwin -version: 5.5-4 -install: release/ctags/ctags-5.5-4.tar.bz2 112228 18e33b0ac8735c0295ba1778cd6b8c5d -source: release/ctags/ctags-5.5-4-src.tar.bz2 247597 e60ca08199d95a2e25b54d79c31e76bf -[prev] -version: 5.5-3 -install: release/ctags/ctags-5.5-3.tar.bz2 112188 0a77a2a0f2480b81775ac36d0db7540e -source: release/ctags/ctags-5.5-3-src.tar.bz2 247523 9f48c550da0a8278b5e35d4840ab3770 - -@ ctetris -sdesc: "Console mode tetris clone" -ldesc: "ctetris is a beautiful tetris clone, written in C using the ncurses library. -It works very fast and efficient, so it should be possible to play it even over a -slow remote terminal. With highscores. The author is Dominik Hackl. License: GPL" -category: Games -requires: libncurses7 cygwin -version: 0.30-1 -install: release/ctetris/ctetris-0.30-1.tar.bz2 17625 2f094704104de458221beb8e967f947f -source: release/ctetris/ctetris-0.30-1-src.tar.bz2 19462 d039e35a81a591558163722b6df5b36b -[prev] -version: 0.29-1 -install: release/ctetris/ctetris-0.29-1.tar.bz2 19702 8c885ab2c4fd2d1776d5315f980359e7 -source: release/ctetris/ctetris-0.29-1-src.tar.bz2 19595 058c4377d19356ed6f5a4906f974eca5 - -@ curl -sdesc: "A client that groks URLs" -ldesc: "Curl is a tool for transferring files with URL syntax, -supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE -and LDAP. Curl supports HTTPS certificates, HTTP POST, HTTP PUT, -FTP uploading, kerberos, HTTP form based upload, proxies, -cookies, user+password authentication, file transfer resume, -http proxy tunneling and a busload of other useful tricks." -category: Web Libs -requires: cygwin openssl -version: 7.11.1-1 -install: release/curl/curl-7.11.1-1.tar.bz2 502934 4c4a50574bfc50ae908c884ce9e5325d -source: release/curl/curl-7.11.1-1-src.tar.bz2 1154320 1d7ef0dcf3680d44d5c2ba381e91c120 -[prev] -version: 7.10.8-1 -install: release/curl/curl-7.10.8-1.tar.bz2 471217 8b176b36a50c2cbe0832e48976106245 -source: release/curl/curl-7.10.8-1-src.tar.bz2 1040377 44b98d01fd824372d38990099f43e903 - -@ curl-devel -sdesc: "(lib)cURL headers, static libraries, developer docs and samples" -ldesc: "curl-devel is the developer-oriented (non-run-time) parts -of the cURL package. It includes header files, static libraries, -example source code snippets, and the libcurl man pages." -category: Web Libs Devel -requires: cygwin openssl curl -version: 7.11.1-1 -install: release/curl/curl-devel/curl-devel-7.11.1-1.tar.bz2 173227 58af5f9042ff5334ff3c7a238900b771 -source: release/curl/curl-7.11.1-1-src.tar.bz2 1154320 1d7ef0dcf3680d44d5c2ba381e91c120 -[prev] -version: 7.10.8-1 -install: release/curl/curl-devel/curl-devel-7.10.8-1.tar.bz2 172714 f4e1bb855204a9e0fa584e9f7f582ad2 -source: release/curl/curl-7.10.8-1-src.tar.bz2 1040377 44b98d01fd824372d38990099f43e903 - -@ cvs -sdesc: "Concurrent Version System" -ldesc: "CVS is a version control -system which can record the history of your files (usually, -but not always, source code). CVS only stores the differences -between versions, instead of every version of every file -you've ever created. CVS also keeps a log of who, when and -why changes occurred, among other aspects. - -CVS is very helpful for managing releases and controlling -the concurrent editing of source files among multiple -authors. Instead of providing version control for a -collection of files in a single directory, CVS provides -version control for a hierarchical collection of -directories consisting of revision controlled files. - -These directories and files can then be combined together -to form a software release." -category: Devel -requires: ash cygwin libgdbm4 crypt textutils _update-info-dir -version: 1.11.17-1 -install: release/cvs/cvs-1.11.17-1.tar.bz2 586080 646638fb4267e9a330d4accdcb02f146 -source: release/cvs/cvs-1.11.17-1-src.tar.bz2 2371920 cb09d7f62958bbd384d8b1179adb4cd8 -[prev] -version: 1.11.6-3 -install: release/cvs/cvs-1.11.6-3.tar.bz2 584683 781d8adbc83bbf2f5c1adbc8c54f05a0 -source: release/cvs/cvs-1.11.6-3-src.tar.bz2 2211039 b7983e09a9ba5b8186adcaa909f7e4ac - -@ cygipc -sdesc: "IPC support for cygwin" -ldesc: "CygIPC provides a library, headers, and a daemon that can -be used to provide IPC services for cygwin. It is, however, slated -to become obsolete once the cygserver is complete (cygserver is a -similar library and daemon that will be a built-in part of the main -cygwin DLL)." -category: Devel Libs -requires: cygwin libpopt0 -version: 2.03-2 -install: release/cygipc/cygipc-2.03-2.tar.bz2 374271 38e9b514fd9c0946a8d019d8a4c9b031 -source: release/cygipc/cygipc-2.03-2-src.tar.bz2 81505 71ff16929a3128a1c9a63c657deb380b -[prev] -version: 2.02-1 -install: release/cygipc/cygipc-2.02-1.tar.bz2 358773 6340582cd657fb3beabef20ee47c5f78 -source: release/cygipc/cygipc-2.02-1-src.tar.bz2 75792 d08c0fa695264c881fd6c7fe16a10226 - -@ cygrunsrv -sdesc: "NT/W2K service initiator" -category: Admin -requires: cygwin -version: 1.0-1 -install: release/cygrunsrv/cygrunsrv-1.0-1.tar.bz2 19027 98df8622513a5a666b8b34584bc95da3 -source: release/cygrunsrv/cygrunsrv-1.0-1-src.tar.bz2 58688 d30388db2135c2a91bc4cc51bd7c8486 -[prev] -version: 0.99-1 -install: release/cygrunsrv/cygrunsrv-0.99-1.tar.bz2 18945 cbeb462073b3c896bada015b5f2bca4d -source: release/cygrunsrv/cygrunsrv-0.99-1-src.tar.bz2 58643 57268d2b4146103ee7c0eb9d576a199b - -@ cygutils -sdesc: "A collection of simple utilities" -ldesc: "This package contains a collection of simple (single source -file) utilities, including: ascii, banner, dump (no, not the ext2 -backup utility; it's a hexdumper), DOS/UNIX line ending converters, -Windows clipboard manipulation programs, and many more..." -category: Utils -requires: cygwin libpopt0 libintl2 libiconv2 -version: 1.2.5-1 -install: release/cygutils/cygutils-1.2.5-1.tar.bz2 165150 33983256dfd7982d265c9e0411c67867 -source: release/cygutils/cygutils-1.2.5-1-src.tar.bz2 224115 7bc1316f3faef76dc8c0fc44590c0fb5 -[prev] -version: 1.2.4-1 -install: release/cygutils/cygutils-1.2.4-1.tar.bz2 164096 2cf0842e06aa55d4207849921c255a33 -source: release/cygutils/cygutils-1.2.4-1-src.tar.bz2 271971 44c5dbbe2255e8f48520dbc789fa7219 - -@ cygwin -sdesc: "The UNIX emulation engine" -category: Base -requires: libintl2 base-passwd _update-info-dir -version: 1.5.12-1 -install: release/cygwin/cygwin-1.5.12-1.tar.bz2 1187032 d006baaf7bc1d24a0d6fa1a265033182 -source: release/cygwin/cygwin-1.5.12-1-src.tar.bz2 8197231 35ff3344f8fe759e5ed9344f5f60a848 -[prev] -version: 1.5.11-1 -install: release/cygwin/cygwin-1.5.11-1.tar.bz2 1179700 475f1a96b78e9ea129947debbcca2220 -source: release/cygwin/cygwin-1.5.11-1-src.tar.bz2 8608503 964440eda28ca2c09ec1f5c1f1d032aa - -@ cygwin-doc -sdesc: "Cygwin-specific documentation, including man pages and User's Guide" -ldesc: "The man pages for Cygwin, including the intro pages, -cygwin utilities, and api reference. Also the Cygwin FAQ and -User's Guide in HTML and text formats. -" -category: Doc Base -requires: cygwin fileutils man texinfo cygutils -version: 1.3-7 -install: release/cygwin-doc/cygwin-doc-1.3-7.tar.bz2 870735 0bbda3fbd394a847b124e2ec5758cca5 -source: release/cygwin-doc/cygwin-doc-1.3-7-src.tar.bz2 194851 7e47f1d44c0266de06b0c94114f49edd -[prev] -version: 1.3-6 -install: release/cygwin-doc/cygwin-doc-1.3-6.tar.bz2 792837 936164e613151b559944b1181a870950 -source: release/cygwin-doc/cygwin-doc-1.3-6-src.tar.bz2 206985 58794dbf84fb8cc353fb5676057f5ba2 - -@ cygwin-x-doc -sdesc: "Cygwin/X-specific documentation" -ldesc: "Cygwin/X-specific documentation, including FAQ, User's Guide, -and Contributor's Guide in HTML, PS.GZ, PDF, TXT, and RTF formats." -category: X11 Doc -requires: cygwin -version: 1.0.4-1 -install: release/X11/cygwin-x-doc/cygwin-x-doc-1.0.4-1.tar.bz2 1511797 9edf458978f97f7037557aae53d40909 -source: release/X11/cygwin-x-doc/cygwin-x-doc-1.0.4-1-src.tar.bz2 586231 ab43c17020d8ed33edf1072879c38c2f - -@ cyrus-sasl -sdesc: "The Cyrus SASL API implementation." -ldesc: "The Cyrus SASL library allows for client/server authentication -in conformance with RFC 2222." -category: Utils -requires: libsasl2 cygwin -version: 2.1.19-3 -install: release/cyrus-sasl/cyrus-sasl-2.1.19-3.tar.bz2 258419 ba10a12689601363f22072ad63b054b2 -source: release/cyrus-sasl/cyrus-sasl-2.1.19-3-src.tar.bz2 1909308 ff88792c249700e31208e37581c22ba4 - -@ d -sdesc: "The Directory Lister" -ldesc: "The Directory Lister is a optimized version of ls verbose mode -with colorized output, space optimization, and many other features." -category: Utils -requires: cygwin -version: 1.2.0-1 -install: release/d/d-1.2.0-1.tar.bz2 149771 ba8a54ea945be1b6a01de85317acf38e -source: release/d/d-1.2.0-1-src.tar.bz2 157077 03049c73eb42ed5a79dd4d321f3fc87e - -@ db2 -sdesc: "The Sleepycat Berkeley DB Library v2" -ldesc: "High performance database library supporting B+trees, Hash -trees, transactional capabilities and more. More details are available -at sleepycat.com" -category: Database -requires: cygwin libdb2 -version: 2.7.7-4 -install: release/db/db2/db-2.7.7-4.tar.bz2 279298 d043199092c60702f3d8aa3684897c1f -source: release/db/db2/db-2.7.7-4-src.tar.bz2 1128411 6ab6404104aa246f17378660a296af51 -[prev] -version: 2.7.7-3 -install: release/db/db2/db-2.7.7-3.tar.bz2 278729 3ffbceb76671e3e132dd4fccaff485c0 -source: release/db/db2/db-2.7.7-3-src.tar.bz2 1128372 d175c054134d479e5d20f8a5c23b76d9 - -@ db3.1 -sdesc: "The Sleepycat Berkeley DB Library v3.1" -ldesc: "High performance database library supporting B+trees, Hash -trees, transactional capabilities and more. More details are available -at sleepycat.com" -category: Database -requires: cygwin libdb3.1 -version: 3.1.17-2 -install: release/db/db3.1/db-3.1.17-2.tar.bz2 441831 ca9aa1d1c5b669e151da908d41570f2a -source: release/db/db3.1/db-3.1.17-2-src.tar.bz2 2183842 276f3d567d69ac55c8b7783c386cec5b - -@ db4.1 -sdesc: "The Sleepycat Berkeley DB Library v4.1" -ldesc: "High performance database library supporting B+trees, Hash -trees, transactional capabilities and more. More details are available -at sleepycat.com" -category: Database -requires: cygwin libdb4.1 -version: 4.1.25-1 -install: release/db/db4.1/db-4.1.25-1.tar.bz2 596347 b3f885e07d47bb60a74d0b79f1fb66f7 -source: release/db/db4.1/db-4.1.25-1-src.tar.bz2 3309745 596cdeb14f99c5312fceddf230ca9471 - -@ db4.2 -sdesc: "The Sleepycat Berkeley DB Library v4.2" -ldesc: "High performance database library supporting B+trees, Hash -trees, transactional capabilities and more. More details are available -at sleepycat.com" -category: Database -requires: cygwin libdb4.2 -version: 4.2.52-1 -install: release/db/db4.2/db-4.2.52-1.tar.bz2 918328 82b914c8863ecbffcf7ff8a7ab55e29d -source: release/db/db4.2/db-4.2.52-1-src.tar.bz2 4102202 b13a0aac7df2a223d351583f86b31e1f - -@ ddd -sdesc: "Ddd" -ldesc: "GNU DDD is a graphical front-end for command-line debuggers -such as GDB, DBX, WDB, Ladebug, JDB, XDB, the Perl debugger, or the -Python debugger. Besides ``usual'' front-end features such as viewing -source texts, DDD has become famous through its interactive graphical -data display, where data structures are displayed as graphs." -category: X11 Devel -requires: cygipc cygwin expat lesstif libfontconfig1 libfreetype26 libncurses7 xorg-x11-bin-dlls zlib _update-info-dir -version: 3.3.9-1 -install: release/X11/ddd/ddd-3.3.9-1.tar.bz2 1530488 6f5d602df0888ce1d0f5c7d914470bae -source: release/X11/ddd/ddd-3.3.9-1-src.tar.bz2 7027964 1b7fc8e5fe3b86b7897d8ae73a4c46e3 - -@ dejagnu -sdesc: "Framework for running test suites on software tools" -category: Devel -requires: expect -version: 20021217-2 -install: release/dejagnu/dejagnu-20021217-2.tar.bz2 100581 8bf6f42b2452141f714fbb69c5911827 -source: release/dejagnu/dejagnu-20021217-2-src.tar.bz2 1344782 c38a00694685a6cd855a2fd6827ab051 -[prev] -version: 20021217-1 -install: release/dejagnu/dejagnu-20021217-1.tar.bz2 100510 4469c931bbe21da40eb1ea6f041d5908 -source: release/dejagnu/dejagnu-20021217-1-src.tar.bz2 1332493 9c907f8b658f4f5cfc50a2189c2c4d38 - -@ desktop-file-utils -sdesc: "Utilities for manipulating desktop files" -ldesc: "Utilities for manipulating desktop files. - -desktop-file-validate: validates a desktop file and prints - warnings/errors about spec violations. -desktop-file-install: installs a desktop file to the applications - directory, optionally munging it a bit in transit. -desktop-menu-tool: loads .vfolder-info and .menu files and does stuff - with them" -category: Utils -requires: cygwin glib2-runtime libiconv2 libintl3 libpopt0 -version: 0.10-1 -install: release/GNOME/desktop-file-utils/desktop-file-utils-0.10-1.tar.bz2 50938 a82382378c6c95a414e3d0c0cf0ded4b -source: release/GNOME/desktop-file-utils/desktop-file-utils-0.10-1-src.tar.bz2 255524 fe0d01ddeb12420e6884c8198b706a90 -[prev] -version: 0.8-1 -install: release/GNOME/desktop-file-utils/desktop-file-utils-0.8-1.tar.bz2 91219 4562f189af58e204f06d9e1ffbe4a983 -source: release/GNOME/desktop-file-utils/desktop-file-utils-0.8-1-src.tar.bz2 428742 899f4a345d0e2c7abc4f3c0e3ce0258b - -@ diffstat -sdesc: "Generate statistics on diff output." -ldesc: "Reads the output of diff and displays a histogram of the -insertions, deletions, and modifications per-file. It is useful for -reviewing large, complex patch files." -category: Devel Utils -requires: cygwin -version: 1.34-1 -install: release/diffstat/diffstat-1.34-1.tar.bz2 12358 f5f27a32562fb7ef4ff570c909b99911 -source: release/diffstat/diffstat-1.34-1-src.tar.bz2 64564 5f1938ca2acb5199b6b5fb83f1b88c3e - -@ diffutils -sdesc: "A GNU collection of diff utilities" -ldesc: "Diffutils includes four utilities: diff, cmp, diff3 and sdiff. Diff -compares two files and shows the differences, line by line. The cmp -command shows the offset and line numbers where two files differ, or -cmp can show the characters that differ between the two files. The -diff3 command shows the differences between three files. Diff3 can be -used when two people have made independent changes to a common -original; diff3 can produce a merged file that contains both sets of -changes and warnings about conflicts. The sdiff command can be used -to merge two files interactively." -category: Base -requires: ash cygwin libintl2 libiconv2 -version: 2.8.7-1 -install: release/diffutils/diffutils-2.8.7-1.tar.bz2 242417 355e4897a75ae7704c264820b6ff74d4 -source: release/diffutils/diffutils-2.8.7-1-src.tar.bz2 771755 7081c8e7308c35dadfe0175a4043073c - -@ distcc -sdesc: "A fast, free, distributed C/C++ compiler" -ldesc: "A program to distribute builds of C, C++, Objective C or -Objective C++ code across several machines on a network" -category: Devel -requires: cygwin gcc popt -version: 2.16-1 -install: release/distcc/distcc-2.16-1.tar.bz2 96349 e36c477bf80f5f1643abb2ed07678101 -source: release/distcc/distcc-2.16-1-src.tar.bz2 343887 4045bd05b0098d7335af3a836e68b2df -[prev] -version: 2.14-1 -install: release/distcc/distcc-2.14-1.tar.bz2 96943 d2141f48b431fac3c2095afc0e8eded4 -source: release/distcc/distcc-2.14-1-src.tar.bz2 347174 9bac89ab1e1c463701bb56df548bdd00 - -@ docbook-xml42 -sdesc: "DocBook XML DTD 4.2" -category: Doc Text -requires: libxml2 -version: 4.2-3 -install: release/docbook-xml42/docbook-xml42-4.2-3.tar.bz2 51252 6053fac9936959c2132d1f60662e9c49 -source: release/docbook-xml42/docbook-xml42-4.2-3-src.tar.bz2 119001 c443933657226aacfd8c05082db86f0f -[prev] -version: 4.2-2 -install: release/docbook-xml42/docbook-xml42-4.2-2.tar.bz2 51107 38b1ca857c3d81d10eec3c7c43cb64b9 -source: release/docbook-xml42/docbook-xml42-4.2-2-src.tar.bz2 117689 32bca84060fc4bd81daf096f69e33f11 - -@ docbook-xsl -sdesc: "XSL stylesheets for the DocBook XML DTD" -category: Doc Text -requires: libxml2 -version: 1.67.0-1 -install: release/docbook-xsl/docbook-xsl-1.67.0-1.tar.bz2 706429 d9fc62c4bbbe05d93dcecc0dd0c80e16 -source: release/docbook-xsl/docbook-xsl-1.67.0-1-src.tar.bz2 1586375 e126f5a63c9e2437ad233ec025c0b7cc -[prev] -version: 1.66.1-2 -install: release/docbook-xsl/docbook-xsl-1.66.1-2.tar.bz2 666566 57b20015890256840c9083bc4aceb832 -source: release/docbook-xsl/docbook-xsl-1.66.1-2-src.tar.bz2 1589200 e0cbb3333076680f4776932dc1236305 - -@ doxygen -sdesc: "A documentation system for C++, C, Java, IDL (Corba, Microsoft, and KDE-DCOP flavors) and to some extent PHP" -ldesc: "Doxygen is a documentation system for C++, C, Java, IDL (Corba, Microsoft, and KDE-DCOP flavors) and to some extent PHP. " -category: Devel -requires: cygwin libpng12 -version: 1.2.18-1 -install: release/doxygen/doxygen-1.2.18-1.tar.bz2 2369189 dc42885952f741682079aac30a4a1ccb -source: release/doxygen/doxygen-1.2.18-1-src.tar.bz2 1482665 8f097c6bfbc273187f301d2fabe1c0be - -@ dpkg -sdesc: "A package management system." -ldesc: "The dpkg package management system. This is NOT integrated with -setup.exe, and is merely packaged to allow the use of it's tools for cygwin -package maintainers." -category: Devel -requires: perl cygwin libintl2 -version: 1.10.4-2 -install: release/dpkg/dpkg-1.10.4-2.tar.bz2 448239 c11b5565d8b5738a8e5dfc4c48171208 -source: release/dpkg/dpkg-1.10.4-2-src.tar.bz2 1100707 14b08e58ac2717755838bc31f9d15b81 - -@ e2fsimage -sdesc: "Utility for creating ext2 filesystem images." -ldesc: "e2fsimage enables the user to create and populate an ext2 filesystem image - as a copy from an existing directory tree. It supports regular files, - directories, soft links, hard links, and block/char special devices." -category: Devel -requires: cygwin e2fsprogs -version: 0.2.0-1 -install: release/e2fsimage/e2fsimage-0.2.0-1.tar.bz2 32752 073b6d81715c8d68f18384a91d32488a -source: release/e2fsimage/e2fsimage-0.2.0-1-src.tar.bz2 25068 40cde54dbc5318b874d005bade2f3c89 - -@ e2fsprogs -sdesc: "Ext2 filesystem utilities" -ldesc: "The Ext2 Filesystem Utilities (e2fsprogs) contain all of the standard -utilities for creating, fixing, configuring, and debugging ext2 -filesystems." -category: Devel -requires: cygwin libiconv2 libintl3 -version: 1.35-2 -install: release/e2fsprogs/e2fsprogs-1.35-2.tar.bz2 559817 0be369fb47a02085a9d773b11a731c6a -source: release/e2fsprogs/e2fsprogs-1.35-2-src.tar.bz2 3175409 f45e550b297091eb0748bbb90c50c7e5 -[prev] -version: 1.35-1 -install: release/e2fsprogs/e2fsprogs-1.35-1.tar.bz2 559203 1df01025007a34c8461f4151b6c8e69a -source: release/e2fsprogs/e2fsprogs-1.35-1-src.tar.bz2 3174124 44eb8721a5f2fe7e7978bfcc0bce67dd - -@ ed -sdesc: "The GNU version of the original UNIX line editor" -ldesc: "The GNU version of the original UNIX line editor. -ed is a line-oriented text editor. It is used to -create, display, modify and otherwise manipulate text -files. - -red is a restricted ed: it can only edit files in the -current directory and cannot execute shell commands." -category: Editors -requires: cygwin -version: 0.2-1 -install: release/ed/ed-0.2-1.tar.bz2 42478 0035fe16d24a57ee3049b60f5a11a10e -source: release/ed/ed-0.2-1-src.tar.bz2 157726 6976722e2cef15d088dcd45ea00756bb - -@ editrights -sdesc: "Alter user rights and privileges" -category: Base -requires: cygwin -version: 1.01-1 -install: release/editrights/editrights-1.01-1.tar.bz2 28452 8ddc4d5f85b214aa80cb4ddac978b5f3 -source: release/editrights/editrights-1.01-1-src.tar.bz2 15867 7c0b18022cd30feecf4db1cfb0e0597b - -@ emacs -sdesc: "The extensible, customizable, self-documenting real-time display editor" -ldesc: "Emacs is a powerful, customizable, self-documenting, modeless text -editor. Emacs contains special code editing features, a scripting -language (elisp), and the capability to read mail, news and more without -leaving the editor. This package supplies everything needed for a non-X11 -emacs." -category: Editors -requires: ctags libncurses7 terminfo cygwin -version: 21.2-13 -install: release/emacs/emacs-21.2-13.tar.bz2 8333565 fde7edf7aa64b6493ceb8e93863bd4d1 -source: release/emacs/emacs-21.2-13-src.tar.bz2 20411629 4e00011bf356b6925d4c4e42e47e1542 -[prev] -version: 21.2-12 -install: release/emacs/emacs-21.2-12.tar.bz2 8285415 602d0c29990e5e9e20d3de41dada94f7 -source: release/emacs/emacs-21.2-12-src.tar.bz2 20415978 c014ac088e0b81cc00dadb19e285ab95 -[test] -version: 21.3.50-2 -install: release/emacs/emacs-21.3.50-2.tar.bz2 11277192 015f5f9ea851fb508a0a43d8e2a6ba5a -source: release/emacs/emacs-21.3.50-2-src.tar.bz2 21021077 d0ca45655eea10017ce7f1805153e343 - -@ emacs-X11 -sdesc: "X11 binaries for Emacs." -ldesc: "This package contains the X11 binaries for emacs. Install -it if you want to run emacs using the X window system for -display. The binaries also can be used in non-X11 mode by adding --nw to the command line switches." -category: Editors -requires: emacs xorg-x11-bin libjpeg62 libpng12 libtiff4 libungif Xaw3d -version: 21.2-13 -install: release/emacs/emacs-X11/emacs-X11-21.2-13.tar.bz2 1799247 dcf53c7c8f94b75ced68bc09a9a00a42 -[prev] -version: 21.2-12 -install: release/emacs/emacs-X11/emacs-X11-21.2-12.tar.bz2 1937729 c8bbed26e883abcbbdcacab9441846e2 -[test] -version: 21.3.50-2 -install: release/emacs/emacs-X11/emacs-X11-21.3.50-2.tar.bz2 1712434 214eba1f510602f7b8d868c8ac68e5fe - -@ emacs-el -sdesc: "LISP source code for Emacs." -ldesc: "This package contains the LISP source code for the various -emacs addons. Install it if you want to personalize built-in emacs -functionality in some way on your machine." -category: Editors -requires: emacs -version: 21.2-13 -install: release/emacs/emacs-el/emacs-el-21.2-13.tar.bz2 4578190 46906d0637507f13167e2ce11e305f68 -[prev] -version: 21.2-12 -install: release/emacs/emacs-el/emacs-el-21.2-12.tar.bz2 4577068 bbf3c4db66f18299197c83974b2743a0 -[test] -version: 21.3.50-2 -install: release/emacs/emacs-el/emacs-el-21.3.50-2.tar.bz2 6051681 bc5754bf8997af53fa83d54511d55cdc - -@ emacs-leim -sdesc: "LEIM LISP files for Emacs." -ldesc: "This package contains emacs LISP code for input methods for -internationalization." -category: Editors -requires: emacs -[test] -version: 21.3.50-2 -install: release/emacs/emacs-leim/emacs-leim-21.3.50-2.tar.bz2 3585552 0687f9c2532928c57183a694bda3e84c - -@ email -sdesc: "Command line sending of email with attachments, optional GnuPG" -ldesc: "Command line sending of email, optionally with GnuPG encryption. -Email is a simple command-line program to send emails. It can be configured -to use either your sendmail installation or directly via SMTP. -It supports binary attachments, and a simple text based address book, with groups. -Also, if GnuPG is installed, it can digitally sign and encrypt outgoing emails." -category: Mail -requires: cygwin -version: 2.3.0-2 -install: release/email/email-2.3.0-2.tar.bz2 59627 f4ce0a861ed19e6c75ce50e28b24e6de -source: release/email/email-2.3.0-2-src.tar.bz2 148555 8ef16b5bd24f5adee14ee7f423ca37b3 - -@ enscript -sdesc: "Converts ASCII files to PostScript" -ldesc: "GNU enscript is a drop-in replacement for the enscript -program. Enscript converts ASCII files to PostScript and stores -generated output to a file or sends it directly to the printer. -Enscript's default output media (paper size) is A4. -Enscript supports language sensitive code highlighting. Highlighting -is implemented by a special `states' program which processes the input -files and annotates them with enscript's special escapes. The states -definition file `enscript.st' is a machine independent ASCII file and -it can be updated without re-compilation of the enscript program. The -most recent version of this file can be downloaded from the GNU -enscript WWW home page: ." -category: Text -requires: cygwin cygutils perl libintl2 libiconv2 -version: 1.6.3-3 -install: release/enscript/enscript-1.6.3-3.tar.bz2 366741 cfe66c902980afdbbccfbe330fa75588 -source: release/enscript/enscript-1.6.3-3-src.tar.bz2 1010638 7bae908e9adcb03b333bfb8464671de0 -[prev] -version: 1.6.3-2 -install: release/enscript/enscript-1.6.3-2.tar.bz2 371168 39364a8ac4e8e3c482bde503353ae876 -source: release/enscript/enscript-1.6.3-2-src.tar.bz2 824390 a443a83d63ff0ff967415ce7070dbad0 - -@ esound -sdesc: "Enlightened Sound Daemon (executables)" -ldesc: "EsounD mixes multiple digitized audio streams and samples -together for playback by a single audio device. It also allows -monitoring of mixed output, and recording. Network connections to the -daemon are supported as well." -category: Utils -requires: cygwin libaudiofile0 libesound0 -version: 0.2.35-1 -install: release/esound/esound-0.2.35-1.tar.bz2 125137 a764a0a27e862ab1b619860cb3291844 -source: release/esound/esound-0.2.35-1-src.tar.bz2 551886 4706bb5b1b4977b9a6db809f2962ca92 -[prev] -version: 0.2.34-1 -install: release/esound/esound-0.2.34-1.tar.bz2 123282 766a700c988ce8eb66eb33323b55fb0c -source: release/esound/esound-0.2.34-1-src.tar.bz2 568314 68323f4bccb1f7ac94a4727a78012c80 - -@ exif -sdesc: "Command-line utility to show EXIF information hidden in JPEG files" -ldesc: "exif is a small command-line utility to show EXIF -information hidden in JPEG files. It was written to -demonstrate the power of libexif." -category: Graphics -requires: cygwin libexif libpopt0 libiconv2 -version: 0.6.9-1 -install: release/exif/exif-0.6.9-1.tar.bz2 30547 4f0acad05c8482875a0049fe8ce5c212 -source: release/exif/exif-0.6.9-1-src.tar.bz2 377708 0ca8b04458ff5128a088e21d636475c3 - -@ exim -sdesc: "A Mail Transfer Agent." -ldesc: "Mail Transfer Agent with sendmail like command line -arguments and a single configuration file. -Features: flexible retry algorithms, header & envelope rewriting, -multiple deliveries down single connection or multiple deliveries in -parallel, regular expressions in configuration parameters, file -lookups, supports sender and/or receiver verification, selective -relaying, virtual domains and built-in mail filtering. - -See www.exim.org. -This port is compiled with tls/ssl and openldap support." -category: Mail -requires: crypt cygwin fileutils libgdbm4 libiconv2 libopenldap2_2_7 minires openssl sed sh-utils -version: 4.43-1 -install: release/exim/exim-4.43-1.tar.bz2 414816 0c840eb9c826b8e54d04fd5b978708f6 -source: release/exim/exim-4.43-1-src.tar.bz2 1447105 bfd79638ebec52a9df8e0660b136ba3b -[prev] -version: 4.41-1 -install: release/exim/exim-4.41-1.tar.bz2 403520 98e26b032c44b1877efc4ba3679ab1a1 -source: release/exim/exim-4.41-1-src.tar.bz2 1387161 2cf725b35b521a0ad202583e1db829fa - -@ expat -sdesc: "XML parser library written in C" -ldesc: "Expat is an XML parser library written in C. -It is a stream-oriented parser in which an application -registers handlers for things the parser might find in -the XML document (like start tags). -More details are available at http://www.libexpat.org/" -category: Doc Libs Text Devel Interpreters -requires: cygwin -version: 1.95.8-1 -install: release/expat/expat-1.95.8-1.tar.bz2 168761 94ea346bf96a688c8b83cb69b28f9fa7 -source: release/expat/expat-1.95.8-1-src.tar.bz2 517049 e2b120da23fdc7272af88555b5e6c760 -[prev] -version: 1.95.7-1 -install: release/expat/expat-1.95.7-1.tar.bz2 121515 ec93084bf74c63715c9b1736db9b6571 -source: release/expat/expat-1.95.7-1-src.tar.bz2 302837 0871839c9b1a2a8f3feadc53459d746e - -@ expect -sdesc: "A program that 'talks' to other programs" -category: Interpreters -requires: cygwin tcltk -version: 20030128-1 -install: release/expect/expect-20030128-1.tar.bz2 385511 c0725bb6859ef2c138b9c914cd8692c2 -source: release/expect/expect-20030128-1-src.tar.bz2 7473061 8528a537859343c424d6b230db38267c -[prev] -version: 20021218-1 -install: release/expect/expect-20021218-1.tar.bz2 353834 8fc43e5c3dfc736087b70cf6576f6831 -source: release/expect/expect-20021218-1-src.tar.bz2 7922295 deaf20dd675b81f3dccace7bfa39b236 - -@ fetchmail -sdesc: "Remote mail retrieval and forwarding utility" -ldesc: "Fetchmail is a remote mail retrieval and forwarding utility intended -for use over on-demand TCP/IP links, like SLIP or PPP connections. -Fetchmail supports every remote-mail protocol currently in use on the -Internet (POP2, POP3, RPOP, APOP, KPOP, all IMAPs, ESMTP ETRN, IPv6, -and IPSEC) for retrieval. Then Fetchmail forwards the mail through -SMTP so you can read it through your favorite mail client." -category: Mail -requires: ash cygwin libintl2 openssl -version: 6.2.5-2 -install: release/fetchmail/fetchmail-6.2.5-2.tar.bz2 437646 d5c6f3f9bcc69b8155a69affc6a69c84 -source: release/fetchmail/fetchmail-6.2.5-2-src.tar.bz2 866009 3d40ca0e1ace3d2e1babe12071cd2bb0 -[prev] -version: 6.2.5-1 -install: release/fetchmail/fetchmail-6.2.5-1.tar.bz2 438468 d67d0e1ce512a2cda39ad238c6061d9c -source: release/fetchmail/fetchmail-6.2.5-1-src.tar.bz2 867723 c52e4e40125510575bfe01c4f435eace - -@ figlet -sdesc: "Program to create large letters on text screen" -ldesc: "FIGlet is a program that creates large -characters out of ordinary screen characters. -FIGlet can create characters in many different -styles and can kern and smush these characters -together in various ways. FIGlet output is -generally reminiscent of the sort of signatures -many people like to put at the end of e-mail and -UseNet messages." -category: Text -requires: cygwin -version: 2.2-1 -install: release/figlet/figlet-2.2-1.tar.bz2 124317 b83a7430978e3c143841e07b33281159 -source: release/figlet/figlet-2.2-1-src.tar.bz2 138625 9b4d8ad6b62267549333e89a1da258e0 - -@ file -sdesc: "Determines file type using 'magic' numbers" -category: Utils -requires: cygwin zlib -version: 4.10-1 -install: release/file/file-4.10-1.tar.bz2 226262 af9ed072d351f7b7d1375e8cf7712365 -source: release/file/file-4.10-1-src.tar.bz2 392423 ea49df5a916baa6f4d69ce21a8ff3af8 -[prev] -version: 4.09-1 -install: release/file/file-4.09-1.tar.bz2 227722 0283b4126c2c2a1f47610d16527b857f -source: release/file/file-4.09-1-src.tar.bz2 306389 1e0654138e57d47135d92e64ed2867e4 - -@ fileutils -sdesc: "GNU file management utilities" -category: Base -requires: ash cygwin libncurses5 terminfo libintl2 libiconv2 -version: 4.1-2 -install: release/fileutils/fileutils-4.1-2.tar.bz2 412910 8d16c8db4b256a6b52ff40e154e60073 -source: release/fileutils/fileutils-4.1-2-src.tar.bz2 1224961 b66ae76641ee11e005a11b5b138eae49 -[prev] -version: 4.1-1 -install: release/fileutils/fileutils-4.1-1.tar.bz2 414836 32d034785dead48fb01bcb478b8fe115 -source: release/fileutils/fileutils-4.1-1-src.tar.bz2 1215226 27f35b3b8aa3cbb5dfa4d0b9799180e6 - -@ findutils -sdesc: "Utilities for finding files--find, xargs, and locate" -category: Base -requires: ash cygwin libintl1 -version: 4.1.7-4 -install: release/findutils/findutils-4.1.7-4.tar.bz2 107664 a7d2b9b649161feb6f9d28d8fa33594e -source: release/findutils/findutils-4.1.7-4-src.tar.bz2 517662 d8c0538777c78a1ebf8828bf7ff6cd71 - -@ flex -sdesc: "A fast lexical analyzer generator" -category: Devel -requires: cygwin libintl2 libiconv2 _update-info-dir -version: 2.5.4a-3 -install: release/flex/flex-2.5.4a-3.tar.bz2 90106 89f094a8d9eadefd0ab7cd4a2bf1e693 -source: release/flex/flex-2.5.4a-3-src.tar.bz2 395347 6a09a7e6f7f2eb6f4e4bec3f07b37b50 -[prev] -version: 2.5.4-2 -install: release/flex/flex-2.5.4-2.tar.bz2 85039 aec3ca985523a039196ae8d184962f54 -source: release/flex/flex-2.5.4-2-src.tar.bz2 272904 992f7a2229b27c1930fa07d96de1586c - -@ fltk -sdesc: "Cross platform C++ GUI toolkit" -ldesc: "FLTK is a cross-platform C++ GUI toolkit for UNIXR/LinuxR (X11), -MicrosoftR WindowsR, and MacOSR X. FLTK provides modern GUI -functionality and supports 3D graphics via OpenGLR and its built-in GLUT -emulation. FLTK also includes an excellent UI builder called FLUID that -can be used to create applications in minutes." -category: Devel -requires: cygwin libpng12 zlib libjpeg62 -version: 1.1.4-2 -install: release/fltk/fltk-1.1.4-2.tar.bz2 1380515 b96731a916c69944d1d69b8353bc6e80 -source: release/fltk/fltk-1.1.4-2-src.tar.bz2 1575051 d4154315f4b766544bbda1c2c6c82dff -[prev] -version: 1.1.4-1 -install: release/fltk/fltk-1.1.4-1.tar.bz2 1395764 62e0b6863eac72449e7df3e2525f1de2 -source: release/fltk/fltk-1.1.4-1-src.tar.bz2 1549887 73ea36d52a5b7f14309ff15cf37da883 - -@ fontconfig -sdesc: "Font configuration and customization library. (main package)" -ldesc: "Fontconfig is a library for configuring and customizing font -access." -category: Libs -requires: cygwin libfontconfig1 freetype2 expat zlib bash sh-utils diffutils -version: 2.2.2-1 -install: release/X11/fontconfig/fontconfig-2.2.2-1.tar.bz2 60742 06faafe953f35910ba8bca20dc9b2859 -source: release/X11/fontconfig/fontconfig-2.2.2-1-src.tar.bz2 752901 70dc494c504d6ab2c45f93abef15d325 -[prev] -version: 2.2.0-2 -install: release/X11/fontconfig/fontconfig-2.2.0-2.tar.bz2 69497 64d09aee51a91d1a8383094b1cc51363 -source: release/X11/fontconfig/fontconfig-2.2.0-2-src.tar.bz2 831096 44f169598724c9223e07e6191eb2b22e - -@ fortune -sdesc: "Print a random, hopefully interesting, adage" -category: Games -requires: cygwin -version: 1.8-2 -install: release/fortune/fortune-1.8-2.tar.bz2 1244606 12aa7d210278e5bd1f078d71a8b03cd5 -source: release/fortune/fortune-1.8-2-src.tar.bz2 1207339 1de115850b07aa0b681f408fb2eb1de7 - -@ freeglut -sdesc: "OpenSourced alternative to the OpenGL Utility Toolkit (GLUT) library" -ldesc: "freeglut is a completely OpenSourced alternative to the -OpenGL Utility Toolkit (GLUT) library. GLUT was originally written -by Mark Kilgard to support the sample programs in the second edition -OpenGL 'RedBook'. Since then, GLUT has been used in a wide variety -of practical applications because it is simple, widely available and -highly portable. - -GLUT (and hence freeglut) allows the user to create and manage windows -containing OpenGL contexts on a wide range of platforms and also read -the mouse, keyboard and joystick functions." -category: Graphics Libs -requires: cygwin xorg-x11-bin-dlls -version: 2.2.0-1 -install: release/freeglut/freeglut-2.2.0-1.tar.bz2 172481 5c77dae42d84c9febcefce63076d1974 -source: release/freeglut/freeglut-2.2.0-1-src.tar.bz2 640394 0f8b56cc9195874e6e26fa4a15de997d - -@ freetype2 -sdesc: "A Free, High-Quality, and Portable Font Engine. (main package)" -ldesc: "FreeType 2 is a software font engine that is designed to be -small, efficient, highly customizable and portable while capable of -producing high-quality output (glyph images). It can be used in -graphics libraries, display servers, font conversion tools, text image -generation tools, and many other products as well." -category: Libs -requires: cygwin libfreetype26 -version: 2.1.5-1 -install: release/X11/freetype2/freetype2-2.1.5-1.tar.bz2 2519 69bae4ca63d62a43ea8212cb8a3d6167 -source: release/X11/freetype2/freetype2-2.1.5-1-src.tar.bz2 1071918 446fab2d2fffa85e3571517a54c81a83 - -@ fvwm -sdesc: "Fvwm" -ldesc: "FVWM is an extremely powerful ICCCM-compliant multiple virtual -desktop window manager for the X Window system." -category: X11 -requires: cygwin xorg-x11-base xorg-x11-bin ncurses readline -version: 2.4.7-3 -install: release/X11/fvwm/fvwm-2.4.7-3.tar.bz2 841414 2e03d05b043b4b3ec9606b3b4b95cf35 -source: release/X11/fvwm/fvwm-2.4.7-3-src.tar.bz2 1334825 53a3134d5fdb234093043d80610951bd - -@ gawk -sdesc: "GNU awk, a pattern scanning and processing language" -category: Interpreters Base -requires: ash cygwin libiconv2 libintl3 -version: 3.1.4-3 -install: release/gawk/gawk-3.1.4-3.tar.bz2 598403 948f326908372fb6bc58fbbe631350b6 -source: release/gawk/gawk-3.1.4-3-src.tar.bz2 1726968 3e20ebfa8d083dc00110cd6fd3cef7dc -[prev] -version: 3.1.3-4 -install: release/gawk/gawk-3.1.3-4.tar.bz2 548384 8664c3b887a2c8846257c337392343bc -source: release/gawk/gawk-3.1.3-4-src.tar.bz2 1635057 a9ae8c8fa6f1d07e5cc9f37a95d02850 - -@ gcc -sdesc: "C compiler upgrade helper" -category: Devel -requires: cygwin ash binutils w32api mingw-runtime libintl3 gcc-core gcc-g++ gcc-mingw-core gcc-mingw-g++ -version: 3.3.3-3 -install: release/gcc/gcc-3.3.3-3.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 -source: release/gcc/gcc-3.3.3-3-src.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 -[prev] -version: 3.3.1-3 -install: release/gcc/gcc-3.3.1-3.tar.bz2 3093869 4efc123aa901ec25683952214ac74dec -source: release/gcc/gcc-core/gcc-core-3.3.1-3-src.tar.bz2 10790513 c13cbe4ca2054167e0bf33c7b61da2b5 -[test] -version: 3.4.1-1 -install: release/gcc/gcc-3.4.1-1.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 -source: release/gcc/gcc-3.4.1-1-src.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ gcc-ada -sdesc: "Ada compiler" -category: Devel -requires: cygwin ash binutils w32api mingw-runtime libintl3 gcc-mingw-ada gcc-core -version: 3.3.3-3 -install: release/gcc/gcc-ada/gcc-ada-3.3.3-3.tar.bz2 6042428 3120fd8425949826c8a81ff7db4074ac -source: release/gcc/gcc-ada/gcc-ada-3.3.3-3-src.tar.bz2 3531349 618e4a4dd14e6fb5f5848897583c2121 -[prev] -version: 3.3.1-3 -install: release/gcc/gcc-ada/gcc-ada-3.3.1-3.tar.bz2 6113865 63514181299d2c6c100774c74dbe43e2 -source: release/gcc/gcc-ada/gcc-ada-3.3.1-3-src.tar.bz2 4210723 e01b034cacc2a1c473b5e0e83a933ea0 -[test] -version: 3.4.1-1 -install: release/gcc/gcc-ada/gcc-ada-3.4.1-1.tar.bz2 6862063 92f48807d5db4c5789ab613aee7ccefd -source: release/gcc/gcc-ada/gcc-ada-3.4.1-1-src.tar.bz2 3473378 e47ab6ae486f429e471de00dc13f66d3 - -@ gcc-core -sdesc: "C compiler" -category: Devel -requires: cygwin ash binutils w32api mingw-runtime libintl3 gcc-mingw-core -version: 3.3.3-3 -install: release/gcc/gcc-core/gcc-core-3.3.3-3.tar.bz2 3592939 07fcf2cd3f440a0643dde8dc153368e1 -source: release/gcc/gcc-core/gcc-core-3.3.3-3-src.tar.bz2 12452170 87e68430a7a083bfc33cb0ddf3459c67 -[prev] -version: 3.3.1-3 -source: release/gcc/gcc-core/gcc-core-3.3.1-3-src.tar.bz2 10790513 c13cbe4ca2054167e0bf33c7b61da2b5 -[test] -version: 3.4.1-1 -install: release/gcc/gcc-core/gcc-core-3.4.1-1.tar.bz2 3649478 f6735554124e6c0b3e42fe9caf0583cb -source: release/gcc/gcc-core/gcc-core-3.4.1-1-src.tar.bz2 13003111 f20364d0cd29c905220faacbd6db0837 - -@ gcc-g++ -sdesc: "C++ compiler" -category: Devel -requires: cygwin ash binutils w32api mingw-runtime libintl3 gcc-mingw-g++ gcc-core -version: 3.3.3-3 -install: release/gcc/gcc-g++/gcc-g++-3.3.3-3.tar.bz2 2361050 66b3403eb6b1eb50bead394ba504071d -source: release/gcc/gcc-g++/gcc-g++-3.3.3-3-src.tar.bz2 2083637 11f5193818a07366b808073dd05a7b15 -[prev] -version: 3.3.1-3 -install: release/gcc/gcc-g++/gcc-g++-3.3.1-3.tar.bz2 1927879 4a0b58346c6b9fae504ce69062fa7e55 -source: release/gcc/gcc-g++/gcc-g++-3.3.1-3-src.tar.bz2 2093988 0dbce429411cbf90faffd286213a17ba -[test] -version: 3.4.1-1 -install: release/gcc/gcc-g++/gcc-g++-3.4.1-1.tar.bz2 2810458 f5d51ec9d51a162d2a477456c5ead815 -source: release/gcc/gcc-g++/gcc-g++-3.4.1-1-src.tar.bz2 2416577 780553c4451cee24c6c74622cc59d9f8 - -@ gcc-g77 -sdesc: "Fortran compiler" -category: Devel -requires: cygwin ash binutils w32api mingw-runtime libintl3 gcc-mingw-g77 gcc-core -version: 3.3.3-3 -install: release/gcc/gcc-g77/gcc-g77-3.3.3-3.tar.bz2 1752403 1ab8425349e17bf5628852027d3fb1ef -source: release/gcc/gcc-g77/gcc-g77-3.3.3-3-src.tar.bz2 1141763 0ab698f20fe7b73cbf9df0e7140b73cb -[prev] -version: 3.3.1-3 -install: release/gcc/gcc-g77/gcc-g77-3.3.1-3.tar.bz2 1724561 bf79d4db88b4b62efd3d1796904ee24d -source: release/gcc/gcc-g77/gcc-g77-3.3.1-3-src.tar.bz2 1110159 85313529cb76626d382eca4a519bd7fe -[test] -version: 3.4.1-1 -install: release/gcc/gcc-g77/gcc-g77-3.4.1-1.tar.bz2 2015775 b88751c250f3ba230e526b535075fb65 -source: release/gcc/gcc-g77/gcc-g77-3.4.1-1-src.tar.bz2 906460 33756952386f07558275d5cd59cccebd - -@ gcc-gdc -sdesc: "D compiler" -category: Devel -requires: cygwin ash binutils w32api mingw-runtime libintl3 gcc-core -version: 3.3.3-3 -install: release/gcc/gcc-gdc/gcc-gdc-3.3.3-3.tar.bz2 1813353 3f7d30dacf04f47ef444ca3003b7a7ec -source: release/gcc/gcc-gdc/gcc-gdc-3.3.3-3-src.tar.bz2 685535 326c1c4b2bb2d3d7e8877049d8aaf682 - -@ gcc-gm2 -sdesc: "GNU Modula 2 compiler" -category: Devel -requires: cygwin ash binutils w32api mingw-runtime libintl3 gcc-core - -@ gcc-gpc -sdesc: "GNU Pascal compiler" -category: Devel -requires: cygwin ash binutils w32api mingw-runtime libintl3 gcc-core gcc-mingw-gpc -version: 3.3.3-3 -install: release/gcc/gcc-gpc/gcc-gpc-3.3.3-3.tar.bz2 2138227 8235455ddae3bd84e0825bdeb51e53cf -source: release/gcc/gcc-gpc/gcc-gpc-3.3.3-3-src.tar.bz2 2526252 019579b90f3874f1e9515d3b396bd953 -[prev] -version: 3.3.1-3 -install: release/gcc/gcc-gpc/gcc-gpc-3.3.1-3.tar.bz2 2191058 18cd938b0cb8642682a90c1b00522ae6 -source: release/gcc/gcc-gpc/gcc-gpc-3.3.1-3-src.tar.bz2 2469423 56e1a9f5228f1327a3fefc414309f031 - -@ gcc-java -sdesc: "Java compiler" -category: Devel -requires: cygwin ash binutils w32api mingw-runtime libintl3 gcc-mingw-java gcc-core zlib -version: 3.3.3-3 -install: release/gcc/gcc-java/gcc-java-3.3.3-3.tar.bz2 12207859 01450fd477a83bf8d5d3e5f7059590d9 -source: release/gcc/gcc-java/gcc-java-3.3.3-3-src.tar.bz2 3645128 45b4207f851814c3c56e8e0378f6330a -[prev] -version: 3.3.1-3 -install: release/gcc/gcc-java/gcc-java-3.3.1-3.tar.bz2 8291245 f4dd921ed889bf33c55e013998939d92 -source: release/gcc/gcc-java/gcc-java-3.3.1-3-src.tar.bz2 3692999 3900f82270d95e8ae48be6536568cb91 -[test] -version: 3.4.1-1 -install: release/gcc/gcc-java/gcc-java-3.4.1-1.tar.bz2 11978836 1296d4d632b036ab8a432d53f4fd450f -source: release/gcc/gcc-java/gcc-java-3.4.1-1-src.tar.bz2 4716405 6ecc6ef6b675e77edc381665bcfbbf36 - -@ gcc-mingw -sdesc: "Mingw32 support headers and libraries for GCC" -category: Devel -requires: gcc-mingw-core -version: 20040810-1 -install: release/gcc-mingw/gcc-mingw-20040810-1.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 -source: release/gcc-mingw/gcc-mingw-20040810-1-src.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 -[prev] -version: 20030911-4 -install: release/gcc-mingw/gcc-mingw-20030911-4.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 -source: release/gcc-mingw/gcc-mingw-20030911-4-src.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ gcc-mingw-ada -sdesc: "Mingw32 support headers and libraries for GCC Ada" -category: Devel -requires: gcc-core gcc-ada -version: 20040810-1 -install: release/gcc-mingw/gcc-mingw-ada/gcc-mingw-ada-20040810-1.tar.bz2 3425897 0d68e05c86beb7ff6ed903c6049c9f27 -source: release/gcc-mingw/gcc-mingw-ada/gcc-mingw-ada-20040810-1-src.tar.bz2 13474793 208281654d8c1fdd99ac1dc85078d29f -[prev] -version: 20031020-1 -install: release/gcc-mingw/gcc-mingw-ada/gcc-mingw-ada-20031020-1.tar.bz2 3422500 ed6f0784c680efcf12bfe3add3512125 -source: release/gcc-mingw/gcc-mingw-ada/gcc-mingw-ada-20031020-1-src.tar.bz2 12831919 ea8a4c59b4dc55b6461cb2ba199727ea -[test] -version: 20040822-1 -install: release/gcc-mingw/gcc-mingw-ada/gcc-mingw-ada-20040822-1.tar.bz2 4361844 a078edda92416dbd7214d423cca56321 -source: release/gcc-mingw/gcc-mingw-ada/gcc-mingw-ada-20040822-1-src.tar.bz2 10397960 b284c132892629309a8ab4a1def4a316 - -@ gcc-mingw-core -sdesc: "Mingw32 support headers and libraries for GCC" -category: Devel -requires: gcc-core -version: 20040810-1 -install: release/gcc-mingw/gcc-mingw-core/gcc-mingw-core-20040810-1.tar.bz2 63771 fe97af04845967027080a486364f55e5 -source: release/gcc-mingw/gcc-mingw-core/gcc-mingw-core-20040810-1-src.tar.bz2 2424433 7ebda90c4e24b27e9cfbc1ea1c1f0f1e -[prev] -version: 20031020-1 -install: release/gcc-mingw/gcc-mingw-core/gcc-mingw-core-20031020-1.tar.bz2 40866 1af35bf03964aaf6fc78c89534a82de0 -source: release/gcc-mingw/gcc-mingw-core/gcc-mingw-core-20031020-1-src.tar.bz2 2311320 09c93fb6c371bd53877cfd2fa6870e8c -[test] -version: 20040822-1 -install: release/gcc-mingw/gcc-mingw-core/gcc-mingw-core-20040822-1.tar.bz2 663120 22dc6262c3c5e7f721e4deb0cff5c001 -source: release/gcc-mingw/gcc-mingw-core/gcc-mingw-core-20040822-1-src.tar.bz2 3503674 4ca73c089aacd26a8950d66fb731ca4b - -@ gcc-mingw-g++ -sdesc: "Mingw32 support headers and libraries for GCC C++" -category: Devel -requires: gcc-core gcc-g++ -version: 20040810-1 -install: release/gcc-mingw/gcc-mingw-g++/gcc-mingw-g++-20040810-1.tar.bz2 261408 91d0d03c72222a28b1687db941dfb0e3 -source: release/gcc-mingw/gcc-mingw-g++/gcc-mingw-g++-20040810-1-src.tar.bz2 2339624 1a67bf2eeecf7f233329a908d3f38845 -[prev] -version: 20031020-1 -install: release/gcc-mingw/gcc-mingw-g++/gcc-mingw-g++-20031020-1.tar.bz2 256460 770c664debf8d62e89bf951665a7dd85 -source: release/gcc-mingw/gcc-mingw-g++/gcc-mingw-g++-20031020-1-src.tar.bz2 2258608 76088034a5a520c9ad4d517119b4363d -[test] -version: 20040822-1 -install: release/gcc-mingw/gcc-mingw-g++/gcc-mingw-g++-20040822-1.tar.bz2 310918 10a32895856f7004464ef649c0194ea7 -source: release/gcc-mingw/gcc-mingw-g++/gcc-mingw-g++-20040822-1-src.tar.bz2 4244813 6e3fef6ea44762bd3626b3564e0e6b04 - -@ gcc-mingw-g77 -sdesc: "Mingw32 support headers and libraries for GCC Fortran" -category: Devel -requires: gcc-core gcc-g77 -version: 20040810-1 -install: release/gcc-mingw/gcc-mingw-g77/gcc-mingw-g77-20040810-1.tar.bz2 65586 20ca082d4214ecda0051dcc6537fc1f9 -source: release/gcc-mingw/gcc-mingw-g77/gcc-mingw-g77-20040810-1-src.tar.bz2 1846306 da9e633dca4f522dad62d354ff431dd9 -[prev] -version: 20031020-1 -install: release/gcc-mingw/gcc-mingw-g77/gcc-mingw-g77-20031020-1.tar.bz2 62574 688e480a72180f39c57500a0faa9609f -source: release/gcc-mingw/gcc-mingw-g77/gcc-mingw-g77-20031020-1-src.tar.bz2 1771698 c849eb5c69f2b6f067d95b35b6213118 -[test] -version: 20040822-1 -install: release/gcc-mingw/gcc-mingw-g77/gcc-mingw-g77-20040822-1.tar.bz2 66003 2d8f7045d3fa485c021350912ee9b000 -source: release/gcc-mingw/gcc-mingw-g77/gcc-mingw-g77-20040822-1-src.tar.bz2 2072527 90c3873bd6ebfa50efdaee350b890b28 - -@ gcc-mingw-gpc -sdesc: "Mingw32 support headers and libraries for GCC Pascal" -category: Devel -requires: gcc-core gcc-gpc -version: 20040810-1 -install: release/gcc-mingw/gcc-mingw-gpc/gcc-mingw-gpc-20040810-1.tar.bz2 293669 8d0e2633852afbdc9b650aec5bd30ac4 -source: release/gcc-mingw/gcc-mingw-gpc/gcc-mingw-gpc-20040810-1-src.tar.bz2 2427927 e1c6c3d8b1d67958f2c5c4f4eb96d506 -[prev] -version: 20031020-1 -install: release/gcc-mingw/gcc-mingw-gpc/gcc-mingw-gpc-20031020-1.tar.bz2 289277 d6ff1d604b13205258c79dd4e589d249 -source: release/gcc-mingw/gcc-mingw-gpc/gcc-mingw-gpc-20031020-1-src.tar.bz2 2464795 266ae68ef90cd74049eb1b3b19530ed4 - -@ gcc-mingw-java -sdesc: "Mingw32 support headers and libraries for GCC Java" -category: Devel -requires: gcc-core gcc-java -version: 20040810-1 -install: release/gcc-mingw/gcc-mingw-java/gcc-mingw-java-20040810-1.tar.bz2 3948563 a551834152e98259a5b8957665524cc3 -source: release/gcc-mingw/gcc-mingw-java/gcc-mingw-java-20040810-1-src.tar.bz2 9953376 edb5740f4b98467f278b00f1cb00e138 -[prev] -version: 20031020-1 -install: release/gcc-mingw/gcc-mingw-java/gcc-mingw-java-20031020-1.tar.bz2 3917196 2b208053c87279d7f74f6057d1c84027 -source: release/gcc-mingw/gcc-mingw-java/gcc-mingw-java-20031020-1-src.tar.bz2 9649020 5d54d5f474ab768f4172e3080c06978c -[test] -version: 20040822-1 -install: release/gcc-mingw/gcc-mingw-java/gcc-mingw-java-20040822-1.tar.bz2 4651549 e74ab184e67f56005dbfa4a9764b8f13 -source: release/gcc-mingw/gcc-mingw-java/gcc-mingw-java-20040822-1-src.tar.bz2 11946043 577582ca2a5b3b69c4c28befa0f8694b - -@ gcc-mingw-objc -sdesc: "Mingw32 support headers and libraries for GCC ObjC" -category: Devel -requires: gcc-core gcc-objc -version: 20040810-1 -install: release/gcc-mingw/gcc-mingw-objc/gcc-mingw-objc-20040810-1.tar.bz2 55015 d8e1ad3d2024b558c32359ace50826bc -source: release/gcc-mingw/gcc-mingw-objc/gcc-mingw-objc-20040810-1-src.tar.bz2 1422485 e4f08b52bfc0b5e063d4bf0742b76a39 -[prev] -version: 20031020-1 -install: release/gcc-mingw/gcc-mingw-objc/gcc-mingw-objc-20031020-1.tar.bz2 54412 02a0a61cd619a1b67aa07f35cbc0ceff -source: release/gcc-mingw/gcc-mingw-objc/gcc-mingw-objc-20031020-1-src.tar.bz2 1369515 dfa9f28d67d8613942130d1bfbe2e792 -[test] -version: 20040822-1 -install: release/gcc-mingw/gcc-mingw-objc/gcc-mingw-objc-20040822-1.tar.bz2 56795 4f8a25537c25e8fe87a13eb6b861dd05 -source: release/gcc-mingw/gcc-mingw-objc/gcc-mingw-objc-20040822-1-src.tar.bz2 1676091 1704d649cb3ef903812591bee4385247 - -@ gcc-objc -sdesc: "ObjC compiler" -category: Devel -requires: cygwin ash binutils w32api mingw-runtime libintl3 gcc-mingw-objc gcc-core -version: 3.3.3-3 -install: release/gcc/gcc-objc/gcc-objc-3.3.3-3.tar.bz2 1248554 880345badebf968cc2b711122594da3b -source: release/gcc/gcc-objc/gcc-objc-3.3.3-3-src.tar.bz2 209275 861f832112936d95ca9173aa98cd71e6 -[prev] -version: 3.3.1-3 -install: release/gcc/gcc-objc/gcc-objc-3.3.1-3.tar.bz2 1272224 82ffe838db6e417405953f34b90b119a -source: release/gcc/gcc-objc/gcc-objc-3.3.1-3-src.tar.bz2 204547 ad93927c542c392fcb5f2be992eae902 -[test] -version: 3.4.1-1 -install: release/gcc/gcc-objc/gcc-objc-3.4.1-1.tar.bz2 1535469 2ffa1d3cf743e1dd9485b3d090c177c9 -source: release/gcc/gcc-objc/gcc-objc-3.4.1-1-src.tar.bz2 215148 5a272ba4029ff72d90f4ba1ea4a2ae1e - -@ gcc-testsuite -sdesc: "GCC testsuite sources" -category: Devel -requires: dejagnu expect -version: 3.3.3-3 -source: release/gcc/gcc-testsuite/gcc-testsuite-3.3.3-3-src.tar.bz2 1078481 5aa000aebf594d2965872503203fcd92 -[prev] -version: 3.3.1-3 -source: release/gcc/gcc-testsuite/gcc-testsuite-3.3.1-3-src.tar.bz2 1043934 e6845fc69ae3296d3aa951afcdfd591d -[test] -version: 3.4.1-1 -source: release/gcc/gcc-testsuite/gcc-testsuite-3.4.1-1-src.tar.bz2 2606251 2d4bcceaa1e63dcb1db145fbea2f6688 - -@ gd -sdesc: "A graphics library for fast image creation - documentation and applications" -ldesc: "gd is a graphics library. It allows your code to quickly draw images -complete with lines, arcs, text, multiple colors, cut and paste from other -images, and flood fills, and write out the result as a PNG or JPEG file. This -is particularly useful in World Wide Web applications, where PNG and JPEG are -two of the formats accepted for inline images by most browsers. -gd is not a paint program. If you are looking for a paint program, you are -looking in the wrong place. If you are not a programmer, you are looking in the -wrong place, unless you are installing a required library in order to run an -application. gd does not provide for every possible desirable graphics operation. -It is not necessary or desirable for gd to become a kitchen-sink graphics -package, but version 2.0 does include most frequently requested features, -including both truecolor and palette images, resampling (smooth resizing of -truecolor images) and so forth. " -category: Libs Graphics -requires: cygwin libgd2 libfreetype26 libiconv2 libjpeg62 libpng12 xorg-x11-bin-dlls zlib -version: 2.0.28-1 -install: release/X11/gd/gd-2.0.28-1.tar.bz2 70119 9deab9ced8ea6e809dd9c8eae8342454 -source: release/X11/gd/gd-2.0.28-1-src.tar.bz2 582448 2ec4c8d6ebacc93c8a1ce9275fbef91e -[prev] -version: 2.0.21-1 -install: release/X11/gd/gd-2.0.21-1.tar.bz2 67906 34e468b770b6c07362b9739649a52af5 -source: release/X11/gd/gd-2.0.21-1-src.tar.bz2 660606 89e364ab04a00e15bb6ee9a0319513a6 - -@ gdb -sdesc: "The GNU Debugger" -category: Devel -requires: cygwin termcap tcltk libiconv2 libintl2 -version: 20030919-1 -install: release/gdb/gdb-20030919-1.tar.bz2 2582103 63ea21d548d701c3ce79333b6cd66a8e -source: release/gdb/gdb-20030919-1-src.tar.bz2 10671754 28a93b5723d1e874f81b0d69f6dde9fc -[prev] -version: 20030303-1 -install: release/gdb/gdb-20030303-1.tar.bz2 2484178 1114e5efb2769af7000c1acc0b6e8254 -source: release/gdb/gdb-20030303-1-src.tar.bz2 10127406 7296101fab50275c9460adf6440fbf75 - -@ gdbm -sdesc: "GNU dbm database routines (utilities)" -ldesc: "Gdbm is a GNU database indexing library, including routines which use -extensible hashing. Gdbm works in a similar way to standard UNIX dbm -routines. Gdbm is useful for developers who write C applications and -need access to a simple and efficient database or who are building C -applications which will use such a database. This version also supports -ndbm and dbm emulation modes." -category: Base -requires: cygwin libgdbm3 libgdbm4 -version: 1.8.3-7 -install: release/gdbm/gdbm-1.8.3-7.tar.bz2 44881 fe595d7a773cda08e525257e465dee41 -source: release/gdbm/gdbm-1.8.3-7-src.tar.bz2 272099 c2807f2f1b76845b360b5d1d16492afc -[prev] -version: 1.8.3-3 -install: release/gdbm/gdbm-1.8.3-3.tar.bz2 34020 694b834e5df901e4702325c1300f2aa3 -source: release/gdbm/gdbm-1.8.3-3-src.tar.bz2 242420 06bff8dec4b76ea30d2e5b3e199acc29 - -@ gettext -sdesc: "GNU Internationalization library and core utilities (PLUS LINK LIBS)" -ldesc: "The GNU gettext package provides a set of tools and -documentation for producing -multi-lingual messages in programs. Tools include a set of conventions about -how programs should be written to support message catalogs, a directory and -file naming organization for the message catalogs, a runtime library which -supports the retrieval of translated messages, and stand-alone programs for -handling the translatable and the already translated strings. Gettext provides -an easy to use library and tools for creating, using, and modifying natural -language catalogs and is a powerful and simple method for internationalizing -programs. - -This package provides the main gettext executables, and the LINK libraries. -Ordinarily, LINK libs (.dll.a and .a) would go into the 'gettext-devel' or -even 'libintlX-devel' packages, but Bruno Haible, the official maintainer -for the GNU gettext package, recommends that the LINK libs be included -with the main executables -- even on cygwin, in violation of our normal -cygwin packaging standard. Sorry for any confusion that may be caused by -this." -category: Devel Libs -requires: cygwin libintl3 libiconv2 _update-info-dir -version: 0.14.1-1 -install: release/gettext/gettext-0.14.1-1.tar.bz2 201731 46765a7de4dc4391e719ed07039ca75f -source: release/gettext/gettext-0.14.1-1-src.tar.bz2 6651529 ce3c223ee369c6e0e4ddfc45052e01d6 -[prev] -version: 0.12.1-3 -install: release/gettext/gettext-0.12.1-3.tar.bz2 249411 3f437c06fc6a3c2fe37ef3e0b94e3afe -source: release/gettext/gettext-0.12.1-3-src.tar.bz2 5782139 6ca83119794061c7bed92cb98c4eefc2 - -@ gettext-devel -sdesc: "GNU Internationalization development utilities (but NOT LINK LIBS)" -ldesc: "The GNU gettext package provides a set of tools and -documentation for producing -multi-lingual messages in programs. Tools include a set of conventions about -how programs should be written to support message catalogs, a directory and -file naming organization for the message catalogs, a runtime library which -supports the retrieval of translated messages, and stand-alone programs for -handling the translatable and the already translated strings. Gettext provides -an easy to use library and tools for creating, using, and modifying natural -language catalogs and is a powerful and simple method for internationalizing -programs. - -This package provides the development executables, extra documentation, and -the .m4 scripts for gettext and gettextized development. However, it does -NOT contain the gettext LINK LIBS. Those are in the main 'gettext' package. -Ordinarily, LINK libs (.dll.a and .a) would go into the 'gettext-devel' or -even 'libintlX-devel' packages, but Bruno Haible, the official maintainer -for the GNU gettext package, recommends that the LINK libs be included -with the main executables -- even on cygwin, in violation of our normal -cygwin packaging standard. Sorry for any confusion that may be caused by -this." -category: Devel -requires: cygwin libgettextpo0 libintl3 gettext texinfo libiconv2 expat _update-info-dir -version: 0.14.1-1 -install: release/gettext/gettext-devel/gettext-devel-0.14.1-1.tar.bz2 1715359 691d47dc639c36d9586ec6567d4a2f99 -source: release/gettext/gettext-0.14.1-1-src.tar.bz2 6651529 ce3c223ee369c6e0e4ddfc45052e01d6 -[prev] -version: 0.12.1-3 -install: release/gettext/gettext-devel/gettext-devel-0.12.1-3.tar.bz2 1079095 c6b334816dfd281da1162b7d4737282f -source: release/gettext/gettext-0.12.1-3-src.tar.bz2 5782139 6ca83119794061c7bed92cb98c4eefc2 - -@ ghostscript -sdesc: "A Postscript interpreter (GNU version, native)" -ldesc: "GNU Ghostscript is Postscript interpreter capable of converting PS -files into a number of printer output formats. Ghostscript can also -render PS files into a number of graphics file formats. This package -contains the native build (no X11 support.)" -category: Graphics -requires: cygwin libpng12 zlib ghostscript-base -version: 7.05-2 -install: release/ghostscript/ghostscript-7.05-2.tar.bz2 1141209 a8a26e9a543e9623bc087eb85f8ac55e -source: release/ghostscript/ghostscript-7.05-2-src.tar.bz2 8128779 a4415ee8d4dd8d52840ef9f2df384fdc -[prev] -version: 7.05-1 -install: release/ghostscript/ghostscript-7.05-1.tar.bz2 1141387 43289ac6488c0df0fd922e40b9785b1d -source: release/ghostscript/ghostscript-7.05-1-src.tar.bz2 4955397 f5f61dd7ed1d1c44e3cab1bc1fc5c547 - -@ ghostscript-base -sdesc: "A Postscript interpreter (GNU version, base)" -ldesc: "GNU Ghostscript is Postscript interpreter capable of converting PS -files into a number of printer output formats. Ghostscript can also -render PS files into a number of graphics file formats. This package -contains the support files and documentation common to both the X11 -and native builds." -category: Graphics -version: 7.05-2 -install: release/ghostscript/ghostscript-base/ghostscript-base-7.05-2.tar.bz2 3727120 fc0ab40d551a43f193af4abfa94572c2 -source: release/ghostscript/ghostscript-7.05-2-src.tar.bz2 8128779 a4415ee8d4dd8d52840ef9f2df384fdc -[prev] -version: 7.05-1 -install: release/ghostscript/ghostscript-base/ghostscript-base-7.05-1.tar.bz2 3728581 b1ff534d4936600bf9c582842d1bf3ce -source: release/ghostscript/ghostscript-7.05-1-src.tar.bz2 4955397 f5f61dd7ed1d1c44e3cab1bc1fc5c547 - -@ ghostscript-x11 -sdesc: "A Postscript interpreter (GNU version, X11)" -ldesc: "GNU Ghostscript is Postscript interpreter capable of converting PS -files into a number of printer output formats. Ghostscript can also -render PS files into a number of graphics file formats. This package -contains the X11 build for Cygwin/XFree86." -category: Graphics -requires: cygwin xorg-x11-base libpng12 zlib ghostscript-base -version: 7.05-2 -install: release/ghostscript/ghostscript-x11/ghostscript-x11-7.05-2.tar.bz2 1257727 3fdc8ede472defb514355bb9e94f7785 -source: release/ghostscript/ghostscript-7.05-2-src.tar.bz2 8128779 a4415ee8d4dd8d52840ef9f2df384fdc -[prev] -version: 7.05-1 -install: release/ghostscript/ghostscript-x11/ghostscript-x11-7.05-1.tar.bz2 1257546 0db6ee433e8bd0e212023ade6334e37a -source: release/ghostscript/ghostscript-7.05-1-src.tar.bz2 4955397 f5f61dd7ed1d1c44e3cab1bc1fc5c547 - -@ glib -sdesc: "Gnome C function library" -ldesc: "GLib is a library which includes support routines for C such as -lists, trees, hashes, memory allocation, and many other things." -category: Libs -requires: cygwin -version: 1.2.10-2 -install: release/glib/glib-1.2.10-2.tar.bz2 110246 bfa92605ca979b7dc04150838227f54d -source: release/glib/glib-1.2.10-2-src.tar.bz2 407195 4d452e059a7f23afcd7118253d6bd055 -[prev] -version: 1.2.10-1 -install: release/glib/glib-1.2.10-1.tar.bz2 110382 05aea6211a2bafb188668d75de54747c -source: release/glib/glib-1.2.10-1-src.tar.bz2 407067 b525828d05a474d65fb09a7f41af1abb - -@ glib-devel -sdesc: "Gnome C function library (development files)" -ldesc: "GLib is a library which includes support routines for C such as -lists, trees, hashes, memory allocation, and many other things." -category: Libs Devel -requires: cygwin -version: 1.2.10-2 -install: release/glib/glib-devel/glib-devel-1.2.10-2.tar.bz2 45265 58057aecd4b1d277f2505736318a1c4d -source: release/glib/glib-1.2.10-2-src.tar.bz2 407195 4d452e059a7f23afcd7118253d6bd055 -[prev] -version: 1.2.10-1 -install: release/glib/glib-devel/glib-devel-1.2.10-1.tar.bz2 45268 c88b0afacbae779b5313a4005378af4c -source: release/glib/glib-1.2.10-1-src.tar.bz2 407067 b525828d05a474d65fb09a7f41af1abb - -@ glib2 -sdesc: "Low-level core library - runtime libraries and executables" -ldesc: "GLib is the low-level core library that forms the basis of -GTK+ and GNOME. It provides data structure handling for C, portability -wrappers, and interfaces for such runtime functionality as an event -loop, threads, dynamic loading, and an object system." -category: Libs -requires: glib2-runtime -version: 2.4.7-1 -install: release/glib2/glib2-2.4.7-1.tar.bz2 165111 05c2dc14857c0b77cb0eee682eee8073 -source: release/glib2/glib2-2.4.7-1-src.tar.bz2 2264282 dd94683f21ed4841c721986c03671fb9 -[prev] -version: 2.4.6-2 -install: release/glib2/glib2-2.4.6-2.tar.bz2 157263 8b160a2a0f9e9b483aa12bea1dde8494 -source: release/glib2/glib2-2.4.6-2-src.tar.bz2 2315507 c7005036aabefa545f9081adc9c380c8 - -@ glib2-devel -sdesc: "Headers and import libraries for glib" -category: Libs -requires: glib2-runtime -version: 2.4.7-1 -install: release/glib2/glib2-devel/glib2-devel-2.4.7-1.tar.bz2 127121 ac23bca0562b6d85fb53613d5d0ff0e3 -source: release/glib2/glib2-2.4.7-1-src.tar.bz2 2264282 dd94683f21ed4841c721986c03671fb9 -[prev] -version: 2.4.6-2 -install: release/glib2/glib2-devel/glib2-devel-2.4.6-2.tar.bz2 126952 f9536a48464d6c44a7434b738308e594 -source: release/glib2/glib2-2.4.6-2-src.tar.bz2 2315507 c7005036aabefa545f9081adc9c380c8 - -@ glib2-doc -sdesc: "HTML docs and manpages for glib" -category: Libs Doc -version: 2.4.7-1 -install: release/glib2/glib2-doc/glib2-doc-2.4.7-1.tar.bz2 346058 0c58b3ec9ed1b7acea67e277573ba594 -source: release/glib2/glib2-2.4.7-1-src.tar.bz2 2264282 dd94683f21ed4841c721986c03671fb9 -[prev] -version: 2.4.6-2 -install: release/glib2/glib2-doc/glib2-doc-2.4.6-2.tar.bz2 355931 c03e88bb50a1d90187f63e90a7931cf0 -source: release/glib2/glib2-2.4.6-2-src.tar.bz2 2315507 c7005036aabefa545f9081adc9c380c8 - -@ glib2-runtime -sdesc: "Low-level core library - runtime libraries and executables" -ldesc: "GLib is the low-level core library that forms the basis of -GTK+ and GNOME. It provides data structure handling for C, portability -wrappers, and interfaces for such runtime functionality as an event -loop, threads, dynamic loading, and an object system." -category: Libs -requires: cygwin libiconv2 libintl2 glib2 -version: 2.4.7-1 -install: release/glib2/glib2-runtime/glib2-runtime-2.4.7-1.tar.bz2 332668 68c51492fbbd37ae13b4ac0f2e219618 -source: release/glib2/glib2-2.4.7-1-src.tar.bz2 2264282 dd94683f21ed4841c721986c03671fb9 -[prev] -version: 2.4.6-2 -install: release/glib2/glib2-runtime/glib2-runtime-2.4.6-2.tar.bz2 331562 0c6822e4e5224cb5262729c17b28d589 -source: release/glib2/glib2-2.4.6-2-src.tar.bz2 2315507 c7005036aabefa545f9081adc9c380c8 - -@ gmp -sdesc: "A free library for arbitrary precision arithmetic" -ldesc: "GMP is a free library for arbitrary precision arithmetic, -operating on signed integers, rational numbers, and floating point -numbers. There is no practical limit to the precision except the ones -implied by the available memory in the machine GMP runs on. GMP has a -rich set of functions, and the functions have a regular interface." -category: Math Libs -requires: cygwin -version: 4.1.4-2 -install: release/gmp/gmp-4.1.4-2.tar.bz2 637739 4a7e0b7a01e1e85d574dfbf9a6bbf759 -source: release/gmp/gmp-4.1.4-2-src.tar.bz2 2060640 9e77ff82e276989f81da99723a6d58fb -[prev] -version: 4.1.2-1 -install: release/gmp/gmp-4.1.2-1.tar.bz2 209890 9504566eb9017ac89289686df59698fe -source: release/gmp/gmp-4.1.2-1-src.tar.bz2 2177305 c0ccdcd17814365e3fb7b1424588836a - -@ gnome-common -sdesc: "Common development files for GNOME 2.x" -ldesc: "Common development files for GNOME 2.x" -category: Devel -requires: cygwin ash -version: 2.8.0-1 -install: release/GNOME/gnome-common/gnome-common-2.8.0-1.tar.bz2 20021 c2f399a08cc5fc10f1885a643868d54e -source: release/GNOME/gnome-common/gnome-common-2.8.0-1-src.tar.bz2 65115 25acd92219d0abe353d147125787bf26 - -@ gnome-icon-theme -sdesc: "GNOME 2.x icon theme" -ldesc: "GNOME 2.x icon theme" -category: X11 -requires: hicolor-icon-theme -version: 2.8.0-1 -install: release/GNOME/gnome-icon-theme/gnome-icon-theme-2.8.0-1.tar.bz2 2672313 907ccf93145bfb1d57915b78b0681a07 -source: release/GNOME/gnome-icon-theme/gnome-icon-theme-2.8.0-1-src.tar.bz2 2900562 533a944a6faf7224a9f6213ee3d4d8fe - -@ gnome-keyring -sdesc: "GNOME password management system" -ldesc: "GNOME Keyring is a system to store passwords and other -sensitive data in a standardized way across all GNOME applications. - -A keyring stores a collection of encrypted passwords and encrypted -information about those passwords. A user can have multiple keyrings, -each for a different use, but there is a 'default' one. There is also a -special 'session' keyring which is not stored on disk and goes away -when you log out." -category: Libs Devel -requires: cygwin glib2-runtime libiconv2 libintl3 -version: 0.4.0-1 -install: release/GNOME/gnome-keyring/gnome-keyring-0.4.0-1.tar.bz2 115695 6fc2402f42c16fdc8aa0455f64e95c34 -source: release/GNOME/gnome-keyring/gnome-keyring-0.4.0-1-src.tar.bz2 456838 7b681417c32330e338c1e8709fef24fe - -@ gnome-mime-data -sdesc: "Base set of file types and applications for Gnome2" -ldesc: "This module contains the base MIME and Application database for -GNOME. It is meant to be accessed through the MIME functions in GnomeVFS." -category: Utils -version: 2.4.1-1 -install: release/GNOME/gnome-mime-data/gnome-mime-data-2.4.1-1.tar.bz2 392361 061fc916516efd1d1728f27580cb3c1b -source: release/GNOME/gnome-mime-data/gnome-mime-data-2.4.1-1-src.tar.bz2 660958 bf5fe797f445f1740affab07a18cdb57 - -@ gnome-vfs2 -sdesc: "GNOME Virtual File System" -ldesc: "This is the GNOME Virtual File System." -category: Gnome -requires: cygwin GConf2 glib2-runtime libbonobo2 libbz2_1 libiconv2 libintl3 libxml2 openssl ORBit2 zlib shared-mime-info gnome-mime-data -version: 2.8.0-1 -install: release/GNOME/gnome-vfs2/gnome-vfs2-2.8.0-1.tar.bz2 1001480 bb57f3123fab1b3e4c02acb337cd9f13 -source: release/GNOME/gnome-vfs2/gnome-vfs2-2.8.0-1-src.tar.bz2 2021063 f565e2635811e9b5f565a2788286a62b - -@ gnugo -sdesc: "A program that plays the ancient game of Go" -ldesc: "A program that plays the ancient game of Go -Gnu Go can be used as is through an ascii interface. -Much nicer is a GUI. See the Gnu Go website -http://www.fsf.org/software/gnugo/ for more information." -category: Games -requires: libncurses7 cygwin -version: 3.4-1 -install: release/gnugo/gnugo-3.4-1.tar.bz2 822867 9b3f78e435c3ad9e3d621bf43d2e2ebb -source: release/gnugo/gnugo-3.4-1-src.tar.bz2 2350063 bfbb0d2ea5f3382ae86dafbf7820fea4 -[prev] -version: 3.2-1 -install: release/gnugo/gnugo-3.2-1.tar.bz2 1696424 430c4da2a866b0034cee39101cc29dc7 -source: release/gnugo/gnugo-3.2-1-src.tar.bz2 2026338 46ebd52ebafbd8b7171f66f6b9422c19 - -@ gnupg -sdesc: "GNU's tool for secure communication and data storage" -ldesc: "GNU Privacy Guard is GNU's tool for secure communication and data -storage. It can be used to encrypt data and to create digital signatures. -GnuPG is a complete and free replacement for PGP. It includes an advanced -key management facility and is compliant with the proposed OpenPGP -Internet standard as described in RFC 2440." -category: Utils -requires: cygwin libintl2 libiconv2 zlib _update-info-dir -version: 1.2.4-1 -install: release/gnupg/gnupg-1.2.4-1.tar.bz2 1069953 3dbda86bf20b3965e70e2d6bab47f3c9 -source: release/gnupg/gnupg-1.2.4-1-src.tar.bz2 2419600 4de8131f05fc2c7b53a58b2c49bdc44c -[prev] -version: 1.2.2-3 -install: release/gnupg/gnupg-1.2.2-3.tar.bz2 985280 dd913d7652807e0b72c1229bd5ad282f -source: release/gnupg/gnupg-1.2.2-3-src.tar.bz2 3261728 100770ae4a9b443108902e373ccee55a - -@ gnuplot -sdesc: "A command-line driven interactive function plotting utility." -ldesc: "Gnuplot is a command-line driven interactive function plotting utility -for UNIX, MSDOS, VMS, and many other platforms. The software is copyrighted -but freely distributed (i.e., you don't have to pay for it). It was -originally intended as graphical program which would allow scientists -and students to visualize mathematical functions and data. Gnuplot -supports many different types of terminals, plotters, and printers -(including many color devices, and pseudo-devices like LaTeX) and is -easily extensible to include new devices. [ The 'GNU' in gnuplot is -NOT related to the Free Software Foundation, the naming is just a -coincidence (and a long story; see the gnuplot FAQ for details). Thus -gnuplot is not covered by the Gnu copyleft, but rather by its own -copyright statement, included in all source code files.] - -Gnuplot handles both curves (2 dimensions) and surfaces (3 -dimensions). Surfaces can be plotted as a mesh fitting the specified -function, floating in the 3-d coordinate space, or as a contour plot -on the x-y plane. For 2-d plots, there are also many plot styles, -including lines, points, lines with points, error bars, and impulses -(crude bar graphs). Graphs may be labeled with arbitrary labels and -arrows, axes labels, a title, date and time, and a key. The interface -includes command-line editing and history on most platforms." -category: Graphics Math -requires: cygwin libfreetype26 libgd2 libiconv2 libjpeg62 libncurses7 libpng12 libreadline5 xorg-x11-bin-dlls zlib _update-info-dir -version: 4.0.0-1 -install: release/X11/gnuplot/gnuplot-4.0.0-1.tar.bz2 2147142 988ebbf4c8032d44b1bf88fbd8d70bec -source: release/X11/gnuplot/gnuplot-4.0.0-1-src.tar.bz2 2176838 87ead2e9cc96bda37ace5dea1c00e69b -[prev] -version: 3.8j.0-1 -install: release/X11/gnuplot/gnuplot-3.8j.0-1.tar.bz2 1985300 6a8bbc8c75512d2153575db4aa64cf4d -source: release/X11/gnuplot/gnuplot-3.8j.0-1-src.tar.bz2 2089306 ae87ebbb13ae913c05ea3ea6816347d5 - -@ gperf -sdesc: "Perfect hash function generator" -category: Devel -requires: cygwin _update-info-dir -version: 2.7.2-1 -install: release/gperf/gperf-2.7.2-1.tar.bz2 73060 c6e5b5f785f010020e574107f74fb8f5 -source: release/gperf/gperf-2.7.2-1-src.tar.bz2 336957 303f038b5a2458c1a24f522601fec9ee -[prev] -install: release/gperf/gperf.tar.gz 47317 f481bd1797e141b5fca7ed9f94e96d0c -source: release/gperf/gperf-src.tar.gz 371658 2e8d981884d9edc460e9f91a91bd0443 - -@ grace -sdesc: "A WYSIWYG 2D plotting tool for the X Window System and M*tif." -ldesc: "Grace is a WYSIWYG tool to make two-dimensional plots of numerical data. -It runs under various (if not all) flavors of Unix with X11 and M*tif -(LessTif or Motif). Its capabilities are roughly similar to GUI-based -programs like Sigmaplot or Microcal Origin plus script-based tools like -Gnuplot or Genplot. Its strength lies in the fact that it combines the -convenience of a graphical user interface with the power of a scripting -language which enables it to do sophisticated calculations or perform -automated tasks." -category: X11 -requires: cygwin xorg-x11-base lesstif jpeg libpng12 XmHTML -version: 5.1.17-1 -install: release/grace/grace-5.1.17-1.tar.bz2 1544511 fe69c0397cf6503499fc76ea06162ebb -source: release/grace/grace-5.1.17-1-src.tar.bz2 2413584 71283842bdd88d94e528e59b67aee313 -[prev] -version: 5.1.14-2 -install: release/grace/grace-5.1.14-2.tar.bz2 1568578 338009202aff64c26f5d693b3906562b -source: release/grace/grace-5.1.14-2-src.tar.bz2 2451065 a0b82b9d86a65478c605c18a2d7a4b41 - -@ grep -sdesc: "Search and print textual input for lines which match a specified pattern" -ldesc: "The GNU versions of commonly used grep utilities. Grep searches -through textual input for lines which contain a match to a specified -pattern and then prints the matching lines. GNU's grep utilities -include grep, egrep and fgrep." -category: Base -requires: ash cygwin libintl1 libpcre -version: 2.5-1 -install: release/grep/grep-2.5-1.tar.bz2 112224 176cbc3c4dd881448b157ba42e028a3e -source: release/grep/grep-2.5-1-src.tar.bz2 589624 1b714ce207cd4d5637548da21fb9714e - -@ groff -sdesc: "GNU troff text-formatting system" -category: Text -requires: cygwin -version: 1.18.1-2 -install: release/groff/groff-1.18.1-2.tar.bz2 2038272 8057800c9d7903ac54520db80a322ad7 -source: release/groff/groff-1.18.1-2-src.tar.bz2 1834592 f31c2ed66b0e8e6fc9f034a009dfcc54 -[prev] -version: 1.17.2-1 -install: release/groff/groff-1.17.2-1.tar.bz2 947986 a140c6c7b42b456dfe06b7626d47264b -source: release/groff/groff-1.17.2-1-src.tar.bz2 1243695 a2fb147eada5be6889775e679f752d16 - -@ gsl -sdesc: "The GNU Scientific Library" -ldesc: "the GNU Scientific Library, a collection of numerical -routines for scientific computing." -category: Libs -requires: cygwin -version: 1.5-1 -install: release/gsl/gsl-1.5-1.tar.bz2 1513470 60c205db6d59ae141490292c13b05f3e -source: release/gsl/gsl-1.5-1-src.tar.bz2 2550074 b4089883b7c047cf4ec36fe5d1052f2b -[prev] -version: 1.4-2 -install: release/gsl/gsl-1.4-2.tar.bz2 3006685 297216270b3f51b3c066353d48bd729c -source: release/gsl/gsl-1.4-2-src.tar.bz2 2217845 89ad8843aff19c2e50a8902051ed07bf - -@ gtk+ -sdesc: "Gimp Toolkit GUI library" -ldesc: "GTK+, which stands for the Gimp ToolKit, is a library for -creating graphical user interfaces for the X Window System. It is -designed to be small, efficient, and flexible. GTK+ is written in C -with a very object-oriented approach." -category: Libs X11 -requires: cygwin glib libiconv2 libintl3 xorg-x11-base -version: 1.2.10-2 -install: release/gtk+/gtk+-1.2.10-2.tar.bz2 787985 ebb335753077eb63f5c48bb74df109b0 -source: release/gtk+/gtk+-1.2.10-2-src.tar.bz2 2381691 1b30078c2a5ad40e0b0d41d66e206334 -[prev] -version: 1.2.10-1 -install: release/gtk+/gtk+-1.2.10-1.tar.bz2 787770 12e55e7b8b04e7b6bb98b2bcf982b24e -source: release/gtk+/gtk+-1.2.10-1-src.tar.bz2 2381472 ee4369df07b3c6cea8b261c58fc6eb0b - -@ gtk+-devel -sdesc: "Gimp Toolkit GUI library (development files)" -ldesc: "GTK+, which stands for the Gimp ToolKit, is a library for -creating graphical user interfaces for the X Window System. It is -designed to be small, efficient, and flexible. GTK+ is written in C -with a very object-oriented approach." -category: Libs Devel X11 -requires: cygwin glib-devel libiconv gettext -version: 1.2.10-2 -install: release/gtk+/gtk+-devel/gtk+-devel-1.2.10-2.tar.bz2 200522 424d38b1f86959438b3c150e153b0c5c -source: release/gtk+/gtk+-1.2.10-2-src.tar.bz2 2381691 1b30078c2a5ad40e0b0d41d66e206334 -[prev] -version: 1.2.10-1 -install: release/gtk+/gtk+-devel/gtk+-devel-1.2.10-1.tar.bz2 200655 b7f3499e817d3e92b23b9a91c9586025 -source: release/gtk+/gtk+-1.2.10-1-src.tar.bz2 2381472 ee4369df07b3c6cea8b261c58fc6eb0b - -@ gtk-doc -sdesc: "GTK+ DocBook Documentation Generator" -ldesc: "GTK-Doc is used to document C code. It is typically used to -document the public API of libraries, such as the GTK+ and Gnome -libraries. But it can also be used to document application code." -category: Devel -requires: OpenSP openjade perl -version: 1.2-1 -install: release/gtk-doc/gtk-doc-1.2-1.tar.bz2 76786 f86eae723b3ccef9788e946263a04c47 -source: release/gtk-doc/gtk-doc-1.2-1-src.tar.bz2 146538 04b03b499f5b8f57aebdf06ccf9e3b05 - -@ gtk2-x11 -sdesc: "Multi-platform toolkit for creating graphical user interfaces" -ldesc: "Offering a complete set of widgets, GTK+ is suitable for -projects ranging from small one-off projects to complete application -suites." -category: Libs Devel Graphics -requires: gtk2-x11-runtime -version: 2.4.11-1 -install: release/gtk2-x11/gtk2-x11-2.4.11-1.tar.bz2 1738714 e2afd8de1463f6f3f9a9855ecd074c34 -source: release/gtk2-x11/gtk2-x11-2.4.11-1-src.tar.bz2 9506130 c6fa3e6196448ef1225e46b1d465b135 -[prev] -version: 2.4.4-1 -install: release/gtk2-x11/gtk2-x11-2.4.4-1.tar.bz2 1635279 c847dc7f9f954e979b9728108bf1c626 -source: release/gtk2-x11/gtk2-x11-2.4.4-1-src.tar.bz2 9491365 0953ea7fad1e7a0772851de05c9c5da4 - -@ gtk2-x11-devel -sdesc: "Support files, import library and headers for gtk2" -ldesc: "support files, import library and headers for gtk2, -see main package for detailed description." -category: Libs Devel Graphics -requires: gtk2-x11-runtime -version: 2.4.11-1 -install: release/gtk2-x11/gtk2-x11-devel/gtk2-x11-devel-2.4.11-1.tar.bz2 406217 386451eb9a80d1502107687f4834eb5d -source: release/gtk2-x11/gtk2-x11-2.4.11-1-src.tar.bz2 9506130 c6fa3e6196448ef1225e46b1d465b135 -[prev] -version: 2.4.4-1 -install: release/gtk2-x11/gtk2-x11-devel/gtk2-x11-devel-2.4.4-1.tar.bz2 405018 8c58ad37d87541468385fd19bd20acb4 -source: release/gtk2-x11/gtk2-x11-2.4.4-1-src.tar.bz2 9491365 0953ea7fad1e7a0772851de05c9c5da4 - -@ gtk2-x11-doc -sdesc: "Documentation and manpages for gtk2" -ldesc: "documentation and manpages for gtk2, -see main package for detailed description." -category: Libs Devel Graphics -version: 2.4.11-1 -install: release/gtk2-x11/gtk2-x11-doc/gtk2-x11-doc-2.4.11-1.tar.bz2 962257 a51756fa0fd9e874181d9e16d52551e4 -source: release/gtk2-x11/gtk2-x11-2.4.11-1-src.tar.bz2 9506130 c6fa3e6196448ef1225e46b1d465b135 -[prev] -version: 2.4.4-1 -install: release/gtk2-x11/gtk2-x11-doc/gtk2-x11-doc-2.4.4-1.tar.bz2 961331 df722e702c72b03be0359af92f4cd4b5 -source: release/gtk2-x11/gtk2-x11-2.4.4-1-src.tar.bz2 9491365 0953ea7fad1e7a0772851de05c9c5da4 - -@ gtk2-x11-runtime -sdesc: "Multi-platform toolkit for creating graphical user interfaces" -ldesc: "multi-platform toolkit for creating graphical user interfaces, -see main package for detailed description." -category: Libs Devel Graphics -requires: cygwin libjpeg62 libtiff4 libpng12 atk libfontconfig1 libiconv2 libintl3 glib2 pango xorg-x11-bin-dlls gtk2-x11 -version: 2.4.11-1 -install: release/gtk2-x11/gtk2-x11-runtime/gtk2-x11-runtime-2.4.11-1.tar.bz2 1328910 cf8104dbd60eeac079037aaedc2ce7c6 -source: release/gtk2-x11/gtk2-x11-2.4.11-1-src.tar.bz2 9506130 c6fa3e6196448ef1225e46b1d465b135 -[prev] -version: 2.4.4-1 -install: release/gtk2-x11/gtk2-x11-runtime/gtk2-x11-runtime-2.4.4-1.tar.bz2 1261929 06ba8555502140e2d51dcf9471b35b17 -source: release/gtk2-x11/gtk2-x11-2.4.4-1-src.tar.bz2 9491365 0953ea7fad1e7a0772851de05c9c5da4 - -@ gtypist -sdesc: "GNU Typist" -ldesc: "GNU Typist is a typing tutor with several lessons for different -keyboards and languages. Includes typefortune, a perl script for -writing new lessons, and an emacs major-mode." -category: Text -requires: cygwin libncurses7 libintl2 libiconv2 perl -version: 2.7-2 -install: release/gtypist/gtypist-2.7-2.tar.bz2 535502 fb7dc9673ab702b424c0962e28ea1118 -source: release/gtypist/gtypist-2.7-2-src.tar.bz2 826972 ef50e8b8111f74906199b4e9825c136d -[prev] -version: 2.7-1 -install: release/gtypist/gtypist-2.7-1.tar.bz2 1222526 46cfa617663f0a9c185e5297f47c910d -source: release/gtypist/gtypist-2.7-1-src.tar.bz2 826291 35bf4b08221329e51647579ab6581f06 - -@ guile -sdesc: "The GNU extension language and Scheme interpreter (executable)" -ldesc: "The GNU extension language and Scheme interpreter (executable) -Guile, the GNU Ubiquitous Intelligent Language for Extension, is a scheme -implementation designed for real world programming, supporting a -rich Unix interface, a module system, and undergoing rapid development. - -`guile' is a scheme interpreter that can execute scheme scripts (with a -#! line at the top of the file), or run as an inferior scheme -process inside Emacs." -category: Interpreters -requires: cygwin libguile16 libguile12 libncurses7 libreadline5 -version: 1.6.5-1 -install: release/guile/guile-1.6.5-1.tar.bz2 117857 88d79a52c3a360a8b9421cf488c359eb -source: release/guile/guile-1.6.5-1-src.tar.bz2 2756369 03fe6cd399f0732ddf7e870858dd5915 -[prev] -version: 1.6.4-12 -install: release/guile/guile-1.6.4-12.tar.bz2 115350 074158dd7973681c3459908d96f63af2 -source: release/guile/guile-1.6.4-12-src.tar.bz2 2603803 dd4a79939ccd8d785a21042560115950 -[test] -version: 1.7.1.20041006-1 -install: release/guile/guile-1.7.1.20041006-1.tar.bz2 139432 64e55b171ead3ac0972d8b09bcd1ff11 -source: release/guile/guile-1.7.1.20041006-1-src.tar.bz2 2830407 c0b1f79ca3956a43272cb939fa877c99 - -@ guile-devel -sdesc: "Development headers and static libraries for Guile." -ldesc: "Development headers and static libraries for Guile. -`libguile.h' etc. C headers, aclocal macros, the `guile-snarf' and -`guile-config' utilities, and static `libguile.a' libraries for Guile, -the GNU Ubiquitous Intelligent Language for Extension." -category: Devel Libs -requires: cygwin guile libguile16 libguile12 -version: 1.6.5-1 -install: release/guile/guile-devel/guile-devel-1.6.5-1.tar.bz2 442303 27a3a5114fcacdb76a86f495ef141220 -source: release/guile/guile-1.6.5-1-src.tar.bz2 2756369 03fe6cd399f0732ddf7e870858dd5915 -[prev] -version: 1.6.4-12 -install: release/guile/guile-devel/guile-devel-1.6.4-12.tar.bz2 435649 48c5604b2e141c66bd19617b38932b9a -source: release/guile/guile-1.6.4-12-src.tar.bz2 2603803 dd4a79939ccd8d785a21042560115950 -[test] -version: 1.7.1.20041006-1 -install: release/guile/guile-devel/guile-devel-1.7.1.20041006-1.tar.bz2 481967 2439a823c430fa0eea0ac05987ba9f84 -source: release/guile/guile-1.7.1.20041006-1-src.tar.bz2 2830407 c0b1f79ca3956a43272cb939fa877c99 - -@ guile-doc -sdesc: "The GNU extension language and Scheme interpreter (documentation)" -ldesc: "The GNU extension language and Scheme interpreter (documentation) -This package contains the documentation for guile, including both -a reference manual (via `info guile'), and a tutorial (via `info -guile-tut')." -category: Doc -requires: texinfo -version: 1.6.5-1 -install: release/guile/guile-doc/guile-doc-1.6.5-1.tar.bz2 327229 ae34241c42798dbd999684f36f89edef -source: release/guile/guile-1.6.5-1-src.tar.bz2 2756369 03fe6cd399f0732ddf7e870858dd5915 -[prev] -version: 1.6.4-12 -install: release/guile/guile-doc/guile-doc-1.6.4-12.tar.bz2 321211 a3a67d3573e701b4027ee2885c209799 -source: release/guile/guile-1.6.4-12-src.tar.bz2 2603803 dd4a79939ccd8d785a21042560115950 -[test] -version: 1.7.1.20041006-1 -install: release/guile/guile-doc/guile-doc-1.7.1.20041006-1.tar.bz2 380533 81eb43c66de72df55195806de29aeb1c -source: release/guile/guile-1.7.1.20041006-1-src.tar.bz2 2830407 c0b1f79ca3956a43272cb939fa877c99 - -@ gv -sdesc: "A PostScript and PDF viewer for X using 3d Athena Widgets" -ldesc: "`gv' is a comfortable viewer of PostScript and PDF files for the X Window System. -It uses the `ghostscript' PostScript(tm) interpreter and is based on the classic X front-end -for `gs', `ghostview'. It is more comfortable and more powerful than `ghostview'." -category: X11 Text Graphics -requires: cygwin ghostscript-x11 xorg-x11-base Xaw3d -version: 3.5.8-2 -install: release/X11/gv/gv-3.5.8-2.tar.bz2 237619 a6cb37ddbeaa1cec5a81ce3abfd2cb7a -source: release/X11/gv/gv-3.5.8-2-src.tar.bz2 380413 5ad8aaa770a69bce289b69c0f9851404 -[prev] -version: 3.5.8-1 -install: release/X11/gv/gv-3.5.8-1.tar.bz2 238029 0c47a6e5bead2f82e0c89b55898a5cfd -source: release/X11/gv/gv-3.5.8-1-src.tar.bz2 377953 02202a723caaada469699a475cc55e4b - -@ gzip -sdesc: "The GNU compression utility" -category: Base -requires: cygwin -version: 1.3.5-1 -install: release/gzip/gzip-1.3.5-1.tar.bz2 55079 0cb2430725cec6ca6086f996a271bac1 -source: release/gzip/gzip-1.3.5-1-src.tar.bz2 282798 177ab474ebc907b721517c7cdd708431 -[prev] -version: 1.3.3-4 -install: release/gzip/gzip-1.3.3-4.tar.bz2 47128 e10d27aaad29cda64bebb5c7c227fd85 -source: release/gzip/gzip-1.3.3-4-src.tar.bz2 267901 f0bf01e6b7953a405d6a02af43e5c909 - -@ help2man -sdesc: "Creates man pages from program output" -ldesc: "Perl script that automatically creates man pages from the output -from a program's --help and --version options." -category: Devel -requires: perl -version: 1.33.1-1 -install: release/help2man/help2man-1.33.1-1.tar.bz2 23294 0fe76695b9d368d72871dd0978e8024a -source: release/help2man/help2man-1.33.1-1-src.tar.bz2 68192 0b184f0b82b060938e55c75e5e4caa89 - -@ hicolor-icon-theme -sdesc: "Freedesktop.org icon theme spec" -ldesc: "This is the default fallback theme used by implementations of -the icon theme specification." -category: X11 -version: 0.5-1 -install: release/GNOME/hicolor-icon-theme/hicolor-icon-theme-0.5-1.tar.bz2 9737 948a9fce24eb06f93504cfec3cd7af93 -source: release/GNOME/hicolor-icon-theme/hicolor-icon-theme-0.5-1-src.tar.bz2 33388 513625dd597972d498557428d2e98bd7 - -@ indent -sdesc: "A C language source code beautifier" -ldesc: "indent changes the appearance of a C program by -inserting or deleting whitespace according to a plethora -of options." -category: Devel -requires: cygwin -version: 2.2.9-1 -install: release/indent/indent-2.2.9-1.tar.bz2 102058 c0c2e08546f49b794f6e330fa69263f7 -source: release/indent/indent-2.2.9-1-src.tar.bz2 795371 1dfa27bd36c93dcba3030feea841fd85 -[prev] -version: 2.2.8-1 -install: release/indent/indent-2.2.8-1.tar.bz2 96568 f6e25f3f807bee646856bd9755580597 -source: release/indent/indent-2.2.8-1-src.tar.bz2 604904 c0b5df79506ebc4eef9ac5949b178648 - -@ inetutils -sdesc: "Common networking utilities and servers" -category: Net -requires: cygwin terminfo -version: 1.3.2-28 -install: release/inetutils/inetutils-1.3.2-28.tar.bz2 243141 dfdaddafa8dab685928e556635a17ad8 -source: release/inetutils/inetutils-1.3.2-28-src.tar.bz2 377768 69adf4ef3453c8fed930e23c01324034 -[prev] -version: 1.3.2-27 -install: release/inetutils/inetutils-1.3.2-27.tar.bz2 242544 c6b6f9b6f66c978391558a35b9b23201 -source: release/inetutils/inetutils-1.3.2-27-src.tar.bz2 377890 d840943ef24cc1941595ea5b3f14a394 - -@ initscripts -sdesc: "A System-V-like collection of system initialization scripts" -category: System -requires: bash sysvinit -version: 0.9-1 -install: release/initscripts/initscripts-0.9-1.tar.bz2 7028 b42404409a65444e699b10f9669d8ea5 - -@ intltool -sdesc: "Helper tool for building GLib/GTK+/GNOME applications" -ldesc: "The intltool package has a script, intltoolize, which -copies the various scripts and does the other magic to your -module. So users building from tarballs don't need intltool, -only folks building from cvs." -category: Devel -requires: cygwin perl -version: 0.31.2-1 -install: release/intltool/intltool-0.31.2-1.tar.bz2 77986 569004360f4310c171da734168bd8be2 -source: release/intltool/intltool-0.31.2-1-src.tar.bz2 131530 cfa4e99d430a23c9990abb0563bc40e0 -[prev] -version: 0.31-1 -install: release/intltool/intltool-0.31-1.tar.bz2 77516 7e3696ada08748f8f518603c5380db2c -source: release/intltool/intltool-0.31-1-src.tar.bz2 167374 fcf5858afa6e47e116900f09171bbf58 - -@ ioperm -sdesc: "Support for ioperm()/iopl() functions" -ldesc: "This package adds support for ioperm()/iopl() functions to Cygwin. -This support includes sys/io.h and sys/perm.h header files together -with development and runtime libraries." -category: Devel Libs System -requires: cygwin libpopt0 -version: 0.4-1 -install: release/ioperm/ioperm-0.4-1.tar.bz2 112833 798e3095c3c04b3fd3824845f2192819 -source: release/ioperm/ioperm-0.4-1-src.tar.bz2 203450 ce29c9fcd4479193d9ea97e67221f68c -[prev] -version: 0.3-1 -install: release/ioperm/ioperm-0.3-1.tar.bz2 111256 ef62f0e7d03d9b3ec279eeb10b7afe59 -source: release/ioperm/ioperm-0.3-1-src.tar.bz2 203638 aa0dae43d4e7654d69d689ee2a25ade6 - -@ irc -sdesc: "An Internet Relay Chat (IRC) client" -category: Net -requires: ash cygwin termcap -version: 20010101-3 -install: release/irc/irc-20010101-3.tar.bz2 526193 da416ca14f1d0b1700409af00bfb3d4b -source: release/irc/irc-20010101-3-src.tar.bz2 526467 f4943647e41395f45afba82c545f5da0 -[prev] -version: 20010101-2 -install: release/irc/irc-20010101-2.tar.bz2 308163 ee2587abcfda34030531da513c17c778 -source: release/irc/irc-20010101-2-src.tar.bz2 554086 c9d08cd07da865746ba79a2ce61b94a1 - -@ jasper -sdesc: "JPEG-2000 Library" -ldesc: "JasPer is the free (MIT license) software-based reference -implementation of the codec specified in the JPEG-2000 Part-1 standard -(i.e., ISO/IEC 15444-1)." -category: Graphics Libs -requires: cygwin libjpeg62 freeglut xorg-x11-bin-dlls -version: 1.701.0-1 -install: release/jasper/jasper-1.701.0-1.tar.bz2 659679 0dfbb4621b10b76380bd47b6e3380346 -source: release/jasper/jasper-1.701.0-1-src.tar.bz2 1556305 9f8b5b1cfa220f821e560f3c532275b6 - -@ jbigkit -sdesc: "Lossless image compression library" -ldesc: "JBIG is a highly effective lossless compression -algorithm for bi-level images (one bit per pixel), which -is particularly suitable for document pages." -category: Graphics Libs -requires: cygwin -version: 1.5-3 -install: release/jbigkit/jbigkit-1.5-3.tar.bz2 71655 ccccae3f820f0feceb83c8c174c57fc5 -source: release/jbigkit/jbigkit-1.5-3-src.tar.bz2 421122 871da054614b37789937856fb5b4bb99 -[prev] -version: 1.4-1 -install: release/jbigkit/jbigkit-1.4-1.tar.bz2 68415 3991c932c312251a5764d40e7c876ab9 -source: release/jbigkit/jbigkit-1.4-1-src.tar.bz2 342193 345f8ad784d1be0480c45c44258d34c9 - -@ jgraph -sdesc: "A Filter for Plotting Graphs in Postscript" -ldesc: "Jgraph takes a description of a graph or graphs and produces -a Postscript file on the standard output. -Jgraph is ideal for plotting any mixture of scatter point graphs, line -graphs, and/or bar graphs, and embedding the output into LaTeX, -or any other text processing system which can read Postscript. -The graph description language is simple enough to get nice looking -graphs with a minimum of effort, yet powerful enough to give the -user the flexibility to tailor the appearance of the graph to his or -her individual preferences. This includes plotting multiple graphs and -laying them out separately on the page (or pages)." -category: Publishing Graphics -requires: cygwin -version: 8.3-1 -install: release/jgraph/jgraph-8.3-1.tar.bz2 94573 c7d63e40b2ff0c55f40e5797d8f4de89 -source: release/jgraph/jgraph-8.3-1-src.tar.bz2 153931 612007504736109378106973b7447ac2 - -@ jpeg -sdesc: "A library for manipulating JPEG image format files" -ldesc: "The jpeg package contains a library of functions for manipulating -JPEG images, as well as simple client programs for accessing the -libjpeg functions. Libjpeg client programs include cjpeg, djpeg, -jpegtran, rdjpgcom and wrjpgcom. Cjpeg compresses an image file into -JPEG format. Djpeg decompresses a JPEG file into a regular image -file. Jpegtran can perform various useful transformations on JPEG -files. Rdjpgcom displays any text comments included in a JPEG file. -Wrjpgcom inserts text comments into a JPEG file." -category: Graphics Libs -requires: cygwin libjpeg62 libjpeg6b -version: 6b-11 -install: release/jpeg/jpeg-6b-11.tar.bz2 220626 d57ea473ef50c87136435088b63e18ca -source: release/jpeg/jpeg-6b-11-src.tar.bz2 832657 9d2e0aa2957108741c0147b1a1637c71 -[prev] -version: 6b-8 -install: release/jpeg/jpeg-6b-8.tar.bz2 208363 be9236b897e97a7794fba124de65c189 -source: release/jpeg/jpeg-6b-8-src.tar.bz2 821041 876ce66ca8023222b1058ddcb3b07a63 - -@ keychain -sdesc: "An OpenSSH key manager" -ldesc: "Keychain is an OpenSSH key manager, typically run from -~/.bash_profile. When run, it will make sure ssh-agent is running; if -not, it will start ssh-agent. It will redirect ssh-agent's output to -~/.ssh-agent, so that cron jobs that need to use ssh-agent keys can -simply source this file and make the necessary passwordless ssh -connections. In addition, when keychain runs, it will check with -ssh-agent and make sure that the ssh RSA/DSA keys that you specified on -the keychain command line have actually been added to ssh-agent. If not, -you are prompted for the appropriate passphrases so that they can be -added by keychain." -category: Utils -requires: openssh bash grep gawk sh-utils cygwin -version: 2.0.3-2 -install: release/keychain/keychain-2.0.3-2.tar.bz2 17114 451eacc3418a027f4b568f7ea83d32de -source: release/keychain/keychain-2.0.3-2-src.tar.bz2 21379 ccccb6685896b44ea5c09d137a12125e -[prev] -version: 1.9-1 -install: release/keychain/keychain-1.9-1.tar.bz2 7929 021c4d345ea4479b974cb8aff672b1d3 -source: release/keychain/keychain-1.9-1-src.tar.bz2 12542 0151937a3ae3665c7baec819440b436b - -@ lablgtk2 -sdesc: "OCaml interface to GTK2" -ldesc: "LablGTK2 is an Objective Caml interface to GTK2. It uses the rich -type system of Objective Caml 3 to provide a strongly typed object-oriented -interface to GTK2. All widgets but one are available, with almost all -their methods. Objective Caml threads are supported, including for the top -level, which allows for interactive use of the library." -category: Devel -requires: atk-runtime cygwin expat glib2-runtime gtk2-x11-runtime libXft2 libfontconfig1 libfreetype26 libiconv2 libintl3 libncurses7 ocaml pango-runtime xorg-x11-bin-dlls zlib -version: 2.4.0-2 -install: release/lablgtk2/lablgtk2-2.4.0-2.tar.bz2 1820780 13536c46320337b8b23404fa6f83bf0a -source: release/lablgtk2/lablgtk2-2.4.0-2-src.tar.bz2 650767 6f757bad57a7dea976421141670d3af3 -[prev] -version: 2.4.0-1 -install: release/lablgtk2/lablgtk2-2.4.0-1.tar.bz2 1820942 a4323b2563f62a818ec7bff0d642a7bd -source: release/lablgtk2/lablgtk2-2.4.0-1-src.tar.bz2 592306 e74e0ed16a92f8edd4f6df711e65e5d4 - -@ lcms -sdesc: "A small-footprint, speed optimized color management engine" -ldesc: "With a typical footprint of about 100K including C runtime, -you can color-enable your application without the pain of ActiveX, -OCX, redistributables or binaries of any kind." -category: Graphics Libs -requires: cygwin libjpeg62 libtiff4 zlib -version: 1.13-1 -install: release/lcms/lcms-1.13-1.tar.bz2 221508 c9ceff5ff1c11749f3de026b5a378e26 -source: release/lcms/lcms-1.13-1-src.tar.bz2 594729 eeafc2d5a232a95ce40b9d3a0c29b387 - -@ less -sdesc: "A file pager program, similar to more(1)" -ldesc: "The less utility is a text file browser that resembles more, but has -more capabilities. Less allows you to move backwards in the file as -well as forwards. Since less doesn't have to read the entire input file -before it starts, less starts up more quickly than text editors (for -example, vi). - -You should install less because it is a basic utility for viewing text -files, and you'll use it frequently." -category: Text -requires: cygwin termcap libpcre0 -version: 381-1 -install: release/less/less-381-1.tar.bz2 79922 579e715568b49a08a839df2e55c4943a -source: release/less/less-381-1-src.tar.bz2 213507 60461fe9244002113f2fa1eef5563df1 -[prev] -version: 378-1 -install: release/less/less-378-1.tar.bz2 75536 43b2e8a16a1892ab61a78ac719e23e1e -source: release/less/less-378-1-src.tar.bz2 194929 913e8467217fccbd4b9ffa87edcab7a0 - -@ lesstif -sdesc: "Lesstif" -ldesc: "LessTif is the Hungry Programmers' version of OSF/Motif. It -aims to be source compatible meaning that the same source code should -compile with both and work exactly the same! LessTif is ``free -software'': it is licensed under the GNU Library General Public License -(LGPL). " -category: X11 -requires: xorg-x11-base xorg-x11-bin-dlls -version: 0.93.94-2 -install: release/X11/lesstif/lesstif-0.93.94-2.tar.bz2 1917888 c0ee4c22d2237860f4a53b788898011b -source: release/X11/lesstif/lesstif-0.93.94-2-src.tar.bz2 3497788 54eb4b3e3d6dd4b12234e95595940165 -[prev] -version: 0.93.91-6 -install: release/X11/lesstif/lesstif-0.93.91-6.tar.bz2 1916149 696e04167d9bd8ce6b8b7def78982832 -source: release/X11/lesstif/lesstif-0.93.91-6-src.tar.bz2 2616020 b7493cf4c2979ec796b0488ff54a7218 -[test] -version: 0.93.96-2 -install: release/X11/lesstif/lesstif-0.93.96-2.tar.bz2 1954685 b7d3c36006d90a0d4d6625825cefc70a -source: release/X11/lesstif/lesstif-0.93.96-2-src.tar.bz2 2434584 11b19d61b14bbb8989356aecd96a0c35 - -@ lftp -sdesc: "An FTP client that supports sftp (fish protocol)" -ldesc: "A command line file transfer program. It supports ftp, -ftps, http, https, hftp, fish and file protocols. It also supports -tab-completion, command histories and more." -category: Net -requires: cygwin libreadline5 libncurses7 openssl fileutils libiconv2 libintl2 -version: 2.6.10-2 -install: release/lftp/lftp-2.6.10-2.tar.bz2 386500 2096bc21e8301269febaeb7ad68f06c1 -source: release/lftp/lftp-2.6.10-2-src.tar.bz2 1636212 0144943c534c0a5aec918af8688319ae -[prev] -version: 2.6.8-3 -install: release/lftp/lftp-2.6.8-3.tar.bz2 382499 0fd7b8844a19141f37921aa514e0a9d8 -source: release/lftp/lftp-2.6.8-3-src.tar.bz2 1634220 a60ea2032ba961600390865112769aeb - -@ libGraphicsMagick-devel -sdesc: "GraphicsMagick. (development)" -ldesc: "GraphicsMagick is a robust collection of tools and libraries -which support reading, writing, and manipulating an image in over 88 -major formats including popular formats like TIFF, JPEG, JPEG-2000, -PNG, PDF, PhotoCD, SVG, and GIF. GraphicsMagick supports creating new -images on the fly, making it suitable for building dynamic Web -applications. GraphicsMagick may be used to resize, rotate, sharpen, -color reduce, or add special effects to an image and save the result -in the same or differing image format. Image processing operations are -available from the command line, as well as through C, C++, Perl, -Java, or Windows COM programming interfaces. Extensions are available -from third-parties to support programming in Borland's Delphi, Java, -PHP, Python, Scheme, and Ruby." -category: Devel Libs -requires: bzip2 cygwin freetype2 jbigkit jpeg libbz2_1 libfreetype26 libiconv libiconv2 libjpeg62 libpng12 libpng12-devel libtiff4 libtiff-devel libxml2 xorg-x11-devel zlib libGraphicsMagick0 -version: 1.0.6-1 -install: release/GraphicsMagick/libGraphicsMagick-devel/libGraphicsMagick-devel-1.0.6-1.tar.bz2 1212135 a01b9ebb073d5c0e95316d3ccd55b844 -source: release/GraphicsMagick/GraphicsMagick-1.0.6-1-src.tar.bz2 3756399 bfd6f5862f2038b5f097e0b1fe6fe8ca - -@ libGraphicsMagick0 -sdesc: "GraphicsMagick. (runtime)" -ldesc: "GraphicsMagick is a robust collection of tools and libraries -which support reading, writing, and manipulating an image in over 88 -major formats including popular formats like TIFF, JPEG, JPEG-2000, -PNG, PDF, PhotoCD, SVG, and GIF. GraphicsMagick supports creating new -images on the fly, making it suitable for building dynamic Web -applications. GraphicsMagick may be used to resize, rotate, sharpen, -color reduce, or add special effects to an image and save the result -in the same or differing image format. Image processing operations are -available from the command line, as well as through C, C++, Perl, -Java, or Windows COM programming interfaces. Extensions are available -from third-parties to support programming in Borland's Delphi, Java, -PHP, Python, Scheme, and Ruby." -category: Libs -requires: cygwin jbigkit libbz2_1 libfreetype26 libiconv2 libjpeg62 libpng12 libtiff4 libxml2 xorg-x11-bin-dlls zlib -version: 1.0.6-1 -install: release/GraphicsMagick/libGraphicsMagick0/libGraphicsMagick0-1.0.6-1.tar.bz2 990082 1fc55fdb1223a9b52b123c368f291125 -source: release/GraphicsMagick/GraphicsMagick-1.0.6-1-src.tar.bz2 3756399 bfd6f5862f2038b5f097e0b1fe6fe8ca - -@ libIDL -sdesc: "CORBA Interface Definition Language file library" -ldesc: "libIDL is a library licensed under the GNU LGPL for creating -trees of CORBA Interface Definition Language (IDL) files, which is a -specification for defining portable interfaces. libIDL was initially -written for ORBit (the ORB from the GNOME project, and the primary -means of libIDL distribution). However, the functionality was -designed to be as reusable and portable as possible." -category: Libs Devel -requires: cygwin glib2 libiconv2 libintl3 -version: 0.8.3-2 -install: release/libIDL/libIDL-0.8.3-2.tar.bz2 105951 98fb017232f2f5ea528137b7d87c3b5d -source: release/libIDL/libIDL-0.8.3-2-src.tar.bz2 478206 fa1583046a26d70b2f225451d3a36997 -[prev] -version: 0.8.3-1 -install: release/libIDL/libIDL-0.8.3-1.tar.bz2 103619 47c4015ce795b1690a694fa3ac62b702 -source: release/libIDL/libIDL-0.8.3-1-src.tar.bz2 413590 056fa64cd0a2923919f20297aaa18746 - -@ libMagick-devel -sdesc: "ImageMagick. (development)" -ldesc: "ImageMagick is a robust collection of tools and libraries -offered under a usage license to read, write, and manipulate an image -in many image formats (over 89 major formats) including popular -formats like TIFF, JPEG, PNG, PDF, PhotoCD, and GIF." -category: Devel Libs -requires: bzip2 cygwin freetype2 jasper jbigkit jpeg lcms libbz2_1 libfpx libfreetype26 libiconv libiconv2 libjpeg62 libpng12 libpng12-devel libtiff4 libtiff-devel libxml2 xorg-x11-devel zlib libMagick6 -version: 6.0.4-1 -install: release/ImageMagick/libMagick-devel/libMagick-devel-6.0.4-1.tar.bz2 1499332 fffd7a1bbc58d328f78b09acfdf76ad9 -source: release/ImageMagick/ImageMagick-6.0.4-1-src.tar.bz2 5774156 4d711fce924a9d47e2f273690ebac6c7 - -@ libMagick6 -sdesc: "ImageMagick. (runtime)" -ldesc: "ImageMagick is a robust collection of tools and libraries -offered under a usage license to read, write, and manipulate an image -in many image formats (over 89 major formats) including popular -formats like TIFF, JPEG, PNG, PDF, PhotoCD, and GIF." -category: Libs -requires: cygwin jasper jbigkit lcms libbz2_1 libfpx libfreetype26 libiconv2 libjpeg62 libpng12 libtiff4 libxml2 xorg-x11-bin-dlls zlib -version: 6.0.4-1 -install: release/ImageMagick/libMagick6/libMagick6-6.0.4-1.tar.bz2 1194434 8362df33eedf230c4e7d36202c58782c -source: release/ImageMagick/ImageMagick-6.0.4-1-src.tar.bz2 5774156 4d711fce924a9d47e2f273690ebac6c7 - -@ libXft -sdesc: "Provides a client-side font API for X applications. (main package)" -category: Libs -requires: cygwin libXft2 freetype2 fontconfig expat zlib xorg-x11-bin -version: 2.1.6-1 -install: release/X11/libXft/libXft-2.1.6-1.tar.bz2 4310 001de2f0926b581d90982fac7e33889c -source: release/X11/libXft/libXft-2.1.6-1-src.tar.bz2 240913 e2e7c1cd332a9a6e969b518076b75e33 - -@ libXft-devel -sdesc: "Provides a client-side font API for X applications. (development)" -category: Devel Libs -requires: cygwin libXft2 libfreetype2-devel libfontconfig-devel expat zlib xorg-x11-devel -version: 2.1.6-1 -install: release/X11/libXft/libXft-devel/libXft-devel-2.1.6-1.tar.bz2 39963 73d87ca4743ddd331eb5ebcad26eb3f5 -source: release/X11/libXft/libXft-2.1.6-1-src.tar.bz2 240913 e2e7c1cd332a9a6e969b518076b75e33 - -@ libXft1 -sdesc: "Provides a client-side font API for X applications. (runtime)" -category: Libs -requires: cygwin freetype2 fontconfig expat zlib xorg-x11-bin -version: 1.0.0-1 -install: release/X11/libXft/libXft1/libXft1-1.0.0-1.tar.bz2 26854 f7f85f608016fb6fc6f6bf5cd8633d88 - -@ libXft2 -sdesc: "Provides a client-side font API for X applications. (runtime)" -category: Libs -requires: cygwin freetype2 fontconfig expat zlib xorg-x11-bin -version: 2.1.6-1 -install: release/X11/libXft/libXft2/libXft2-2.1.6-1.tar.bz2 30329 45c755c958acb8e30469ca5bfd2cd904 -source: release/X11/libXft/libXft-2.1.6-1-src.tar.bz2 240913 e2e7c1cd332a9a6e969b518076b75e33 - -@ libapr0 -sdesc: "The Apache Portable Runtime (runtime package)" -ldesc: "The mission of the Apache Portable Runtime (APR) project is to create -and maintain software libraries that provide a predictable and consistent -interface to underlying platform-specific implementations. - -This is the core library of this system." -category: Libs -requires: cygwin -version: 0.9.5_2.0.52-1 -install: release/apr/libapr0/libapr0-0.9.5_2.0.52-1.tar.bz2 45096 4d684c412f867f2d8a9d847b29b339cc -source: release/apr/apr-0.9.5_2.0.52-1-src.tar.bz2 853475 4274d5d4ed7754502438f15f0d2f56dc -[prev] -version: 0.9.5pre20040608-1 -install: release/apr/libapr0/libapr0-0.9.5pre20040608-1.tar.bz2 43936 18a6d962912e858c46165e5b20d73b16 -source: release/apr/apr-0.9.5pre20040608-1-src.tar.bz2 850515 07b69b254366c1b805f1ed159a56f52e - -@ libaprutil0 -sdesc: "Additional utility library for use with the Apache Portable Runtime (runtime package)" -ldesc: "The mission of the Apache Portable Runtime (APR) project is to create -and maintain software libraries that provide a predictable and consistent -interface to underlying platform-specific implementations. - -This is APR-Util, an addon library which provides miscellaneous additional -utility functionality." -category: Libs -requires: cygwin libapr0 expat libiconv2 libdb4.2 libgdbm4 -version: 0.9.5_2.0.52-1 -install: release/apr-util/libaprutil0/libaprutil0-0.9.5_2.0.52-1.tar.bz2 31597 751b26bb2811fd56567af7b1284022a9 -source: release/apr-util/apr-util-0.9.5_2.0.52-1-src.tar.bz2 462995 43d49430b67d983decd68de3ea2df280 -[prev] -version: 0.9.5pre20040608-1 -install: release/apr-util/libaprutil0/libaprutil0-0.9.5pre20040608-1.tar.bz2 31501 d920a0ea32a6fe937dfadd8892747947 -source: release/apr-util/apr-util-0.9.5pre20040608-1-src.tar.bz2 460182 a0624c21725ecabbdd733aa59062af75 - -@ libart_lgpl -sdesc: "Library for high-performance 2D graphics" -ldesc: "Libart is a library for high-performance 2D graphics. It is -currently being used as the antialiased rendering engine for the -Gnome Canvas. It is also the rendering engine for Gill, the Gnome -Illustration app. - -Libart is free software (all components are either GPL or LGPL). -Libart is also available for commercial licensing. Raph Levien owns -the copyright to the libart code base, his website is -http://www.levien.com/libart/. - -Libart supports a very powerful imaging model, basically the same as -SVG and the Java 2D API. It includes all PostScript imaging -operations, and adds antialiasing and alpha-transparency. - -Libart is also highly tuned for incremental rendering. It contains -data structures and algorithms suited to rapid, precise computation -of Region of Interest, as well as a two-phase rendering pipeline -optimized for interactive display." -category: Graphics Libs -requires: cygwin -version: 2.3.16-1 -install: release/libart_lgpl/libart_lgpl-2.3.16-1.tar.bz2 93433 3fa21c278855e0887abe70adab44e327 -source: release/libart_lgpl/libart_lgpl-2.3.16-1-src.tar.bz2 367537 9893329450809b46ba8fdeea492ae420 - -@ libaspell15 -sdesc: "Shared library for use by the aspell program." -ldesc: "Aspell is a powerful spell checker designed to replace ispell. -The current version is derived from the combination of pspell and older -aspell versions." -category: Text -requires: cygwin -version: 0.50.3-1 -install: release/aspell/libaspell15/libaspell15-0.50.3-1.tar.bz2 295082 39f04f39b8fa9691fe738b7fa7ea1ebd -source: release/aspell/aspell-0.50.3-1-src.tar.bz2 949608 b737cb307f70ab413e03232fb913e3cf - -@ libaudiofile-devel -sdesc: "Digital audio file library (development files)" -ldesc: "The Audio File Library provides a uniform programming interface -to standard digital audio file formats. - -This library allows the processing of audio data to and from audio -files of many common formats (currently AIFF, AIFF-C, WAVE, NeXT/Sun -.snd/.au, IRCAM, AVR, Amiga IFF/8SVX, and NIST SPHERE). The library -also supports compression (currently G.711 mu-law and A-law and IMA and -MS ADPCM) as well as PCM formats of all flavors (signed and unsigned -integer, single- and double-precision floating point)." -category: Libs Devel -requires: cygwin -version: 0.2.6-2 -install: release/audiofile/libaudiofile-devel/libaudiofile-devel-0.2.6-2.tar.bz2 23395 c868ce73fed816b04b2e9618d8fe9840 -source: release/audiofile/audiofile-0.2.6-2-src.tar.bz2 501056 2ec42a8b3cbb25dc22691db2b6d897ed -[prev] -version: 0.2.6-1 -install: release/audiofile/libaudiofile-devel/libaudiofile-devel-0.2.6-1.tar.bz2 87817 5c15564081978337961c01521ff19493 -source: release/audiofile/audiofile-0.2.6-1-src.tar.bz2 500790 5eee40a488638560a5dfbcb4f5984b97 - -@ libaudiofile0 -sdesc: "Digital audio file library (runtime library)" -ldesc: "The Audio File Library provides a uniform programming interface -to standard digital audio file formats. - -This library allows the processing of audio data to and from audio -files of many common formats (currently AIFF, AIFF-C, WAVE, NeXT/Sun -.snd/.au, IRCAM, AVR, Amiga IFF/8SVX, and NIST SPHERE). The library -also supports compression (currently G.711 mu-law and A-law and IMA and -MS ADPCM) as well as PCM formats of all flavors (signed and unsigned -integer, single- and double-precision floating point)." -category: Libs -requires: cygwin -version: 0.2.6-2 -install: release/audiofile/libaudiofile0/libaudiofile0-0.2.6-2.tar.bz2 58049 e66ca1f61ffa8401bbe62bcea7be2c94 -source: release/audiofile/audiofile-0.2.6-2-src.tar.bz2 501056 2ec42a8b3cbb25dc22691db2b6d897ed -[prev] -version: 0.2.6-1 -install: release/audiofile/libaudiofile0/libaudiofile0-0.2.6-1.tar.bz2 60031 65c87500c761f67fda9b82beae7d1173 -source: release/audiofile/audiofile-0.2.6-1-src.tar.bz2 500790 5eee40a488638560a5dfbcb4f5984b97 - -@ libbonobo2 -sdesc: "GNOME component and compound document system (support files and apps)" -ldesc: "GNOME component and compound document system for the GNU system." -category: Libs -requires: cygwin ORBit2 glib2-runtime libbonobo20 libiconv2 libintl3 libpopt0 libxml2 minires zlib -version: 2.8.0-1 -install: release/GNOME/libbonobo2/libbonobo2-2.8.0-1.tar.bz2 278371 103c45fa0434f524593f9299ad691359 -source: release/GNOME/libbonobo2/libbonobo2-2.8.0-1-src.tar.bz2 1605703 2316760716741fd2b1521de1a556a0ab - -@ libbonobo2-devel -sdesc: "GNOME component and compound document system (development files)" -ldesc: "GNOME component and compound document system for the GNU system." -category: Devel -requires: cygwin ORBit2-devel glib2-devel libiconv gettext libbonobo2 -version: 2.8.0-1 -install: release/GNOME/libbonobo2/libbonobo2-devel/libbonobo2-devel-2.8.0-1.tar.bz2 81469 39b2d9c30958dc56aafb0d60205975a9 - -@ libbonobo2-doc -sdesc: "GNOME component and compound document system (API documentation)" -ldesc: "GNOME component and compound document system for the GNU system." -category: Doc -version: 2.8.0-1 -install: release/GNOME/libbonobo2/libbonobo2-doc/libbonobo2-doc-2.8.0-1.tar.bz2 342762 fe6b68fc4d757cb930388c4506cac486 - -@ libbonobo20 -sdesc: "GNOME component and compound document system (runtime libraries)" -ldesc: "GNOME component and compound document system for the GNU system." -category: Libs -requires: libbonobo2 -version: 2.8.0-1 -install: release/GNOME/libbonobo2/libbonobo20/libbonobo20-2.8.0-1.tar.bz2 129155 9255cef716b1972f658fe9bd90de73b0 - -@ libbonoboui2 -sdesc: "GUI library for the GNOME component and compound document -system" -ldesc: "GUI library for the GNOME component and compound document -system." -category: Gnome -requires: cygwin GConf2 ORBit2 atk-runtime glib2-runtime gnome-vfs2 gtk2-x11-runtime libaudiofile0 libbonobo2 libesound0 libgnome2 libgnomecanvas2 libiconv2 libintl3 libpopt0 libxml2 openssl pango-runtime xorg-x11-base zlib -version: 2.8.0-1 -install: release/GNOME/libbonoboui2/libbonoboui2-2.8.0-1.tar.bz2 468950 960f4a048877c2f2681c9e16c144a266 -source: release/GNOME/libbonoboui2/libbonoboui2-2.8.0-1-src.tar.bz2 983520 3836e0797fa252ad43184611104dacc2 - -@ libbz2_0 -sdesc: "Shared libraries for bzip2 (runtime)" -ldesc: "bzip2 is a freely available, patent free, high-quality data -compressor. It typically compresses files to within 10% to 15% of the best -available techniques (the PPM family of statistical compressors), whilst being -around twice as fast at compression and six times faster at decompression." -category: Libs -requires: cygwin bzip2 -version: 1.0.2-1 -install: release/bzip2/libbz2_0/libbz2_0-1.0.2-1.tar.bz2 24440 17cffcf66e392625fa0b33b294fbea82 -source: release/bzip2/libbz2_0/libbz2_0-1.0.2-1-src.tar.bz2 679387 23f24855a3bac70cc1d687751cd0c0b9 - -@ libbz2_1 -sdesc: "Shared libraries for bzip2 (runtime)" -ldesc: "bzip2 is a freely available, patent free, high-quality data -compressor. It typically compresses files to within 10% to 15% of the best -available techniques (the PPM family of statistical compressors), whilst being -around twice as fast at compression and six times faster at decompression." -category: Libs -requires: cygwin bzip2 -version: 1.0.2-6 -install: release/bzip2/libbz2_1/libbz2_1-1.0.2-6.tar.bz2 24861 6a797953ad9814f7fa0182dcdbee50b3 -source: release/bzip2/bzip2-1.0.2-6-src.tar.bz2 684459 a77b0f5188442c548155631834d110b0 -[prev] -version: 1.0.2-5 -install: release/bzip2/libbz2_1/libbz2_1-1.0.2-5.tar.bz2 28952 fedbc9dc77cf353795757f8b5b75f798 -source: release/bzip2/bzip2-1.0.2-5-src.tar.bz2 683957 e6350754bbaf2c77065c7b16c61845bd - -@ libcharset1 -sdesc: "GNU character set conversion library and utilities - runtime (2)'" -ldesc: "The GNU libiconv package provides an iconv() -implementation, for use on systems which don't have one, -or whose implementation cannot convert from/to Unicode." -category: Libs -requires: cygwin -version: 1.9.2-1 -install: release/libiconv/libcharset1/libcharset1-1.9.2-1.tar.bz2 6519 a042a24f409b853b7841ed85ec49b3b5 -source: release/libiconv/libiconv-1.9.2-1-src.tar.bz2 3798730 cc900a2c60afd5500dd116bd7179c831 -[prev] -version: 1.9.1-3 -install: release/libiconv/libcharset1/libcharset1-1.9.1-3.tar.bz2 7239 1c7b999bd18671be16a0f232eceff859 -source: release/libiconv/libiconv-1.9.1-3-src.tar.bz2 3654679 7d136925327f9a8d69d7096eda85968b - -@ libcroco -sdesc: "DELETED PACKAGE, use libcroco06 instead, generic Cascading Style Sheet (CSS) parsing and manipulation toolkit" -ldesc: "The Libcroco project is an effort to build a generic Cascading Style -Sheet (CSS) parsing and manipulation toolkit that can be used by -GNOME applications in need of CSS support." -category: Libs -requires: libcroco06 -version: 0.5.1-2 -install: release/libcroco/libcroco-0.5.1-2.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 -source: release/libcroco/libcroco-0.5.1-2-src.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 -[prev] -version: 0.5.1-1 -install: release/libcroco/libcroco-0.5.1-1.tar.bz2 185610 a0d2d936403b2f3abecd477990e7f101 -source: release/libcroco/libcroco-0.5.1-1-src.tar.bz2 511909 418d590ce44c7382b2a30b6d2c939ab5 - -@ libcroco06 -sdesc: "Generic Cascading Style Sheet (CSS) parsing and manipulation toolkit" -ldesc: "The Libcroco project is an effort to build a generic Cascading Style -Sheet (CSS) parsing and manipulation toolkit that can be used by -GNOME applications in need of CSS support." -category: Libs Devel -requires: cygwin libxml2 glib2 libiconv2 libintl2 zlib -version: 0.6.0-1 -install: release/libcroco/libcroco06/libcroco06-0.6.0-1.tar.bz2 248131 d6d4d7e6f9ed2b6fb0257376aaf870f2 -source: release/libcroco/libcroco06/libcroco06-0.6.0-1-src.tar.bz2 456547 fd4338c34fcbaf507894c146b6378614 - -@ libdb2 -sdesc: "The Sleepycat Berkeley DB Library v2 - runtime" -ldesc: "High performance database library supporting B+trees, Hash -trees, transactional capabilities and more. More details are available -at sleepycat.com" -category: Database -requires: cygwin -version: 2.7.7-4 -install: release/db/db2/libdb2/libdb2-2.7.7-4.tar.bz2 147363 ac024b19a4f4ded1da3d80b8bfdd794a -[prev] -version: 2.7.7-3 -install: release/db/db2/libdb2/libdb2-2.7.7-3.tar.bz2 147427 4d887599a02320c6fc41e3cdbc054eac - -@ libdb2-devel -sdesc: "The Sleepycat Berkeley DB Library v2 - devel" -ldesc: "High performance database library supporting B+trees, Hash -trees, transactional capabilities and more. More details are available -at sleepycat.com" -category: Database -requires: cygwin libdb2 -version: 2.7.7-4 -install: release/db/db2/libdb2-devel/libdb2-devel-2.7.7-4.tar.bz2 184328 fa86ba6169dc6da91e24179b16f99b3f -[prev] -version: 2.7.7-3 -install: release/db/db2/libdb2-devel/libdb2-devel-2.7.7-3.tar.bz2 183623 b61680bd1754c9426f6d3db48bd740cc - -@ libdb3.1 -sdesc: "The Sleepycat Berkeley DB Library v3.1 - runtime" -ldesc: "High performance database library supporting B+trees, Hash -trees, transactional capabilities and more. More details are available -at sleepycat.com" -category: Database -requires: cygwin -version: 3.1.17-2 -install: release/db/db3.1/libdb3.1/libdb3.1-3.1.17-2.tar.bz2 269783 e7edcdebe43edf14ed437158860c6043 -source: release/db/db3.1/db-3.1.17-2-src.tar.bz2 2183842 276f3d567d69ac55c8b7783c386cec5b - -@ libdb3.1-devel -sdesc: "The Sleepycat Berkeley DB Library v3.1 - devel" -ldesc: "High performance database library supporting B+trees, Hash -trees, transactional capabilities and more. More details are available -at sleepycat.com" -category: Database -requires: cygwin libdb3.1 -version: 3.1.17-2 -install: release/db/db3.1/libdb3.1-devel/libdb3.1-devel-3.1.17-2.tar.bz2 747050 47f078d90cd23efeeabf17119f7e4dda -source: release/db/db3.1/db-3.1.17-2-src.tar.bz2 2183842 276f3d567d69ac55c8b7783c386cec5b - -@ libdb4.1 -sdesc: "The Sleepycat Berkeley DB Library v4.1 - runtime" -ldesc: "High performance database library supporting B+trees, Hash -trees, transactional capabilities and more. More details are available -at sleepycat.com" -category: Database -requires: cygwin -version: 4.1.25-1 -install: release/db/db4.1/libdb4.1/libdb4.1-4.1.25-1.tar.bz2 588723 b72c3c512b97a113d56f74de45e6bf3d -source: release/db/db4.1/db-4.1.25-1-src.tar.bz2 3309745 596cdeb14f99c5312fceddf230ca9471 - -@ libdb4.1-devel -sdesc: "The Sleepycat Berkeley DB Library v4.1" -ldesc: "High performance database library supporting B+trees, Hash -trees, transactional capabilities and more. More details are available -at sleepycat.com" -category: Database -requires: cygwin libdb4.1 -version: 4.1.25-1 -install: release/db/db4.1/libdb4.1-devel/libdb4.1-devel-4.1.25-1.tar.bz2 698649 6bbaac95e085c491fc0f960f8dce65f3 -source: release/db/db4.1/db-4.1.25-1-src.tar.bz2 3309745 596cdeb14f99c5312fceddf230ca9471 - -@ libdb4.2 -sdesc: "The Sleepycat Berkeley DB Library v4.1 - runtime" -ldesc: "High performance database library supporting B+trees, Hash -trees, transactional capabilities and more. More details are available -at sleepycat.com" -category: Database -requires: cygwin -version: 4.2.52-1 -install: release/db/db4.2/libdb4.2/libdb4.2-4.2.52-1.tar.bz2 637635 a38c2c1857ac83bae48ccf9471629eac -source: release/db/db4.2/db-4.2.52-1-src.tar.bz2 4102202 b13a0aac7df2a223d351583f86b31e1f - -@ libdb4.2-devel -sdesc: "The Sleepycat Berkeley DB Library v4.2" -ldesc: "High performance database library supporting B+trees, Hash -trees, transactional capabilities and more. More details are available -at sleepycat.com" -category: Database -requires: cygwin libdb4.2 -version: 4.2.52-1 -install: release/db/db4.2/libdb4.2-devel/libdb4.2-devel-4.2.52-1.tar.bz2 759200 cffdcd189ca1f8b3756fbc946d117c70 -source: release/db/db4.2/db-4.2.52-1-src.tar.bz2 4102202 b13a0aac7df2a223d351583f86b31e1f - -@ libesound-devel -sdesc: "Enlightened Sound Daemon (development files and documentation)" -ldesc: "EsounD mixes multiple digitized audio streams and samples -together for playback by a single audio device. It also allows -monitoring of mixed output, and recording. Network connections to the -daemon are supported as well." -category: Libs Devel -requires: cygwin libaudiofile-devel -version: 0.2.35-1 -install: release/esound/libesound-devel/libesound-devel-0.2.35-1.tar.bz2 35484 7fe1f923fbf16802f93fa57e29705e7a -source: release/esound/esound-0.2.35-1-src.tar.bz2 551886 4706bb5b1b4977b9a6db809f2962ca92 -[prev] -version: 0.2.34-1 -install: release/esound/libesound-devel/libesound-devel-0.2.34-1.tar.bz2 35126 78c24f2c764ff913ac92cd6196970c00 -source: release/esound/esound-0.2.34-1-src.tar.bz2 568314 68323f4bccb1f7ac94a4727a78012c80 - -@ libesound0 -sdesc: "Enlightened Sound Daemon (runtime library)" -ldesc: "EsounD mixes multiple digitized audio streams and samples -together for playback by a single audio device. It also allows -monitoring of mixed output, and recording. Network connections to the -daemon are supported as well." -category: Libs -requires: cygwin libaudiofile0 -version: 0.2.35-1 -install: release/esound/libesound0/libesound0-0.2.35-1.tar.bz2 11251 af42ad0906b66afdb69c994073adf920 -source: release/esound/esound-0.2.35-1-src.tar.bz2 551886 4706bb5b1b4977b9a6db809f2962ca92 -[prev] -version: 0.2.34-1 -install: release/esound/libesound0/libesound0-0.2.34-1.tar.bz2 10989 f4049a8801fbdce12ed34d71800d2e50 -source: release/esound/esound-0.2.34-1-src.tar.bz2 568314 68323f4bccb1f7ac94a4727a78012c80 - -@ libexif -sdesc: "EXIF Tag Parsing Library" -ldesc: "libexif is a library for parsing, editing, and saving EXIF data. -It is intended to replace lots of redundant implementations in -command-line utilities and programs with GUIs. - -libexif supports parsing, editing and saving of EXIF data. All EXIF tags -described in EXIF standard 2.1 are supported. - -libexif is written in plain C and does not require any additional -library. - -libexif can only handle some maker notes, and even those not very well. -More work needs to be done. Note that libmnote has been merged with -libexif - it is no longer needed." -category: Graphics Libs -requires: cygwin -version: 0.6.9-1 -install: release/exif/libexif/libexif-0.6.9-1.tar.bz2 146982 12019c981e4bc932a5e77e8220f0bffd -source: release/exif/libexif/libexif-0.6.9-1-src.tar.bz2 529660 35f168b317cacbd19a7c4f624908bb42 - -@ libfontconfig-devel -sdesc: "Font configuration and customization library. (development)" -ldesc: "Fontconfig is a library for configuring and customizing font -access." -category: Devel Libs -requires: cygwin libfontconfig1 libfreetype2-devel expat zlib -version: 2.2.2-1 -install: release/X11/fontconfig/libfontconfig-devel/libfontconfig-devel-2.2.2-1.tar.bz2 94226 dd7ed1e78c07c98bd1315ce57f159d4e -source: release/X11/fontconfig/fontconfig-2.2.2-1-src.tar.bz2 752901 70dc494c504d6ab2c45f93abef15d325 -[prev] -version: 2.2.0-2 -install: release/X11/fontconfig/libfontconfig-devel/libfontconfig-devel-2.2.0-2.tar.bz2 94185 f921f36050938088bc4490ccf88b326a -source: release/X11/fontconfig/fontconfig-2.2.0-2-src.tar.bz2 831096 44f169598724c9223e07e6191eb2b22e - -@ libfontconfig1 -sdesc: "Font configuration and customization library. (runtime)" -ldesc: "Fontconfig is a library for configuring and customizing font -access." -category: Libs -requires: cygwin freetype2 expat zlib -version: 2.2.2-1 -install: release/X11/fontconfig/libfontconfig1/libfontconfig1-2.2.2-1.tar.bz2 69665 005dcd81c9679fdac97ead469f4facb1 -source: release/X11/fontconfig/fontconfig-2.2.2-1-src.tar.bz2 752901 70dc494c504d6ab2c45f93abef15d325 -[prev] -version: 2.2.0-2 -install: release/X11/fontconfig/libfontconfig1/libfontconfig1-2.2.0-2.tar.bz2 69650 49a72a10cbb4fe4f08f9a5b7e6ff9643 -source: release/X11/fontconfig/fontconfig-2.2.0-2-src.tar.bz2 831096 44f169598724c9223e07e6191eb2b22e - -@ libfpx -sdesc: "Flashpix OpenSource Toolkit" -ldesc: "Flashpix OpenSource Toolkit is the FlashPix Reference -Implementation." -category: Graphics Libs -requires: cygwin -version: 1.2.0.9-1 -install: release/libfpx/libfpx-1.2.0.9-1.tar.bz2 1567002 3e4ba9a737789a01b054541833722d61 -source: release/libfpx/libfpx-1.2.0.9-1-src.tar.bz2 2255592 cac85ec233c9345a3d8aa4f957fdf8d5 - -@ libfreetype2-devel -sdesc: "A Free, High-Quality, and Portable Font Engine. (development)" -ldesc: "FreeType 2 is a software font engine that is designed to be -small, efficient, highly customizable and portable while capable of -producing high-quality output (glyph images). It can be used in -graphics libraries, display servers, font conversion tools, text image -generation tools, and many other products as well." -category: Devel Libs -requires: cygwin libfreetype26 -version: 2.1.5-1 -install: release/X11/freetype2/libfreetype2-devel/libfreetype2-devel-2.1.5-1.tar.bz2 337565 e68b17ce670269093a19e5320c745e8d -source: release/X11/freetype2/freetype2-2.1.5-1-src.tar.bz2 1071918 446fab2d2fffa85e3571517a54c81a83 - -@ libfreetype26 -sdesc: "A Free, High-Quality, and Portable Font Engine. (runtime)" -ldesc: "FreeType 2 is a software font engine that is designed to be -small, efficient, highly customizable and portable while capable of -producing high-quality output (glyph images). It can be used in -graphics libraries, display servers, font conversion tools, text image -generation tools, and many other products as well." -category: Libs -requires: cygwin -version: 2.1.5-1 -install: release/X11/freetype2/libfreetype26/libfreetype26-2.1.5-1.tar.bz2 175390 3d380bbd75d4d0d6c5000a2a676051d6 -source: release/X11/freetype2/freetype2-2.1.5-1-src.tar.bz2 1071918 446fab2d2fffa85e3571517a54c81a83 - -@ libgcrypt -sdesc: "A general purpose crypto library based on the code from GnuPG." -ldesc: "Libgcrypt is a general purpose crypto library based on the code -used in GnuPG." -category: Libs -requires: cygwin libgpg-error _update-info-dir -version: 1.2.0-2 -install: release/libgcrypt/libgcrypt-1.2.0-2.tar.bz2 277027 2a4409af7eacda2821ea07867a3eb533 -source: release/libgcrypt/libgcrypt-1.2.0-2-src.tar.bz2 1088056 7dd56ebeb9a1444850bfe491431daeee - -@ libgd-devel -sdesc: "A graphics library for fast image creation - 2.0.x development libraries and headers" -ldesc: "gd is a graphics library. It allows your code to quickly draw images -complete with lines, arcs, text, multiple colors, cut and paste from other -images, and flood fills, and write out the result as a PNG or JPEG file. This -is particularly useful in World Wide Web applications, where PNG and JPEG are -two of the formats accepted for inline images by most browsers. -gd is not a paint program. If you are looking for a paint program, you are -looking in the wrong place. If you are not a programmer, you are looking in the -wrong place, unless you are installing a required library in order to run an -application. gd does not provide for every possible desirable graphics operation. -It is not necessary or desirable for gd to become a kitchen-sink graphics -package, but version 2.0 does include most frequently requested features, -including both truecolor and palette images, resampling (smooth resizing of -truecolor images) and so forth. " -category: Libs Graphics -requires: cygwin libgd2 libfreetype26 libiconv2 libjpeg62 libpng12 xorg-x11-bin-dlls zlib -version: 2.0.28-1 -install: release/X11/gd/libgd-devel/libgd-devel-2.0.28-1.tar.bz2 134796 a7b9b19286d84e5692ae10ea2f84274a -source: release/X11/gd/gd-2.0.28-1-src.tar.bz2 582448 2ec4c8d6ebacc93c8a1ce9275fbef91e -[prev] -version: 2.0.21-1 -install: release/X11/gd/libgd-devel/libgd-devel-2.0.21-1.tar.bz2 128798 3be5e02becae37cfd2c7858fa5a69c65 -source: release/X11/gd/gd-2.0.21-1-src.tar.bz2 660606 89e364ab04a00e15bb6ee9a0319513a6 - -@ libgd2 -sdesc: "A graphics library for fast image creation - 2.0.x runtime" -ldesc: "gd is a graphics library. It allows your code to quickly draw images -complete with lines, arcs, text, multiple colors, cut and paste from other -images, and flood fills, and write out the result as a PNG or JPEG file. This -is particularly useful in World Wide Web applications, where PNG and JPEG are -two of the formats accepted for inline images by most browsers. -gd is not a paint program. If you are looking for a paint program, you are -looking in the wrong place. If you are not a programmer, you are looking in the -wrong place, unless you are installing a required library in order to run an -application. gd does not provide for every possible desirable graphics operation. -It is not necessary or desirable for gd to become a kitchen-sink graphics -package, but version 2.0 does include most frequently requested features, -including both truecolor and palette images, resampling (smooth resizing of -truecolor images) and so forth. " -category: Libs Graphics -requires: cygwin libfreetype26 libiconv2 libjpeg62 libpng12 xorg-x11-bin-dlls zlib -version: 2.0.28-1 -install: release/X11/gd/libgd2/libgd2-2.0.28-1.tar.bz2 56235 004e5d3fac149ff25c736edcc5c50ce3 -source: release/X11/gd/gd-2.0.28-1-src.tar.bz2 582448 2ec4c8d6ebacc93c8a1ce9275fbef91e -[prev] -version: 2.0.21-1 -install: release/X11/gd/libgd2/libgd2-2.0.21-1.tar.bz2 55339 f7d3b334e46acccfb7f67fbfd06cc098 -source: release/X11/gd/gd-2.0.21-1-src.tar.bz2 660606 89e364ab04a00e15bb6ee9a0319513a6 - -@ libgdbm -sdesc: "GNU dbm database routines (runtime)" -ldesc: "Gdbm is a GNU database indexing library, including routines which use -extensible hashing. Gdbm works in a similar way to standard UNIX dbm -routines. Gdbm is useful for developers who write C applications and -need access to a simple and efficient database or who are building C -applications which will use such a database. This version also supports -ndbm and dbm emulation modes. - -This package provides the runtime libraries." -category: Base -requires: cygwin -version: 1.8.0-5 -install: release/gdbm/libgdbm/libgdbm-1.8.0-5.tar.bz2 9856 a1dd6a1da561d265994f21fa236bc1ca -source: release/gdbm/libgdbm/libgdbm-1.8.0-5-src.tar.bz2 145025 3430da4bbd0b18d6f979744b458b9fe6 - -@ libgdbm-devel -sdesc: "GNU dbm database routines (development)" -ldesc: "Gdbm is a GNU database indexing library, including routines which use -extensible hashing. Gdbm works in a similar way to standard UNIX dbm -routines. Gdbm is useful for developers who write C applications and -need access to a simple and efficient database or who are building C -applications which will use such a database. This version also supports -ndbm and dbm emulation modes. - -This package provides the include files, link libraries, and -library documentation." -category: Base -requires: cygwin libgdbm3 libgdbm4 texinfo _update-info-dir -version: 1.8.3-7 -install: release/gdbm/libgdbm-devel/libgdbm-devel-1.8.3-7.tar.bz2 35406 595b9d1a19740c2f7c7fcc2d9c64678e -source: release/gdbm/gdbm-1.8.3-7-src.tar.bz2 272099 c2807f2f1b76845b360b5d1d16492afc -[prev] -version: 1.8.3-3 -install: release/gdbm/libgdbm-devel/libgdbm-devel-1.8.3-3.tar.bz2 34508 cdb5283cbc70085a112be1b437fef159 -source: release/gdbm/gdbm-1.8.3-3-src.tar.bz2 242420 06bff8dec4b76ea30d2e5b3e199acc29 - -@ libgdbm3 -sdesc: "GNU dbm database routines (runtime)" -ldesc: "Gdbm is a GNU database indexing library, including routines which use -extensible hashing. Gdbm works in a similar way to standard UNIX dbm -routines. Gdbm is useful for developers who write C applications and -need access to a simple and efficient database or who are building C -applications which will use such a database. This version also supports -ndbm and dbm emulation modes. - -This package provides the runtime libraries." -category: Base -requires: cygwin -version: 1.8.3-3 -install: release/gdbm/libgdbm3/libgdbm3-1.8.3-3.tar.bz2 16315 ba03381bc989a401760b0be3d5753e69 -source: release/gdbm/libgdbm3/libgdbm3-1.8.3-3-src.tar.bz2 242420 06bff8dec4b76ea30d2e5b3e199acc29 -[prev] -version: 1.8.3-1 -install: release/gdbm/libgdbm3/libgdbm3-1.8.3-1.tar.bz2 16349 f0ff18623e9876bdf2f5877564cee981 -source: release/gdbm/libgdbm3/libgdbm3-1.8.3-1-src.tar.bz2 240622 68d41dcdcf374f864e30e80ba3de54b2 - -@ libgdbm4 -sdesc: "GNU dbm database routines (runtime)" -ldesc: "Gdbm is a GNU database indexing library, including routines which use -extensible hashing. Gdbm works in a similar way to standard UNIX dbm -routines. Gdbm is useful for developers who write C applications and -need access to a simple and efficient database or who are building C -applications which will use such a database. This version also supports -ndbm and dbm emulation modes. - -This package provides the runtime libraries." -category: Base -requires: cygwin -version: 1.8.3-7 -install: release/gdbm/libgdbm4/libgdbm4-1.8.3-7.tar.bz2 17087 84ed5247c0144f37623f540517c7ced3 -source: release/gdbm/gdbm-1.8.3-7-src.tar.bz2 272099 c2807f2f1b76845b360b5d1d16492afc - -@ libgeotiff -sdesc: "GeoTIFF utilities and data" -ldesc: "GeoTIFF represents an effort by over 160 different -remote sensing, GIS, cartographic, and surveying related -companies and organizations to establish a TIFF based -interchange format for georeferenced raster imagery." -category: Graphics Libs -requires: cygwin libgeotiff1 -version: 1.2.2-1 -install: release/libgeotiff/libgeotiff-1.2.2-1.tar.bz2 422617 6b8e7069dbe4ca886fa3600804f08cd1 -source: release/libgeotiff/libgeotiff-1.2.2-1-src.tar.bz2 830983 3ebe785af5552b34b7310593baf9de37 - -@ libgeotiff-devel -sdesc: "GeoTIFF libraries and headers" -ldesc: "GeoTIFF represents an effort by over 160 different -remote sensing, GIS, cartographic, and surveying related -companies and organizations to establish a TIFF based -interchange format for georeferenced raster imagery." -category: Graphics Libs -requires: cygwin libgeotiff1 libtiff-devel jpeg zlib libproj-devel -version: 1.2.2-1 -install: release/libgeotiff/libgeotiff-devel/libgeotiff-devel-1.2.2-1.tar.bz2 101750 de099f6aad11f005d39690d521fdd598 -source: release/libgeotiff/libgeotiff-1.2.2-1-src.tar.bz2 830983 3ebe785af5552b34b7310593baf9de37 - -@ libgeotiff1 -sdesc: "GeoTIFF runtime" -ldesc: "GeoTIFF represents an effort by over 160 different -remote sensing, GIS, cartographic, and surveying related -companies and organizations to establish a TIFF based -interchange format for georeferenced raster imagery." -category: Graphics Libs -requires: cygwin libproj0 libtiff5 libjpeg62 zlib -version: 1.2.2-1 -install: release/libgeotiff/libgeotiff1/libgeotiff1-1.2.2-1.tar.bz2 44154 6a11bf7413c0614de59f21d682f3b58f -source: release/libgeotiff/libgeotiff-1.2.2-1-src.tar.bz2 830983 3ebe785af5552b34b7310593baf9de37 - -@ libgettextpo0 -sdesc: "GNU Internationalization runtime library (2)" -ldesc: "The GNU gettext package provides a set of tools and -documentation for producing -multi-lingual messages in programs. Tools include a set of conventions about -how programs should be written to support message catalogs, a directory and -file naming organization for the message catalogs, a runtime library which -supports the retrieval of translated messages, and stand-alone programs for -handling the translatable and the already translated strings. Gettext provides -an easy to use library and tools for creating, using, and modifying natural -language catalogs and is a powerful and simple method for internationalizing -programs." -category: Libs -requires: cygwin libintl3 libiconv2 -version: 0.14.1-1 -install: release/gettext/libgettextpo0/libgettextpo0-0.14.1-1.tar.bz2 112347 a4de6631ec9cc0a7639948d6aed5ac8e -source: release/gettext/gettext-0.14.1-1-src.tar.bz2 6651529 ce3c223ee369c6e0e4ddfc45052e01d6 -[prev] -version: 0.12.1-3 -install: release/gettext/libgettextpo0/libgettextpo0-0.12.1-3.tar.bz2 85328 a52a214a81c33e8de90dda59fd80f684 -source: release/gettext/gettext-0.12.1-3-src.tar.bz2 5782139 6ca83119794061c7bed92cb98c4eefc2 - -@ libglade -sdesc: "Library for loading Glade interfaces at runtime" -ldesc: "Libglade is an alternative to using Glade's code generation. -Instead of generating code from the XML interface description, libglade loads -and parses the description at runtime. It also provides functions that -can be used to connect signal handlers to parts of the interface." -category: Libs Devel -requires: cygwin atk-runtime expat glib2-runtime gtk2-x11-runtime libfontconfig1 libfreetype26 libiconv2 libintl3 libxml2 pango-runtime xorg-x11-base zlib - -@ libglade2 -sdesc: "Library for loading Glade interfaces at runtime" -ldesc: "Libglade is an alternative to using Glade's code generation. -Instead of generating code from the XML interface description, libglade loads -and parses the description at runtime. It also provides functions that -can be used to connect signal handlers to parts of the interface." -category: Libs Devel -requires: cygwin atk-runtime expat glib2-runtime gtk2-x11-runtime libfontconfig1 libfreetype26 libiconv2 libintl3 libxml2 pango-runtime xorg-x11-base zlib -version: 2.4.0-1 -install: release/libglade2/libglade2-2.4.0-1.tar.bz2 109969 1e107499eedac00ee908dea621ea33df -source: release/libglade2/libglade2-2.4.0-1-src.tar.bz2 428767 4196be74fb9156e7abe2eeef7103dac1 - -@ libgnome2 -sdesc: "This is the non-gui part of the GNOME library" -ldesc: "This is the non-gui part of the GNOME library." -category: Gnome -requires: cygwin GConf2 ORBit2 glib2-runtime gnome-vfs2 libaudiofile0 libbonobo2 libesound0 libiconv2 libintl3 libpopt0 libxml2 openssl zlib -version: 2.8.0-1 -install: release/GNOME/libgnome2/libgnome2-2.8.0-1.tar.bz2 573174 f0fa4b5de35034a3e4bd4a6cdf6fa79c -source: release/GNOME/libgnome2/libgnome2-2.8.0-1-src.tar.bz2 1185294 0695fdb9037216f7c88ff737efb723b3 - -@ libgnomecanvas2 -sdesc: "GNOME 2.x canvas widget" -ldesc: "The GNOME canvas is an engine for structured graphics that -offers a rich imaging model, high performance rendering, and a -powerful, high-level API. It offers a choice of two rendering -back-ends, one based on Xlib for extremely fast display, and -another based on Libart, a sophisticated, antialiased, -alpha-compositing engine. Applications have a choice between -the Xlib imaging model or a superset of the PostScript imaging -model, depending on the level of graphic sophistication -required." -category: Libs Devel -requires: cygwin atk-runtime glib2-runtime gtk2-x11-runtime libart_lgpl libiconv2 libintl3 pango-runtime xorg-x11-base zlib -version: 2.8.0-1 -install: release/GNOME/libgnomecanvas2/libgnomecanvas2-2.8.0-1.tar.bz2 205275 c8e20e18ca4b55d14bce2a59b898932f -source: release/GNOME/libgnomecanvas2/libgnomecanvas2-2.8.0-1-src.tar.bz2 716350 358b3e15bb7e7320a26178cf6965e1e2 - -@ libgnomeprint22 -sdesc: "GNOME Printing Architecture back-end library" -ldesc: "This is a back-end implementation of the Gnome Printing -Architecture." -category: Libs -requires: cygwin expat glib2-runtime libart_lgpl libfontconfig1 libfreetype26 libiconv2 libintl3 libxml2 pango-runtime zlib -version: 2.8.0.1-1 -install: release/GNOME/libgnomeprint22/libgnomeprint22-2.8.0.1-1.tar.bz2 347189 cdc2e396ca5bed8c6357ffa2160d4f36 -source: release/GNOME/libgnomeprint22/libgnomeprint22-2.8.0.1-1-src.tar.bz2 897373 933819336f909fccbe58e2d572a55930 -[prev] -version: 2.8.0-1 -install: release/GNOME/libgnomeprint22/libgnomeprint22-2.8.0-1.tar.bz2 346752 25360fe0ea1e55e557d87c67c5fc57ff -source: release/GNOME/libgnomeprint22/libgnomeprint22-2.8.0-1-src.tar.bz2 892145 a0acccaa1ac4bdb1318fe228b0bc9b7e - -@ libgnomeprintui22 -sdesc: "GNOME Printing Architecture GUI frontend library" -ldesc: "This is the GUI frontend to the GNOME Printing Architecture." -category: Libs -requires: cygwin atk-runtime expat glib2-runtime gtk2-x11-runtime libXft2 libart_lgpl libfontconfig1 libfreetype26 libgnomecanvas2 libgnomeprint22 libiconv2 libintl3 libxml2 pango-runtime xorg-x11-base zlib -version: 2.8.0-1 -install: release/GNOME/libgnomeprintui22/libgnomeprintui22-2.8.0-1.tar.bz2 242684 afe5ec250cda546f3b1b0f2828627258 -source: release/GNOME/libgnomeprintui22/libgnomeprintui22-2.8.0-1-src.tar.bz2 716441 7f58139dc9eb3209c882499a461498a0 - -@ libgnomeui2 -sdesc: "This is the GUI part of the GNOME library" -ldesc: "This is the GUI part of the GNOME library." -category: Gnome -requires: cygwin GConf2 ORBit2 atk-runtime glib2-runtime gnome-keyring gnome-vfs2 gtk2-x11-runtime libart_lgpl libaudiofile0 libbonobo2 libbonoboui2 libesound0 libglade2 libgnome2 libgnomecanvas2 libiconv2 libintl3 libjpeg62 libpopt0 libxml2 minires openssl pango-runtime xorg-x11-base zlib -version: 2.8.0-1 -install: release/GNOME/libgnomeui2/libgnomeui2-2.8.0-1.tar.bz2 881546 4e3a781253065dc8bc2ecd141a4515d0 -source: release/GNOME/libgnomeui2/libgnomeui2-2.8.0-1-src.tar.bz2 1768875 8fc8351bf060156daea281f58b924e58 - -@ libgpg-error -sdesc: "A library that defines common error values for GnuPG." -ldesc: "Libgpg-error is a library that defines common error values for all -GnuPG components. Among these are GPG, GPGSM, GPGME, GPG-Agent, libgcrypt, -Libksba, DirMngr, Pinentry, SmartCard Daemon and possibly more." -category: Libs -requires: cygwin libintl3 -version: 1.0-2 -install: release/libgpg-error/libgpg-error-1.0-2.tar.bz2 46979 90ba70b88590a176f61e10e0c98744b0 -source: release/libgpg-error/libgpg-error-1.0-2-src.tar.bz2 547508 ca0c54cc34ebea8f970f22ae8dfa468d - -@ libguile12 -sdesc: "The GNU extension language and Scheme interpreter (runtime libraries)" -ldesc: "The GNU extension language and Scheme interpreter (runtime libraries) -Guile shared object libraries and the ice-9 scheme module. Guile is -the GNU Ubiquitous Intelligent Language for Extension." -category: Libs -requires: cygwin libltdl3 -version: 1.6.5-1 -install: release/guile/libguile12/libguile12-1.6.5-1.tar.bz2 508011 a00b51b3ab86468b8df9dd9366a5c3d0 -source: release/guile/guile-1.6.5-1-src.tar.bz2 2756369 03fe6cd399f0732ddf7e870858dd5915 -[prev] -version: 1.6.4-12 -install: release/guile/libguile12/libguile12-1.6.4-12.tar.bz2 493050 24814c4ad068bbae5074eb47de795bd8 -source: release/guile/guile-1.6.4-12-src.tar.bz2 2603803 dd4a79939ccd8d785a21042560115950 - -@ libguile12abi13 -sdesc: "DELETED PACKAGE The GNU extension language and Scheme interpreter (runtime libraries)" -ldesc: "The GNU extension language and Scheme interpreter (runtime libraries) -Guile shared object libraries and the ice-9 scheme module. Guile is -the GNU Ubiquitous Intelligent Language for Extension." -category: Libs -requires: cygwin libltdl3 -version: 1.6.4-3 -install: release/guile/libguile12abi13/libguile12abi13-1.6.4-3.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 -source: release/guile/libguile12abi13/libguile12abi13-1.6.4-3-src.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ libguile16 -sdesc: "The GNU extension language and Scheme interpreter (runtime libraries)" -ldesc: "The GNU extension language and Scheme interpreter (runtime libraries) -Guile shared object libraries and the ice-9 scheme module. Guile is -the GNU Ubiquitous Intelligent Language for Extension." -category: Libs -requires: cygwin gmp libltdl3 -version: 1.7.1.20041006-1 -install: release/guile/libguile16/libguile16-1.7.1.20041006-1.tar.bz2 581301 99c64c6de805b8c7e745ba09614ff5fd -source: release/guile/guile-1.7.1.20041006-1-src.tar.bz2 2830407 c0b1f79ca3956a43272cb939fa877c99 - -@ libiconv -sdesc: "GNU character set conversion library and utilities'" -ldesc: "The GNU libiconv package provides an iconv() -implementation, for use on systems which don't have one, -or whose implementation cannot convert from/to Unicode." -category: Devel Libs -requires: cygwin libintl3 libintl2 libiconv2 libcharset1 -version: 1.9.2-1 -install: release/libiconv/libiconv-1.9.2-1.tar.bz2 773888 8404408cab71846c548ba716d7dcb45a -source: release/libiconv/libiconv-1.9.2-1-src.tar.bz2 3798730 cc900a2c60afd5500dd116bd7179c831 -[prev] -version: 1.9.1-3 -install: release/libiconv/libiconv-1.9.1-3.tar.bz2 963768 137f14fdd2068238f8c3eac4dcf14b8d -source: release/libiconv/libiconv-1.9.1-3-src.tar.bz2 3654679 7d136925327f9a8d69d7096eda85968b - -@ libiconv2 -sdesc: "GNU character set conversion library and utilities - runtime (1)'" -ldesc: "The GNU libiconv package provides an iconv() -implementation, for use on systems which don't have one, -or whose implementation cannot convert from/to Unicode." -category: Libs -requires: cygwin libintl3 libintl2 -version: 1.9.2-1 -install: release/libiconv/libiconv2/libiconv2-1.9.2-1.tar.bz2 695525 9171fa21c1956ba3c6e82b77a92d0f82 -source: release/libiconv/libiconv-1.9.2-1-src.tar.bz2 3798730 cc900a2c60afd5500dd116bd7179c831 -[prev] -version: 1.9.1-3 -install: release/libiconv/libiconv2/libiconv2-1.9.1-3.tar.bz2 687534 d92941aa7b164bea15bb80e3de515c30 -source: release/libiconv/libiconv-1.9.1-3-src.tar.bz2 3654679 7d136925327f9a8d69d7096eda85968b - -@ libintl -sdesc: "GNU Internationalization runtime library" -ldesc: "The GNU gettext package provides a set of tools and -documentation for producing -multi-lingual messages in programs. Tools include a set of conventions about -how programs should be written to support message catalogs, a directory and -file naming organization for the message catalogs, a runtime library which -supports the retrieval of translated messages, and stand-alone programs for -handling the translatable and the already translated strings. Gettext provides -an easy to use library and tools for creating, using, and modifying natural -language catalogs and is a powerful and simple method for internationalizing -programs." -category: Libs -requires: cygwin -version: 0.10.38-3 -install: release/gettext/libintl/libintl-0.10.38-3.tar.bz2 10816 fa53b65f9056451ab5b25d76e4a598ee -source: release/gettext/libintl/libintl-0.10.38-3-src.tar.bz2 881950 85f0f892fd53f993846709e5c3e84cfb - -@ libintl1 -sdesc: "GNU Internationalization runtime library" -ldesc: "The GNU gettext package provides a set of tools and -documentation for producing -multi-lingual messages in programs. Tools include a set of conventions about -how programs should be written to support message catalogs, a directory and -file naming organization for the message catalogs, a runtime library which -supports the retrieval of translated messages, and stand-alone programs for -handling the translatable and the already translated strings. Gettext provides -an easy to use library and tools for creating, using, and modifying natural -language catalogs and is a powerful and simple method for internationalizing -programs." -category: Libs -requires: cygwin -version: 0.10.40-1 -install: release/gettext/libintl1/libintl1-0.10.40-1.tar.bz2 11120 d44a0971f9b49b658d9dbe4bc2bda5e3 -source: release/gettext/libintl1/libintl1-0.10.40-1-src.tar.bz2 1373283 578ba3edc1f077e5b27716f18bc3f7d1 - -@ libintl2 -sdesc: "GNU Internationalization runtime library" -ldesc: "The GNU gettext package provides a set of tools and -documentation for producing -multi-lingual messages in programs. Tools include a set of conventions about -how programs should be written to support message catalogs, a directory and -file naming organization for the message catalogs, a runtime library which -supports the retrieval of translated messages, and stand-alone programs for -handling the translatable and the already translated strings. Gettext provides -an easy to use library and tools for creating, using, and modifying natural -language catalogs and is a powerful and simple method for internationalizing -programs." -category: Libs -requires: cygwin libiconv2 -version: 0.12.1-3 -install: release/gettext/libintl2/libintl2-0.12.1-3.tar.bz2 19495 47d6c63919580fb91437f63912a34f0a -source: release/gettext/libintl2/libintl2-0.12.1-3-src.tar.bz2 5782139 6ca83119794061c7bed92cb98c4eefc2 - -@ libintl3 -sdesc: "GNU Internationalization runtime library" -ldesc: "The GNU gettext package provides a set of tools and -documentation for producing -multi-lingual messages in programs. Tools include a set of conventions about -how programs should be written to support message catalogs, a directory and -file naming organization for the message catalogs, a runtime library which -supports the retrieval of translated messages, and stand-alone programs for -handling the translatable and the already translated strings. Gettext provides -an easy to use library and tools for creating, using, and modifying natural -language catalogs and is a powerful and simple method for internationalizing -programs." -category: Libs -requires: cygwin libiconv2 -version: 0.14.1-1 -install: release/gettext/libintl3/libintl3-0.14.1-1.tar.bz2 21623 a3fbbd8f66da6feae2c4c62608847720 -source: release/gettext/gettext-0.14.1-1-src.tar.bz2 6651529 ce3c223ee369c6e0e4ddfc45052e01d6 - -@ libjpeg62 -sdesc: "A library for manipulating JPEG image format files (runtime)" -ldesc: "The jpeg package contains a library of functions for manipulating -JPEG images, as well as simple client programs for accessing the -libjpeg functions. Libjpeg client programs include cjpeg, djpeg, -jpegtran, rdjpgcom and wrjpgcom. Cjpeg compresses an image file into -JPEG format. Djpeg decompresses a JPEG file into a regular image -file. Jpegtran can perform various useful transformations on JPEG -files. Rdjpgcom displays any text comments included in a JPEG file. -Wrjpgcom inserts text comments into a JPEG file." -category: Graphics Libs -requires: cygwin -version: 6b-11 -install: release/jpeg/libjpeg62/libjpeg62-6b-11.tar.bz2 63560 c72c38cdace80478b318e968f8f9cee5 - -@ libjpeg6b -sdesc: "A library for manipulating JPEG image format files (runtime)" -ldesc: "The jpeg package contains a library of functions for manipulating -JPEG images, as well as simple client programs for accessing the -libjpeg functions. Libjpeg client programs include cjpeg, djpeg, -jpegtran, rdjpgcom and wrjpgcom. Cjpeg compresses an image file into -JPEG format. Djpeg decompresses a JPEG file into a regular image -file. Jpegtran can perform various useful transformations on JPEG -files. Rdjpgcom displays any text comments included in a JPEG file. -Wrjpgcom inserts text comments into a JPEG file." -category: Graphics Libs -requires: cygwin -version: 6b-8 -install: release/jpeg/libjpeg6b/libjpeg6b-6b-8.tar.bz2 57684 2c1a3a54b3ef4db13156624667a1793e -source: release/jpeg/jpeg-6b-8-src.tar.bz2 821041 876ce66ca8023222b1058ddcb3b07a63 - -@ libkpathsea3 -sdesc: "The TeX text formatting system (runtime libraries)." -ldesc: "The TeX text formatting system (runtime libraries). -The teTeX shared object library libkpathsea." -category: Text Publishing Libs -requires: cygwin -version: 2.0.2-15 -install: release/tetex/libkpathsea3/libkpathsea3-2.0.2-15.tar.bz2 28638 db1e5058cbb89596500e9241ee272cee -source: release/tetex/tetex-bin/tetex-bin-2.0.2-15-src.tar.bz2 9616230 2fc483ff47511b124b2c7d52935b611d -[prev] -version: 2.0.2-14 -install: release/tetex/libkpathsea3/libkpathsea3-2.0.2-14.tar.bz2 28595 cb15818bacbf0ec0914db252627b5b12 -source: release/tetex/tetex-bin/tetex-bin-2.0.2-14-src.tar.bz2 9609604 4c0f05c9e51883275ea9b7922ee57e2c - -@ libkpathsea3abi13 -sdesc: "The TeX text formatting system (runtime libraries)." -ldesc: "The TeX text formatting system (runtime libraries). -The teTeX shared object library libkpathsea." -category: Text Publishing Libs -requires: cygwin - -@ libltdl3 -sdesc: "Libtool's dynamic loader (runtime)" -ldesc: "GNU libtool is a generic library support script. -Libtool hides the complexity of using shared libraries behind -a consistent, portable interface." -category: Libs -requires: cygwin -version: 1.5.10-1 -install: release/libtool/libtool-devel/libltdl3/libltdl3-1.5.10-1.tar.bz2 14759 0a1dac08fb3b44ee20aa30a7bc4669b5 -source: release/libtool/libtool-devel/libtool-devel-1.5.10-1-src.tar.bz2 2709128 5d7579aec4d8c1bfa87d7891d61f3c21 -[prev] -version: 1.5.6-3 -install: release/libtool/libtool-devel/libltdl3/libltdl3-1.5.6-3.tar.bz2 19629 cf66a37f41e6178fd818f00e132006cf -source: release/libtool/libtool-devel/libtool-devel-1.5.6-3-src.tar.bz2 2759756 a7bfa988bc49c2007b4df64f7c9fe1cf - -@ libltdl6 -sdesc: "Libtool's dynamic loader (runtime)" -ldesc: "GNU libtool is a generic library support script. -Libtool hides the complexity of using shared libraries behind -a consistent, portable interface." -category: Libs -requires: cygwin -[test] -version: 1.9f_20041024-1 -install: release/libtool/libtool-devel/libltdl6/libltdl6-1.9f_20041024-1.tar.bz2 17291 5bc3540722cd2bd46aea7ff6aa4db984 -source: release/libtool/libtool-devel/libtool-devel-1.9f_20041024-1-src.tar.bz2 1083156 8f249bf7a7c115ea3e3d97063c8755eb - -@ libmcrypt -sdesc: "An encryption library (runtime environment)" -ldesc: "Libmcrypt is a library that provides access to several symmetric block -and stream encryption algorithms. The following algorithms are implemented: -3-Way, Arcfour, Blowfish, Cast-128 (known as Cast5), Cast-256, DES, Enigma, -Gost, Loki97, Panama, RC2, Rijndael-128 (AES), Rijndael-192, Rijndael-256, -Safer-sk64, Safer-sk128, Safer+, Serpent, TripleDES, Twofish, Wake, XTea. -The block algorithms can be used in the modes CBC, CFB, CTR, ECB, OFB, NOFB and -NCFB." -category: Libs -requires: cygwin -version: 2.5.7-2 -install: release/libmcrypt/libmcrypt-2.5.7-2.tar.bz2 97605 4953cd48357f2bcb88ef5a9f6bb28dad -source: release/libmcrypt/libmcrypt-2.5.7-2-src.tar.bz2 388296 9a07f37cd091d16eeb97e73350be3a41 - -@ libmcrypt-devel -sdesc: "An encryption library (development environment)" -ldesc: "This package contains all files that are necessary to compile programs -that use libmcrypt." -category: Libs -requires: cygwin libmcrypt -version: 2.5.7-2 -install: release/libmcrypt/libmcrypt-devel/libmcrypt-devel-2.5.7-2.tar.bz2 22838 6c8690c245989e82164b51c4001d6e8c -source: release/libmcrypt/libmcrypt-2.5.7-2-src.tar.bz2 388296 9a07f37cd091d16eeb97e73350be3a41 - -@ libmng -sdesc: "Multiple-image Network Graphics (MNG) Reference Library" -ldesc: "The libmng library supports decoding, displaying, encoding, and -various other manipulations of the Multiple-image Network Graphics (MNG) -format image files. It uses the zlib compression library, and optionally -the JPEG library by the Independant JPEG Group (IJG) and/or lcms (little -cms), a color-management library by Marti Maria Saguer." -category: Graphics Libs -requires: cygwin libjpeg62 zlib lcms -version: 1.0.8-1 -install: release/libmng/libmng-1.0.8-1.tar.bz2 295718 150e059760142c6015b9f288eb456597 -source: release/libmng/libmng-1.0.8-1-src.tar.bz2 716233 43ff7feac8e289886291054c25243e5c -[prev] -version: 1.0.6-1 -install: release/libmng/libmng-1.0.6-1.tar.bz2 284453 25ece2425e535e3b114dc50c644d7d39 -source: release/libmng/libmng-1.0.6-1-src.tar.bz2 696126 cf2183dc01062e4c8c52ef4dd7ca3ae4 - -@ libncurses-devel -sdesc: "Libraries for terminal handling (development)" -ldesc: "The curses library routines are a terminal-independent method -of updating character screens with reasonalble optimization. The -ncurses (new curses) library is a freely distributable replacement -for the discontinued 4.4BSD classic curses library. This package -contains the development libraries and header files." -category: Devel Libs -requires: cygwin libncurses7 libncurses8 terminfo -version: 5.4-1 -install: release/ncurses/libncurses-devel/libncurses-devel-5.4-1.tar.bz2 323428 33accc4d1de532bc382d09a6436df616 -source: release/ncurses/ncurses-5.4-1-src.tar.bz2 2573290 a21fd9cbd5b7341621519e4f983fd632 -[prev] -version: 5.3-4 -install: release/ncurses/libncurses-devel/libncurses-devel-5.3-4.tar.bz2 310698 ceb3b7ba15065345295addf958b1d51b -source: release/ncurses/ncurses-5.3-4-src.tar.bz2 2403862 bcf495c8e3f8a7ce7ecd994b1a971e4e - -@ libncurses5 -sdesc: "Compatibility libraries for terminal handling (runtime)" -ldesc: "The curses library routines are a terminal-independent method -of updating character screens with reasonalble optimization. The ncurses -(new curses) library is a freely distributable replacement for the -discontinued 4.4BSD classic curses library. This package contains the -compatibility DLL's for older executables." -category: Base Libs -requires: cygwin terminfo -version: 5.2-1 -install: release/ncurses/libncurses5/libncurses5-5.2-1.tar.bz2 181942 4a660e0cc4d35d6d046906432464d72d -source: release/ncurses/libncurses5/libncurses5-5.2-1-src.tar.bz2 1391235 1e21bc75ee60acee2a611729012edcb1 - -@ libncurses6 -sdesc: "Current libraries for terminal handling (runtime)" -ldesc: "The curses library routines are a terminal-independent method -of updating character screens with reasonalble optimization. The -ncurses (new curses) library is a freely distributable replacement -for the discontinued 4.4BSD classic curses library. This package -contains the current DLL's." -category: Base Libs -requires: cygwin terminfo -version: 5.2-8 -install: release/ncurses/libncurses6/libncurses6-5.2-8.tar.bz2 190693 59069187c7dd7ed01dd5947c822f8512 -source: release/ncurses/libncurses6/libncurses6-5.2-8-src.tar.bz2 1770933 d5dc6c8fae18a23801cab27cf48847e9 - -@ libncurses7 -sdesc: "Libraries for terminal handling (runtime)" -ldesc: "The curses library routines are a terminal-independent method -of updating character screens with reasonalble optimization. The -ncurses (new curses) library is a freely distributable replacement -for the discontinued 4.4BSD classic curses library. This package -contains the runtime DLL's." -category: Base Libs -requires: cygwin terminfo -version: 5.3-4 -install: release/ncurses/libncurses7/libncurses7-5.3-4.tar.bz2 142898 7d93fdd71483f5cb8cb1930b33bea775 -source: release/ncurses/libncurses7/libncurses7-5.3-4-src.tar.bz2 2403862 bcf495c8e3f8a7ce7ecd994b1a971e4e -[prev] -version: 5.3-1 -install: release/ncurses/libncurses7/libncurses7-5.3-1.tar.bz2 167635 730a22b9f392a243a355da4992bda889 - -@ libncurses8 -sdesc: "Libraries for terminal handling (runtime)" -ldesc: "The curses library routines are a terminal-independent method -of updating character screens with reasonalble optimization. The -ncurses (new curses) library is a freely distributable replacement -for the discontinued 4.4BSD classic curses library. This package -contains the runtime DLL's." -category: Base Libs -requires: cygwin terminfo -version: 5.4-1 -install: release/ncurses/libncurses8/libncurses8-5.4-1.tar.bz2 161315 ed20ba5daa81e1a1945678fbaa616a3e -source: release/ncurses/ncurses-5.4-1-src.tar.bz2 2573290 a21fd9cbd5b7341621519e4f983fd632 - -@ libneon24 -sdesc: "Runtime library component of Neon - an HTTP and WebDAV client library" -ldesc: "Neon is an HTTP and WebDAV client library, with a C interface." -category: Libs -requires: cygwin libxml2 zlib openssl -version: 0.24.7-1 -install: release/neon/libneon24/libneon24-0.24.7-1.tar.bz2 43854 ba81e04d2ec37004370b719432ddd831 -source: release/neon/neon-0.24.7-1-src.tar.bz2 467674 69221f10415c3ceb575cd11610deb723 -[prev] -version: 0.24.6-1 -install: release/neon/libneon24/libneon24-0.24.6-1.tar.bz2 43693 7dd6d7e137c7e5f42ec2b6aeb9b80314 -source: release/neon/neon-0.24.6-1-src.tar.bz2 464798 414efe8e88e242f2c7cc09f67733af05 - -@ libopenldap2 -sdesc: "Lightweight Directory Access Protocol runtime" -ldesc: "Lightweight Directory Access Protocol runtime" -category: Libs Net -requires: cygwin minires openssl -version: 2.1.25-1 -install: release/openldap/libopenldap2/libopenldap2-2.1.25-1.tar.bz2 142134 f485ecd2943cecb7b7936dcda7b9df68 -source: release/openldap/libopenldap2/libopenldap2-2.1.25-1-src.tar.bz2 2058631 699c37b860833bbdcba7af61e253830e - -@ libopenldap2_2_7 -sdesc: "Lightweight Directory Access Protocol runtime" -ldesc: "Lightweight Directory Access Protocol runtime" -category: Libs Net -requires: cygwin libsasl2 minires openssl -version: 2.2.17-2 -install: release/openldap/libopenldap2_2_7/libopenldap2_2_7-2.2.17-2.tar.bz2 140569 97ee2cb4105b44dce97711981f1af540 -source: release/openldap/openldap-2.2.17-2-src.tar.bz2 2590135 a8e5b7fdadfa1659f25fe97b08c3b6d3 -[prev] -version: 2.2.17-1 -install: release/openldap/libopenldap2_2_7/libopenldap2_2_7-2.2.17-1.tar.bz2 133784 4a3e899da3dca22e0429e7ef8bc249fb -source: release/openldap/openldap-2.2.17-1-src.tar.bz2 2589819 92d935abf53ed2543c23c3ed885a994e - -@ libpcre -sdesc: "Perl-Compatible Regular Expressions library - pre-libtool version" -ldesc: "Please use libpcre0 unless you need libpcre as a dependency of another package" -category: Libs -requires: cygwin -version: 4.1-1 -install: release/pcre/libpcre/libpcre-4.1-1.tar.bz2 40203 965f50c72dd7712600c784166433f354 -source: release/pcre/libpcre/libpcre-4.1-1-src.tar.bz2 340066 2a0fd43ea31c65efe7ed4c217ca85df4 - -@ libpcre0 -sdesc: "Perl-Compatible Regular Expressions library" -ldesc: "The PCRE library is a set of functions that implement regular -expression pattern matching using the same syntax and semantics as Perl 5. -PCRE has its own native API, as well as a set of wrapper functions that -correspond to the POSIX regular expression API. The PCRE library is free, -even for building commercial software." -category: Libs -requires: cygwin -version: 4.5-1 -install: release/pcre/libpcre0/libpcre0-4.5-1.tar.bz2 31905 211a9657aae65a15780aaa8247bad7ac -source: release/pcre/pcre-4.5-1-src.tar.bz2 359272 e891737e53e5675f65eea6ba15d7d0ef -[prev] -version: 4.4-2 -install: release/pcre/libpcre0/libpcre0-4.4-2.tar.bz2 36047 6caa7bd5a40923571ab54422326fec34 -source: release/pcre/pcre-4.4-2-src.tar.bz2 351003 53f09e07a70fe0f7e922046458e20e0f - -@ libpng -sdesc: "PNG library - documentation and applications" -ldesc: "The libpng package contains a library of functions for creating and -manipulating PNG (Portable Network Graphics) image format files. PNG -is a bit-mapped graphics format similar to the GIF format. PNG was -created to replace the GIF format, since GIF uses a patented data -compression algorithm." -category: Graphics Libs -requires: cygwin zlib libpng12 -version: 1.2.5-4 -install: release/libpng/libpng-1.2.5-4.tar.bz2 71026 ef4f7e16557d4db7e52a4c445d63f219 -source: release/libpng/libpng-1.2.5-4-src.tar.bz2 390793 f8381902dc1562476312bbbc277aa4a5 -[prev] -version: 1.2.5-1 -install: release/libpng/libpng-1.2.5-1.tar.bz2 70920 8a0ae6c5584ad81ad3c0a83b149358c2 -source: release/libpng/libpng-1.2.5-1-src.tar.bz2 390377 ed585ed7fd2a85a4225dbc41d7447db4 - -@ libpng10 -sdesc: "PNG library - 1.0.x runtime" -ldesc: "The libpng package contains a library of functions for creating and -manipulating PNG (Portable Network Graphics) image format files. PNG -is a bit-mapped graphics format similar to the GIF format. PNG was -created to replace the GIF format, since GIF uses a patented data -compression algorithm." -category: Graphics Libs -requires: cygwin zlib -version: 1.0.15-4 -install: release/libpng/libpng10/libpng10-1.0.15-4.tar.bz2 78751 fed81432440cb1b16d2def46b16d8e6f -source: release/libpng/libpng10/libpng10-1.0.15-4-src.tar.bz2 386654 be096a3e003f165a92d9700a04dfcc54 -[prev] -version: 1.0.15-1 -install: release/libpng/libpng10/libpng10-1.0.15-1.tar.bz2 78796 d8ca4daf2c119cfd52d9da936af57cd2 -source: release/libpng/libpng10/libpng10-1.0.15-1-src.tar.bz2 386216 5cb0716df9ec1381c2611a275c6311b2 - -@ libpng10-devel -sdesc: "PNG library - 1.0.x development libraries and headers" -ldesc: "The libpng package contains a library of functions for creating and -manipulating PNG (Portable Network Graphics) image format files. PNG -is a bit-mapped graphics format similar to the GIF format. PNG was -created to replace the GIF format, since GIF uses a patented data -compression algorithm." -category: Graphics Libs -requires: cygwin zlib libpng10 -version: 1.0.15-4 -install: release/libpng/libpng10-devel/libpng10-devel-1.0.15-4.tar.bz2 156746 bce81d33d6c23013c7d12ed9f18c2300 -source: release/libpng/libpng10/libpng10-1.0.15-4-src.tar.bz2 386654 be096a3e003f165a92d9700a04dfcc54 -[prev] -version: 1.0.15-1 -install: release/libpng/libpng10-devel/libpng10-devel-1.0.15-1.tar.bz2 156361 134b2fe91d3e84b3fffec3a1085e4d0f -source: release/libpng/libpng10/libpng10-1.0.15-1-src.tar.bz2 386216 5cb0716df9ec1381c2611a275c6311b2 - -@ libpng12 -sdesc: "PNG library - 1.2.x runtime" -ldesc: "The libpng package contains a library of functions for creating and -manipulating PNG (Portable Network Graphics) image format files. PNG -is a bit-mapped graphics format similar to the GIF format. PNG was -created to replace the GIF format, since GIF uses a patented data -compression algorithm." -category: Graphics Libs -requires: cygwin zlib -version: 1.2.5-4 -install: release/libpng/libpng12/libpng12-1.2.5-4.tar.bz2 80439 6ad06108fae1a381ecdf7f7801eee8ae -source: release/libpng/libpng-1.2.5-4-src.tar.bz2 390793 f8381902dc1562476312bbbc277aa4a5 -[prev] -version: 1.2.5-1 -install: release/libpng/libpng12/libpng12-1.2.5-1.tar.bz2 80478 c139759b206e30c7c46f6c88712c5c10 -source: release/libpng/libpng-1.2.5-1-src.tar.bz2 390377 ed585ed7fd2a85a4225dbc41d7447db4 - -@ libpng12-devel -sdesc: "PNG library - 1.2.x development libraries and headers" -ldesc: "The libpng package contains a library of functions for creating and -manipulating PNG (Portable Network Graphics) image format files. PNG -is a bit-mapped graphics format similar to the GIF format. PNG was -created to replace the GIF format, since GIF uses a patented data -compression algorithm." -category: Graphics Libs -requires: cygwin zlib libpng12 -version: 1.2.5-4 -install: release/libpng/libpng12-devel/libpng12-devel-1.2.5-4.tar.bz2 159016 3df9838e278a7a062442e31eace33d58 -source: release/libpng/libpng-1.2.5-4-src.tar.bz2 390793 f8381902dc1562476312bbbc277aa4a5 -[prev] -version: 1.2.5-1 -install: release/libpng/libpng12-devel/libpng12-devel-1.2.5-1.tar.bz2 158766 9f4c0f5abd87ffb551a65035e921d83a -source: release/libpng/libpng-1.2.5-1-src.tar.bz2 390377 ed585ed7fd2a85a4225dbc41d7447db4 - -@ libpng2 -sdesc: "PNG library - 1.0.x runtime" -ldesc: "The libpng package contains a library of functions for creating and -manipulating PNG (Portable Network Graphics) image format files. PNG -is a bit-mapped graphics format similar to the GIF format. PNG was -created to replace the GIF format, since GIF uses a patented data -compression algorithm." -category: Graphics Libs -requires: cygwin zlib -version: 1.0.12-1 -install: release/libpng/libpng2/libpng2-1.0.12-1.tar.bz2 72794 2e2976bd454e261e86d69745faf3423e -source: release/libpng/libpng2/libpng2-1.0.12-1-src.tar.bz2 492075 2b50784d84848a4f5f6ce22dfef342fe - -@ libpopt0 -sdesc: "Library for parsing cmdline parameters - runtime" -ldesc: "Popt is a C library for parsing command line parameters. Popt was -heavily influenced by the getopt() and getopt_long() functions, but it -improves on them by allowing more powerful argument expansion. Popt -can parse arbitrary argv[] style arrays and automatically set -variables based on command line arguments. Popt allows command line -arguments to be aliased via configuration files and includes utility -functions for parsing arbitrary strings into argv[] arrays using -shell-like rules." -category: Libs -requires: cygwin -version: 1.6.4-4 -install: release/popt/libpopt0/libpopt0-1.6.4-4.tar.bz2 11627 c43b5d83506a27373cc240cc561209bb -source: release/popt/popt-1.6.4-4-src.tar.bz2 757890 e0b48ada5a020076fdc63917d35b29d6 - -@ libproj-devel -sdesc: "The PROJ Cartographic Projections library (devel)" -ldesc: "Header files and link libraries for the PROJ -Cartographic Projection software. See -http://www.remotesensing.org/proj/ for more information." -category: Graphics Libs -requires: ash cygwin libproj0 -version: 4.4.8-1 -install: release/proj/libproj-devel/libproj-devel-4.4.8-1.tar.bz2 251055 d58e27140c236ab811afefd9e5247879 -source: release/proj/proj-4.4.8-1-src.tar.bz2 2325063 7604823ff4bc73034a36d18d77822aed - -@ libproj0 -sdesc: "The PROJ Cartographic Projections library (runtime)" -ldesc: "Runtime library for the PROJ Cartographic Projection -software. See http://www.remotesensing.org/proj/ for more -information." -category: Graphics Libs -requires: ash cygwin -version: 4.4.8-1 -install: release/proj/libproj0/libproj0-4.4.8-1.tar.bz2 152597 3ad95baacfddd79e6c2fd418d6fa4c92 -source: release/proj/proj-4.4.8-1-src.tar.bz2 2325063 7604823ff4bc73034a36d18d77822aed - -@ libreadline4 -sdesc: "GNU readline and history libraries (runtime)" -ldesc: "The readline library will read a line from the terminal -and return it, allowing the user to edit the line with the standard -emacs editing keys. It allows the programmer to give the user an -easier-to-use and more intuitive interface." -category: Base -requires: cygwin libncurses5 -version: 4.1-2 -install: release/readline/libreadline4/libreadline4-4.1-2.tar.bz2 55864 9e85ee14418423dc9d85f695c5366f18 -source: release/readline/libreadline4/libreadline4-4.1-2-src.tar.bz2 628100 7e7724c18802f5dab86fbcf69b26218a - -@ libreadline5 -sdesc: "GNU readline and history libraries (runtime)" -ldesc: "The readline library will read a line from the terminal -and return it, allowing the user to edit the line with the standard -emacs editing keys. It allows the programmer to give the user an -easier-to-use and more intuitive interface." -category: Base -requires: cygwin libncurses7 -version: 4.3-5 -install: release/readline/libreadline5/libreadline5-4.3-5.tar.bz2 77996 3f18b6b3c466f5efd0ef47ca02d1d44a -source: release/readline/libreadline5/libreadline5-4.3-5-src.tar.bz2 1023662 d18509e7e787f134aa661b9787eae49a - -@ libreadline6 -sdesc: "GNU readline and history libraries (runtime)" -ldesc: "The readline library will read a line from the terminal -and return it, allowing the user to edit the line with the standard -emacs editing keys. It allows the programmer to give the user an -easier-to-use and more intuitive interface." -category: Base -requires: cygwin libncurses8 -version: 5.0-1 -install: release/readline/libreadline6/libreadline6-5.0-1.tar.bz2 74081 ee1d54080bddcf4b7db11fceb6bef7c7 -source: release/readline/readline-5.0-1-src.tar.bz2 1856159 5cb5b82947a49236e5958a32586ab90b - -@ libsasl2 -sdesc: "The Cyrus SASL API implementation. (Development files)" -ldesc: "The Cyrus SASL library allows for client/server authentication -in conformance with RFC 2222." -category: Libs -requires: libsasl2 libdb4.2 openssl cygwin -version: 2.1.19-3 -install: release/cyrus-sasl/libsasl2/libsasl2-2.1.19-3.tar.bz2 109542 dada83c8a6fc280cdadcf0b3655afa6e -source: release/cyrus-sasl/cyrus-sasl-2.1.19-3-src.tar.bz2 1909308 ff88792c249700e31208e37581c22ba4 - -@ libsasl2-devel -sdesc: "The Cyrus SASL API implementation. (Runtime library)" -ldesc: "The Cyrus SASL library allows for client/server authentication -in conformance with RFC 2222." -category: Libs -requires: libdb4.2 openssl cygwin -version: 2.1.19-3 -install: release/cyrus-sasl/libsasl2-devel/libsasl2-devel-2.1.19-3.tar.bz2 99660 0f7f5996e2bc26ced2c05da022f6bbdd -source: release/cyrus-sasl/cyrus-sasl-2.1.19-3-src.tar.bz2 1909308 ff88792c249700e31208e37581c22ba4 - -@ libsmi -sdesc: "Libsmi" -ldesc: "Library to access SMI MIB information" -category: Devel Libs -requires: cygwin -version: 0.4.2-1 -install: release/libsmi/libsmi-0.4.2-1.tar.bz2 1418121 d02ac634fbacc8514b01b508f993394b -source: release/libsmi/libsmi-0.4.2-1-src.tar.bz2 2942233 2a8eb0cc64840ff7b8c2548a3a2d8bd8 - -@ libtiff-devel -sdesc: "A library for manipulating TIFF format image files (devel)" -ldesc: "The tiff package contains a library of functions for -manipulating TIFF (Tagged Image File Format) image format files. TIFF -is a widely used file format for bitmapped images. TIFF files usually -end in the .tif extension and they are often quite large. The tiff -package also contains binaries needed to manipulate TIFF format -image files." -category: Graphics Libs -requires: ash cygwin libtiff5 libtiff4 libjpeg62 zlib -version: 3.7.0beta2-1 -install: release/tiff/libtiff-devel/libtiff-devel-3.7.0beta2-1.tar.bz2 308869 95649eb467814ae4b10a24b4669895f5 -source: release/tiff/tiff-3.7.0beta2-1-src.tar.bz2 3025307 e7e72b43cde9cd4fd2aab35d63a926bb -[prev] -version: 3.6.0-5 -install: release/tiff/libtiff-devel/libtiff-devel-3.6.0-5.tar.bz2 137628 4be3c923e1b0561e3fbcf5d8e90372bf -source: release/tiff/tiff-3.6.0-5-src.tar.bz2 2528142 02d0f046882827fed0234172e4aa132e - -@ libtiff3 -sdesc: "A library for manipulating TIFF format image files (runtime)" -ldesc: "The tiff package contains a library of functions for -manipulating TIFF (Tagged Image File Format) image format files. TIFF -is a widely used file format for bitmapped images. TIFF files usually -end in the .tif extension and they are often quite large. The tiff -package also contains binaries needed to manipulate TIFF format -image files." -category: Graphics Libs -requires: ash cygwin libjpeg6b zlib -version: 3.6.0-2 -install: release/tiff/libtiff3/libtiff3-3.6.0-2.tar.bz2 81703 d7e3bc95e5880ced318f819df36c74aa -source: release/tiff/libtiff3/libtiff3-3.6.0-2-src.tar.bz2 2513193 218c41ae4cdcecba49bb2943e78a6355 - -@ libtiff4 -sdesc: "A library for manipulating TIFF format image files (runtime)" -ldesc: "The tiff package contains a library of functions for -manipulating TIFF (Tagged Image File Format) image format files. TIFF -is a widely used file format for bitmapped images. TIFF files usually -end in the .tif extension and they are often quite large. The tiff -package also contains binaries needed to manipulate TIFF format -image files." -category: Graphics Libs -requires: ash cygwin libjpeg62 zlib -version: 3.6.0-5 -install: release/tiff/libtiff4/libtiff4-3.6.0-5.tar.bz2 82314 5bcdd15a210367066373a20620a86e50 -source: release/tiff/tiff-3.6.0-5-src.tar.bz2 2528142 02d0f046882827fed0234172e4aa132e - -@ libtiff5 -sdesc: "A library for manipulating TIFF format image files (runtime)" -ldesc: "The tiff package contains a library of functions for -manipulating TIFF (Tagged Image File Format) image format files. TIFF -is a widely used file format for bitmapped images. TIFF files usually -end in the .tif extension and they are often quite large. The tiff -package also contains binaries needed to manipulate TIFF format -image files." -category: Graphics Libs -requires: ash cygwin libjpeg62 zlib -version: 3.7.0beta2-1 -install: release/tiff/libtiff5/libtiff5-3.7.0beta2-1.tar.bz2 90851 92599c3e6bf5a956b3c471169a9e98a1 -source: release/tiff/tiff-3.7.0beta2-1-src.tar.bz2 3025307 e7e72b43cde9cd4fd2aab35d63a926bb - -@ libtool -sdesc: "Wrapper scripts for libtool-devel and libtool-stable" -ldesc: "GNU libtool is a generic library support script. -Libtool hides the complexity of using shared libraries behind -a consistent, portable interface. - -libtool contains libtool-wrapper-1.5b, and is meant to be -installed alongside libtool-stable (which contains libtool-1.4.3) -and alongside libtool-devel (which contains libtool-1.5). It -exec's the appropriate version based on target package heuristics." -category: Devel -requires: ash libtool-devel libtool-stable -version: 1.5b-1 -install: release/libtool/libtool-1.5b-1.tar.bz2 12192 0954a7c46654d9e7f220d2cd3e392670 -source: release/libtool/libtool-1.5b-1-src.tar.bz2 52284 2b27cbb1d3130ec723a71180a57acd6f -[prev] -version: 1.5a-1 -install: release/libtool/libtool-1.5a-1.tar.bz2 12105 ce5a2a0fcd658ffdc1d36caa78a96538 -source: release/libtool/libtool-1.5a-1-src.tar.bz2 61502 51ef6d3cb16c8e432f29d908b6556564 - -@ libtool-devel -sdesc: "A shared library generation tool" -ldesc: "GNU libtool is a generic library support script. -Libtool hides the complexity of using shared libraries behind -a consistent, portable interface. - -libtool-devel contains libtool from the 1.5.x series of official -libtool releases. It supports `transparent' dll-building using -the new auto-import functionality of binutils. libtool-devel -is meant to be installed alongside libtool-stable (which -contains libtool-1.4.3), and alongside the `libtool' package, -which contains wrapper scripts which call the appropriate -`real' libtool, stable or devel, based on target package -heuristics." -category: Devel -requires: cygwin ash automake autoconf libtool texinfo libltdl3 libltdl6 file binutils _update-info-dir -version: 1.5.10-1 -install: release/libtool/libtool-devel/libtool-devel-1.5.10-1.tar.bz2 618346 7a677cd0ba1bd79bb836cf63f9d3e23b -source: release/libtool/libtool-devel/libtool-devel-1.5.10-1-src.tar.bz2 2709128 5d7579aec4d8c1bfa87d7891d61f3c21 -[prev] -version: 1.5.6-3 -install: release/libtool/libtool-devel/libtool-devel-1.5.6-3.tar.bz2 624370 7a1696171f39533bf54cb188998ce994 -source: release/libtool/libtool-devel/libtool-devel-1.5.6-3-src.tar.bz2 2759756 a7bfa988bc49c2007b4df64f7c9fe1cf -[test] -version: 1.9f_20041024-1 -install: release/libtool/libtool-devel/libtool-devel-1.9f_20041024-1.tar.bz2 554476 9b9759b0e8e9972faa98c0550a40323c -source: release/libtool/libtool-devel/libtool-devel-1.9f_20041024-1-src.tar.bz2 1083156 8f249bf7a7c115ea3e3d97063c8755eb - -@ libtool-stable -sdesc: "A shared library generation tool" -ldesc: "GNU libtool is a generic library support script. -Libtool hides the complexity of using shared libraries behind -a consistent, portable interface. - -libtool-stable contains libtool-1.4.3, and is meant to be installed -alongside libtool-devel (which contains which contains a hacked -libtool-20021022, and supports `transparent' dll-building -using the new auto-import functionality of binutils), and alongside -the `libtool' package, which contains wrapper scripts which call -the appropriate `real' libtool, stable or devel, based on target -package heuristics." -category: Devel -requires: cygwin automake autoconf libtool ash -version: 1.4.3-2 -install: release/libtool/libtool-stable/libtool-stable-1.4.3-2.tar.bz2 287543 99b66e5fee31873d13c649b0b8c264f0 -source: release/libtool/libtool-stable/libtool-stable-1.4.3-2-src.tar.bz2 1163733 20263e7220611176787265c3a7a2001d -[prev] -version: 1.4.3-1 -install: release/libtool/libtool-stable/libtool-stable-1.4.3-1.tar.bz2 286420 c25ae02c67adea0076ee1bd52069a16b -source: release/libtool/libtool-stable/libtool-stable-1.4.3-1-src.tar.bz2 1163390 9fa4ab42060b70418d76b02743e20f0b - -@ libungif -sdesc: "A library for using uncompressed GIFs" -ldesc: "The libungif package contains a shared library of functions for -loading and saving GIF format image files. The libungif library can -load any GIF file, but it will save GIFs only in uncompressed format -(i.e., it won't use the patented LZW compression used to save 'normal' -compressed GIF files)." -category: Libs -requires: cygwin xorg-x11-bin -version: 4.1.0-3 -install: release/libungif/libungif-4.1.0-3.tar.bz2 196697 35b29cf8c8e7dc3fe18a5b5dfb3d88c8 -source: release/libungif/libungif-4.1.0-3-src.tar.bz2 311022 a245d2fc018553bff4e6da8409f5c021 -[test] -version: 4.1.2-1 -install: release/libungif/libungif-4.1.2-1.tar.bz2 204872 d6c07e89eb18cd0694f79a7f194a8c94 -source: release/libungif/libungif-4.1.2-1-src.tar.bz2 434126 e6ffdb303d8b628a89af90214f66dc2b - -@ libwmf -sdesc: "Library for reading Menge images Windøws Metafile Format (WMF)" -ldesc: "libwmf is a library for reading Menge images in Microsøft's -native Windøws Metafile Format (WMF) and for either (a) displaying them -in, e.g., an X window; or (b) converting them to more standard/open file -formats such as, e.g., the W3C's XML-based Scaleable Menge Graphic -(SVG) format. Currently bindings exist for conversion to: - -- the following Menge image formats: - (& Encapsulated) PostScript (EPS & PS) - Facility for Interactive Generation of graphics (FIG) - Scaleable Menge Graphic (SVG) - -- the following raster image formats: - Portable Network Graphics (PNG) - Joint Photographic Experts Group (JPEG) -" -category: Libs Graphics -requires: cygwin expat libfreetype26 libjpeg62 libpng12 xorg-x11-bin-dlls zlib -version: 0.2.8.3-1 -install: release/libwmf/libwmf-0.2.8.3-1.tar.bz2 1121818 6da636f4fd98e09b3f4e955ce1bca281 -source: release/libwmf/libwmf-0.2.8.3-1-src.tar.bz2 1940006 a2ac89600c8a5fe6f2ac23c4a93ffa16 - -@ libwnck -sdesc: "GNOME Window Navigation Construction Kit" -ldesc: "libwnck is Window Navigator Construction Kit, i.e. a library to -use for writing pagers and taskslists and stuff." -category: Libs Devel -requires: cygwin atk-runtime glib2-runtime gtk2-x11-runtime libiconv2 libintl3 pango-runtime startup-notification xorg-x11-base zlib -version: 2.8.1-1 -install: release/GNOME/libwnck/libwnck-2.8.1-1.tar.bz2 143272 5e9a45fc5828c92a8696c48847bbdd46 -source: release/GNOME/libwnck/libwnck-2.8.1-1-src.tar.bz2 519015 bed75cc837f557663e550363f549644a -[prev] -version: 2.8.0-1 -install: release/GNOME/libwnck/libwnck-2.8.0-1.tar.bz2 141525 791d7724d1264d20b5d358ba989e34ee -source: release/GNOME/libwnck/libwnck-2.8.0-1-src.tar.bz2 518223 3c46a59e7894e30b131844baa00caef6 - -@ libxerces-c21 -sdesc: "Runtime library for a validating XML parser written in a portable -subset of C++" -ldesc: "A validating XML parser written in a portable subset of C++. -Xerces-C++ makes it easy to give your application the ability to read and -write XML data. A shared library is provided for parsing, generating, -manipulating, and validating XML documents. - -Xerces-C++ is faithful to the XML 1.0 recommendation and many associated -standards. - -The parser provides high performance, modularity, and scalability. Source -code, samples and API documentation are provided with the parser. For -portability, care has been taken to make minimal use of templates, no RTTI, -no C++ namespaces and minimal use of ifdefs." -category: Libs -requires: cygwin -version: 2.1.0-1 -install: release/xerces-c/libxerces-c21/libxerces-c21-2.1.0-1.tar.bz2 656548 5b14ba9171c06041c3c49019c99e8a1a - -@ libxerces-c22 -sdesc: "Runtime library for a validating XML parser written in a portable -subset of C++" -ldesc: "A validating XML parser written in a portable subset of C++. -Xerces-C++ makes it easy to give your application the ability to read and -write XML data. A shared library is provided for parsing, generating, -manipulating, and validating XML documents. - -Xerces-C++ is faithful to the XML 1.0 recommendation and many associated -standards. - -The parser provides high performance, modularity, and scalability. Source -code, samples and API documentation are provided with the parser. For -portability, care has been taken to make minimal use of templates, no RTTI, -no C++ namespaces and minimal use of ifdefs." -category: Libs -requires: cygwin -version: 2.2.0-1 -install: release/xerces-c/libxerces-c22/libxerces-c22-2.2.0-1.tar.bz2 715850 bfdc19355f6c826c40eda216cbe5171a - -@ libxerces-c23 -sdesc: "Runtime library for a validating XML parser written in a portable -subset of C++" -ldesc: "A validating XML parser written in a portable subset of C++. -Xerces-C++ makes it easy to give your application the ability to read and -write XML data. A shared library is provided for parsing, generating, -manipulating, and validating XML documents. - -Xerces-C++ is faithful to the XML 1.0 recommendation and many associated -standards. - -The parser provides high performance, modularity, and scalability. Source -code, samples and API documentation are provided with the parser. For -portability, care has been taken to make minimal use of templates, no RTTI, -no C++ namespaces and minimal use of ifdefs." -category: Libs -requires: cygwin -version: 2.3.0-4 -install: release/xerces-c/libxerces-c23/libxerces-c23-2.3.0-4.tar.bz2 737139 53820c35ef369b5c3eec818637e80ca2 - -@ libxerces-c24 -sdesc: "Runtime library for a validating XML parser written in a portable -subset of C++" -ldesc: "A validating XML parser written in a portable subset of C++. -Xerces-C++ makes it easy to give your application the ability to read and -write XML data. A shared library is provided for parsing, generating, -manipulating, and validating XML documents. - -Xerces-C++ is faithful to the XML 1.0 recommendation and many associated -standards. - -The parser provides high performance, modularity, and scalability. Source -code, samples and API documentation are provided with the parser. For -portability, care has been taken to make minimal use of templates, no RTTI, -no C++ namespaces and minimal use of ifdefs." -category: Libs -requires: cygwin -version: 2.4.0-4 -install: release/xerces-c/libxerces-c24/libxerces-c24-2.4.0-4.tar.bz2 850769 864902e1727fad72699a126e1f3b39bc -source: release/xerces-c/xerces-c-2.4.0-4-src.tar.bz2 6445785 542f84af7187f0a900956018b6ae3c0c - -@ libxerces-c25 -sdesc: "Runtime library for a validating XML parser written in a portable -subset of C++" -ldesc: "A validating XML parser written in a portable subset of C++. -Xerces-C++ makes it easy to give your application the ability to read and -write XML data. A shared library is provided for parsing, generating, -manipulating, and validating XML documents. - -Xerces-C++ is faithful to the XML 1.0 recommendation and many associated -standards. - -The parser provides high performance, modularity, and scalability. Source -code, samples and API documentation are provided with the parser. For -portability, care has been taken to make minimal use of templates, no RTTI, -no C++ namespaces and minimal use of ifdefs." -category: Libs -requires: cygwin -version: 2.5.0-1 -install: release/xerces-c/libxerces-c25/libxerces-c25-2.5.0-1.tar.bz2 800612 7dfcf5eced30dbaac742a12a2885172f -source: release/xerces-c/xerces-c-2.5.0-1-src.tar.bz2 6590620 9a6ea4e3f61aade46844671c29092ff8 - -@ libxml2 -sdesc: "XML C parser and toolkit - runtime and applications" -ldesc: "Libxml2 is the XML C parser and toolkit developed for the -Gnome project (but usable outside of the Gnome platform), it is free -software available under the MIT License. XML itself is a -metalanguage to design markup languages, i.e. text language where -semantic and structure are added to the content using extra 'markup' -information enclosed between angle brackets. HTML is the most well- -known markup language. Though the library is written in C a variety -of language bindings make it available in other environments." -category: Gnome Doc Libs Text Devel Interpreters -requires: cygwin libiconv2 libncurses8 libreadline6 zlib -version: 2.6.16-1 -install: release/libxml2/libxml2-2.6.16-1.tar.bz2 684200 e42d657e1c1a95250ab53985d1737bf0 -source: release/libxml2/libxml2-2.6.16-1-src.tar.bz2 3269859 0b6c49a58dda6bffc9a3bc9aab4f9dea -[prev] -version: 2.6.11-1 -install: release/libxml2/libxml2-2.6.11-1.tar.bz2 1241447 9a0c4e7394651802411c8d26204f09d7 -source: release/libxml2/libxml2-2.6.11-1-src.tar.bz2 2911512 927e63cf753843ae233ef4b22c2a4898 - -@ libxml2-devel -sdesc: "XML C parser and toolkit - import libraries and headers" -ldesc: "Libxml2 is the XML C parser and toolkit developed for the -Gnome project (but usable outside of the Gnome platform), it is free -software available under the MIT License. XML itself is a -metalanguage to design markup languages, i.e. text language where -semantic and structure are added to the content using extra 'markup' -information enclosed between angle brackets. HTML is the most well- -known markup language. Though the library is written in C a variety -of language bindings make it available in other environments." -category: Gnome Devel -requires: libxml2 -version: 2.6.16-1 -install: release/libxml2/libxml2-devel/libxml2-devel-2.6.16-1.tar.bz2 101757 4a67a0e4482eb952bb022202427af5d9 -source: release/libxml2/libxml2-2.6.16-1-src.tar.bz2 3269859 0b6c49a58dda6bffc9a3bc9aab4f9dea - -@ libxml2-doc -sdesc: "XML C parser and toolkit - documentation" -ldesc: "Libxml2 is the XML C parser and toolkit developed for the -Gnome project (but usable outside of the Gnome platform), it is free -software available under the MIT License. XML itself is a -metalanguage to design markup languages, i.e. text language where -semantic and structure are added to the content using extra 'markup' -information enclosed between angle brackets. HTML is the most well- -known markup language. Though the library is written in C a variety -of language bindings make it available in other environments." -category: Gnome Doc -version: 2.6.16-1 -install: release/libxml2/libxml2-doc/libxml2-doc-2.6.16-1.tar.bz2 363133 13b7227b510613fc1aab1e65a7b252de -source: release/libxml2/libxml2-2.6.16-1-src.tar.bz2 3269859 0b6c49a58dda6bffc9a3bc9aab4f9dea - -@ libxml2-python -sdesc: "XML C parser and toolkit - Python bindings" -ldesc: "Libxml2 is the XML C parser and toolkit developed for the -Gnome project (but usable outside of the Gnome platform), it is free -software available under the MIT License. XML itself is a -metalanguage to design markup languages, i.e. text language where -semantic and structure are added to the content using extra 'markup' -information enclosed between angle brackets. HTML is the most well- -known markup language. Though the library is written in C a variety -of language bindings make it available in other environments." -category: Gnome Doc Libs Text Devel Interpreters -requires: libxml2 python -version: 2.6.16-1 -install: release/libxml2/libxml2-python/libxml2-python-2.6.16-1.tar.bz2 127490 5a57d7a4d7891f23a197c8086362331c -source: release/libxml2/libxml2-2.6.16-1-src.tar.bz2 3269859 0b6c49a58dda6bffc9a3bc9aab4f9dea - -@ libxslt -sdesc: "The XSLT C library." -ldesc: "Libxslt is the XSLT C library developed for the Gnome project. XSLT -itself is a an XML language to define transformation for XML. Libxslt -is based on libxml2 the XML C library developed for the Gnome -project. It also implements most of the EXSLT set of processor- -portable extensions functions and some of Saxon's evaluate and -expressions extensions." -category: Doc Libs Text Devel Interpreters -requires: cygwin libxml2 libiconv2 zlib -version: 1.1.10-1 -install: release/libxslt/libxslt-1.1.10-1.tar.bz2 386965 dc680163358ac5456bc72351affed017 -source: release/libxslt/libxslt-1.1.10-1-src.tar.bz2 1864255 94098ae62ad530207856675baa7eb646 -[prev] -version: 1.1.8-1 -install: release/libxslt/libxslt-1.1.8-1.tar.bz2 381940 ae23b971500389223e09d43ecff2ba87 -source: release/libxslt/libxslt-1.1.8-1-src.tar.bz2 1836932 4f76479f07e0e5a1b71844b12301b9e8 - -@ lighttpd -sdesc: "A light-weight and flexible webserver" -ldesc: "lighttpd a secure, fast, compliant and very flexible web-server -which has been optimized for high-performance environments. It has a -very low memory footprint compared to other webservers and takes care of -cpu-load. Its advanced feature-set (FastCGI, CGI, Auth, -Output-Compression, URL-Rewriting and many more) make lighttpd the -perfect webserver-software for every server that is suffering load -problems. " -category: Net Web -requires: cygwin zlib openssl openldap libbz2_1 libpcre0 crypt -version: 1.3.0-1 -install: release/lighttpd/lighttpd-1.3.0-1.tar.bz2 159064 4f1716319038f37c64e3773cbac42be3 -source: release/lighttpd/lighttpd-1.3.0-1-src.tar.bz2 622567 b3e8e744d4d5b51f5d6706ad642aa1b0 - -@ lilypond -sdesc: "A program for printing sheet music" -ldesc: "A program for printing sheet music. -LilyPond prints beautiful sheet music. It produces music notation -from a description file. It excels at typesetting classical music, but -you can also print pop-songs. LilyPond is part of the GNU Project." -category: Publishing -requires: bash cygwin fileutils findutils ghostscript libguile12abi13 libguile12 libiconv2 libintl2 libkpathsea3 libkpathsea3abi13 python tetex-bin tetex-tiny -version: 2.2.5-1 -install: release/lilypond/lilypond-2.2.5-1.tar.bz2 3245192 5698acebe4d0eded0c4277ed0de5a19b -source: release/lilypond/lilypond-2.2.5-1-src.tar.bz2 1487688 5e5dcee143edfa710a1683d21d653ec0 -[prev] -version: 2.2.2-1 -install: release/lilypond/lilypond-2.2.2-1.tar.bz2 3290621 e8b0fd90b73eed3107e817a3d2efbb84 -source: release/lilypond/lilypond-2.2.2-1-src.tar.bz2 1475709 38c5ee34aa1bdd49be32a1c48437373d - -@ lilypond-doc -sdesc: "LilyPond documentation." -ldesc: "LilyPond Documentation in HTML, PS, PDF and DVI formats. This -package contains the HTML, PostScript PDF and DVI documentation for -the LilyPond music typesetting software. Info and man pages are in -the lilypond package." -category: Doc -version: 2.2.5-1 -install: release/lilypond/lilypond-doc/lilypond-doc-2.2.5-1.tar.bz2 9338971 35fdb6eb7dfeef562a20c2e21b400780 -[prev] -version: 2.2.2-1 -install: release/lilypond/lilypond-doc/lilypond-doc-2.2.2-1.tar.bz2 9445929 2338a76e3a90c8e5a80e6ea9e012e7e1 - -@ links -sdesc: "Text mode web browser" -ldesc: "Links is a very capable text-mode web browser. It obeys -keyboard commands similar to lynx but unlike lynx, links supports -the HTML TABLE tag. Links also allows you to download files in the -background." -category: Web -requires: cygwin openssl -version: 0.99pre14-1 -install: release/links/links-0.99pre14-1.tar.bz2 336935 0cd2a1e1e5a02e5f207e1c445b530e8c -source: release/links/links-0.99pre14-1-src.tar.bz2 586366 8a3763df12dca012d0e08174c7eefec8 - -@ login -sdesc: "Sign on to a system" -category: Base -requires: cygwin ash bash -version: 1.9-7 -install: release/login/login-1.9-7.tar.bz2 13590 6bb3f59edf0605d8908029f0f03a802f -source: release/login/login-1.9-7-src.tar.bz2 7322 f14858ad22ecec003d9dbfe773c68657 -[prev] -version: 1.9-5 -install: release/login/login-1.9-5.tar.bz2 12383 b3ee58df849aa672bfb0015400c184f7 -source: release/login/login-1.9-5-src.tar.bz2 7279 c3f4a4d20d2f05b86962f30b12c870de - -@ lynx -sdesc: "Text-mode WWW Browser" -ldesc: "Lynx is a terminal based WWW browser. While it does not make any attempt -at displaying graphics, it has good support for HTML text formatting, -forms, and tables. This version includes support for SSL encryption." -category: Web -requires: cygwin terminfo libintl2 libiconv2 libncurses7 openssl -version: 2.8.4-8 -install: release/lynx/lynx-2.8.4-8.tar.bz2 1145614 b18bd9f9dad9228716cee1f22cbe0660 -source: release/lynx/lynx-2.8.4-8-src.tar.bz2 1941259 7fbb17d598dd8ff133e57378f9626256 -[prev] -version: 2.8.4-7 -install: release/lynx/lynx-2.8.4-7.tar.bz2 1144623 9d82cffa996f65c0905ee29f1e916d42 -source: release/lynx/lynx-2.8.4-7-src.tar.bz2 1942403 a5250104c5a16477e7a30555945a0bb6 - -@ m4 -sdesc: "GNU implementation of the traditional Unix macro processor." -ldesc: "An implementation of the traditional Unix macro processor. It is -mostly SVR4 compatible although it has some extensions (for example, -handling more than 9 positional parameters to macros). GNU m4 also has -built-in functions for including files, running shell commands, doing -arithmetic, etc." -category: Interpreters -requires: cygwin _update-info-dir -version: 1.4.2-1 -install: release/m4/m4-1.4.2-1.tar.bz2 106393 691cca4a166f37c4095c82ca70ae3698 -source: release/m4/m4-1.4.2-1-src.tar.bz2 354059 51be8aa65798264db9964383f71123b2 -[prev] -version: 1.4-1 -install: release/m4/m4-1.4-1.tar.bz2 68652 2c8c7cd79790148a420d769969555216 -source: release/m4/m4-1.4-1-src.tar.bz2 257186 1a494e69e06cf209e8a4a0ab5063a9fb - -@ make -sdesc: "The GNU version of the 'make' utility" -category: Devel -requires: cygwin fileutils ash libintl2 libiconv2 -version: 3.80-1 -install: release/make/make-3.80-1.tar.bz2 286814 421acbc7a0605a117afb126e46d0f632 -source: release/make/make-3.80-1-src.tar.bz2 1260043 0b941f8c1003b4c90171c5f65b5501da -[prev] -version: 3.79.1-7 -install: release/make/make-3.79.1-7.tar.bz2 238739 e7d7c1476797c6e4adf90cd7ebc37dec -source: release/make/make-3.79.1-7-src.tar.bz2 937451 c5bf6116d7ad73c2a5b7eb0b3bb6881a - -@ man -sdesc: "Man, apropos and whatis" -ldesc: "The man page suite, including man, apropos, and whatis consists of -programs that are used to read most of the documentation available on a Cygwin -system. The whatis and apropos programs can be used to find documentation -related to a particular subject." -category: Base Doc System -requires: ash bash cygwin bzip2 fileutils gawk groff gzip less libiconv mktemp -version: 1.5o-1 -install: release/man/man-1.5o-1.tar.bz2 129449 75c00fdad9b214e0c8a560d259a1643b -source: release/man/man-1.5o-1-src.tar.bz2 253534 decddecd2ee51714f5d1ddaf73529338 -[prev] -version: 1.5k-3 -install: release/man/man-1.5k-3.tar.bz2 109507 e74a7633937583eb76f2cfe60c516031 -source: release/man/man-1.5k-3-src.tar.bz2 215547 7937e862eed1f7f41a65c86a1af56609 - -@ mathomatic -sdesc: "Computer Algebra System" -ldesc: "Mathomatic is a highly portable,general purpose symbolic math program -that can solve, simplify, combine, differentiate, integrate, and -compare algebraic equations. It can do standard, complex number, and -polynomial arithmetic. It is designed to be as general as possible, -with few options. It is a console mode application that compiles and -installs easily. License: LPGL 2.1" -category: Math -requires: libreadline5 libncurses7 cygwin -version: 11.5-1 -install: release/mathomatic/mathomatic-11.5-1.tar.bz2 100137 0cbcc907099ee8d71e7a775b1a459e9a -source: release/mathomatic/mathomatic-11.5-1-src.tar.bz2 136595 c0e6287c7d35de4fe0301e100e8accd5 - -@ mc -sdesc: "Midnight Commander visual shell" -ldesc: "Midnight Commander is a visual shell much like a file manager, -only with way more features. It is text mode, but also includes mouse -support if you are running GPM. Its coolest feature is the ability to -ftp, view tar, zip files, and poke into RPMs for specific files." -category: Shells Utils Editors -requires: libncurses7 cygwin -version: 4.6.0-4 -install: release/mc/mc-4.6.0-4.tar.bz2 429337 c6118f4edea3e63f439ca58dfce9d2e3 -source: release/mc/mc-4.6.0-4-src.tar.bz2 3762337 3ef99594afc4be95b0aff4906d6c31da -[test] -version: 4.6.0a-20030721-1 -install: release/mc/mc-4.6.0a-20030721-1.tar.bz2 437142 523ba4f8646a9cf0e909e6da183ea94a -source: release/mc/mc-4.6.0a-20030721-1-src.tar.bz2 3831505 52c30f4532772f1ef500fab313708c4b - -@ mhash -sdesc: "Library of hash algorithms" -ldesc: "MHash is a library that provides a uniform interface to several hash -algorithms. It supports the basics for message authentication by following -rfc2104 (HMAC). It also includes some key generation algorithms which are based -on hash algorithms. This package contains the runtime environment as well as -the development libraries and headers." -category: Libs -requires: cygwin -version: 0.9.1-1 -install: release/mhash/mhash-0.9.1-1.tar.bz2 144150 4a138e6612b1befc36b94e21960dbed7 -source: release/mhash/mhash-0.9.1-1-src.tar.bz2 389959 53d0826855b5c7947182d33a6ba626f4 - -@ mhash-devel -sdesc: "Empty package to force deletion of obsolete mhash-devel" -category: ZZZRemovedPackages -version: 0.9.1-1 -install: release/mhash/mhash-devel/mhash-devel-0.9.1-1.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ mingw-bzip2 -sdesc: "(mingw version) of bzip2, a high-quality block-sorting file compressor" -ldesc: "This package does NOT contain cygwin binaries. Instead, it -contains msvcrt-linked binaries (aka 'mingw'). It is for use with -gcc -mno-cygwin, and installs into /usr/include/mingw/ and -/usr/lib/mingw. - -bzip2 is a freely available, patent free, high-quality data -compressor. It typically compresses files to within 10% to 15% of the best -available techniques (the PPM family of statistical compressors), whilst being -around twice as fast at compression and six times faster at decompression." -category: Mingw -requires: mingw-libbz2_1 -version: 1.0.2-6 -install: release/mingw/mingw-bzip2/mingw-bzip2-1.0.2-6.tar.bz2 158348 19891f1513e56d07ec90e1b9147d61a7 -source: release/mingw/mingw-bzip2/mingw-bzip2-1.0.2-6-src.tar.bz2 683995 ec694034731ea13345a3a88b5ec5b922 - -@ mingw-libbz2_1 -sdesc: "(mingw version) shared libraries for bzip2 (runtime)" -ldesc: "This is NOT a cygwin library. It is for use with -gcc -mno-cygwin, and installs into /usr/include/mingw/ and -/usr/lib/mingw. - -bzip2 is a freely available, patent free, high-quality data -compressor. It typically compresses files to within 10% to 15% of the best -available techniques (the PPM family of statistical compressors), whilst being -around twice as fast at compression and six times faster at decompression." -category: Mingw -version: 1.0.2-6 -install: release/mingw/mingw-bzip2/mingw-libbz2_1/mingw-libbz2_1-1.0.2-6.tar.bz2 25349 7401d474aea5cb338241352965803db7 -source: release/mingw/mingw-bzip2/mingw-bzip2-1.0.2-6-src.tar.bz2 683995 ec694034731ea13345a3a88b5ec5b922 - -@ mingw-runtime -sdesc: "MinGW Runtime" -ldesc: "The Public Domain versions of the MSVCRT header and library import files -Beginning with version 2.0 C89 and C99 extensions are provided that include -but not limited to, wide character functions, floating point environment -functions (declared in fenv.h), floating point classification functions and -macros, the inttypes.h format conversion macros, stubs for msvcrt.dll -underscored functions that are now part of C99 standard, and a replacement for -fseek and fwrite that are safer on W9x. The POSIX dirent functions have been -moved from libmingw.a to libmingwex.a so those desiring 'Minimal' can easily -have it. The ISO C extensions are visible by default within the headers, to -remove them define __NO_ISOCEXT. You need to explicitly add these functions -until they are eventually added to the GCC specs file for inclusion by default." -category: Devel Libs -requires: w32api -version: 3.5-1 -install: release/mingw-runtime/mingw-runtime-3.5-1.tar.bz2 317915 9cbdf25918f905fc94d99583097e13a0 -source: release/mingw-runtime/mingw-runtime-3.5-1-src.tar.bz2 235796 60a60caa42f8643fec4e87b72e3446db -[prev] -version: 3.3-1 -install: release/mingw-runtime/mingw-runtime-3.3-1.tar.bz2 208119 e8357dd8fd6e4d3ecc974f40658e7d69 -source: release/mingw-runtime/mingw-runtime-3.3-1-src.tar.bz2 229023 bb09989d7100e4fd1ed964b06aeecb15 - -@ mingw-zlib -sdesc: "(mingw version) of the zlib compression and decompression library" -ldesc: "This is NOT a cygwin library. It is for use with -gcc -mno-cygwin, and installs into /usr/include/mingw/ and -/usr/lib/mingw. - -The zlib compression library provides in-memory compression and -decompression functions, including integrity checks of the uncompressed -data. This version of the library supports only one compression method -(deflation), but other algorithms may be added later, which will have -the same stream interface. The zlib library is used by many different -system programs." -category: Mingw -version: 1.2.2-1 -install: release/mingw/mingw-zlib/mingw-zlib-1.2.2-1.tar.bz2 74217 5947757cc822f8773224326988d4c24c -source: release/mingw/mingw-zlib/mingw-zlib-1.2.2-1-src.tar.bz2 446681 9ca9b92e736eaf4147e70e30676f2592 -[prev] -version: 1.2.1-2 -install: release/mingw/mingw-zlib/mingw-zlib-1.2.1-2.tar.bz2 73869 fdb2fadd0ef49980ef6d14aba33f087f -source: release/mingw/mingw-zlib/mingw-zlib-1.2.1-2-src.tar.bz2 299935 74c4aa5d621f0261abc029b32c34ec47 - -@ minires -sdesc: "A simple synchronous non caching stub resolver." -ldesc: "A simple synchronous non caching stub resolver -providing the basic functionality of bind. -It interfaces to Windows to find the DNS servers. -On Windows 2000+, it defaults to using the Windows caching resolver." -category: Libs -requires: cygwin -version: 1.00-1 -install: release/minires/minires-1.00-1.tar.bz2 21764 e68406d3e9348db943f33db64b2c824e -source: release/minires/minires-1.00-1-src.tar.bz2 37812 5d35757549ab7c3397ae9ec35429bdea -[prev] -version: 0.97-1 -install: release/minires/minires-0.97-1.tar.bz2 17963 7852f46cbf0089d8bb4c9e981e0c62c9 -source: release/minires/minires-0.97-1-src.tar.bz2 31182 268c9e7377647fcdb0240d4b29f8f0f3 - -@ minires-devel -sdesc: "Development tools to build programs using minires." -ldesc: "Development to build programs using minires, a simple synchronous non -caching stub resolver providing the basic functionality of bind. -Minires interfaces to Windows to find the DNS servers. -On Windows 2000+, it defaults to using the Windows caching resolver." -category: Libs Devel -requires: cygwin minires -version: 1.00-1 -install: release/minires/minires-devel/minires-devel-1.00-1.tar.bz2 24123 0b7a6778731811d3481342c5023633c1 -[prev] -version: 0.97-1 -install: release/minires/minires-devel/minires-devel-0.97-1.tar.bz2 21528 4f90a91de9a7b4a7c271837de1054377 - -@ mktemp -sdesc: "Allows safe temp file/dir creation from shell scripts" -ldesc: "Mktemp is a simple utility designed to make temporary -file handling in shell scripts be safe and simple. Traditionally, -people writing shell scripts have used contructs like `foo=/tmp/foop.$$' -which is trivial to attack. Instead, use `foo=`mktemp /tmp/foo.XXXXXX`'" -category: Devel -requires: cygwin -version: 1.5-3 -install: release/mktemp/mktemp-1.5-3.tar.bz2 14018 2960e649cd7f26b932b2a4115f3a4858 -source: release/mktemp/mktemp-1.5-3-src.tar.bz2 75081 ae30483531e58eee5b77e13e9dc124f4 -[prev] -version: 1.4-1 -install: release/mktemp/mktemp-1.4-1.tar.bz2 9797 429cb2193f3b2c1a189bb6973a512bfb -source: release/mktemp/mktemp-1.4-1-src.tar.bz2 69525 98d258d70da4d93856a2c654c0192152 - -@ more -sdesc: "A primitive pager" -ldesc: "Classic version of the basic pager, from the util-linux sources. -This package is mainly for compatibility with older scripts (and users :). -The 'less' package contains a much more full-featured pager, including the -ability to move backward in a file." -category: Text -requires: ash cygwin libintl1 libpcre0 termcap -version: 2.11o-1 -install: release/more/more-2.11o-1.tar.bz2 15151 bc9663de7d11905b5fde2c650038e09c -source: release/more/more-2.11o-1-src.tar.bz2 18194 371527f0f881009d365087df8ea704f0 - -@ mt -sdesc: "Magnetic Tape manipulation utility" -category: Utils -requires: cygwin -version: 2.3-1 -install: release/mt/mt-2.3-1.tar.bz2 11821 d2be754bd14cc6e5efdfb717e4a3f4c2 -source: release/mt/mt-2.3-1-src.tar.bz2 9269 96bc6736da25a0b20c97232bbfa9a799 -[prev] -version: 2.1-1 -install: release/mt/mt-2.1-1.tar.bz2 10204 fdfa49819a82a91fd471854d7f742685 -source: release/mt/mt-2.1-1-src.tar.bz2 7485 0a1308818081b5f8420e1d799cd90f7f - -@ mutt -sdesc: "A text mode mail user agent (MUA)." -category: Mail -requires: cygwin libncurses7 libintl2 libiconv2 openssl ssmtp -version: 1.4.1-2 -install: release/mutt/mutt-1.4.1-2.tar.bz2 944790 65baaa45a178467f24460e62b11d020f -source: release/mutt/mutt-1.4.1-2-src.tar.bz2 1761285 a7b96191ab27a5defafa0cb909fa6de9 -[prev] -version: 1.4.1-1 -install: release/mutt/mutt-1.4.1-1.tar.bz2 945903 884d7d738b171d68e704f721d8c93b94 -source: release/mutt/mutt-1.4.1-1-src.tar.bz2 2622642 8e15160f610884e58a5b1f773f9f6e7f - -@ naim -sdesc: "Console AIM, ICQ, IRC, and Lily client" -ldesc: "Console client for AOL Instant Messenger, ICQ, Internet Relay Chat, and The lily CMC" -category: Net Web -requires: libncurses7 cygwin -version: 0.11.7.2-1 -install: release/naim/naim-0.11.7.2-1.tar.bz2 348957 65118dbcba0353a181331b5dcc379e51 -source: release/naim/naim-0.11.7.2-1-src.tar.bz2 513397 3eec94b695acdd5795e30139445a3b06 -[prev] -version: 0.11.6.7-1 -install: release/naim/naim-0.11.6.7-1.tar.bz2 320237 49bfb756126f1d53417f6116ea829585 -source: release/naim/naim-0.11.6.7-1-src.tar.bz2 538401 5e063e10e8ca076b1e8aeeef19783005 - -@ nano -sdesc: "A pico clone text editor with extensions" -ldesc: "nano - A text editor designed as a clone of pico, but rewritten -from scratch to be faster and smaller while having greater functionality" -category: Editors -requires: cygwin libintl2 libiconv2 libncurses7 -version: 1.2.2-1 -install: release/nano/nano-1.2.2-1.tar.bz2 206007 86f0b1c0e36045c267d88e4db2983914 -source: release/nano/nano-1.2.2-1-src.tar.bz2 897459 f70a13be601977fdfd768ea549f40ad8 -[prev] -version: 1.2.0-1 -install: release/nano/nano-1.2.0-1.tar.bz2 201173 464315ab05fb41e7d1c0933bb07d6a84 -source: release/nano/nano-1.2.0-1-src.tar.bz2 905874 7603596629bd912135472ef5ccc800c5 - -@ nasm -sdesc: "The Netwide Assembler" -ldesc: "nasm is the famous, portable Netwide Assembler for the 80x86. -Many many developers all over the net respect NASM for what it is -- a widespread (thus netwide), portable (thus netwide!), very -flexible and mature assembler tool with support for many output -formats (thus netwide!!)." -category: Devel -requires: cygwin -version: 0.98.38-1 -install: release/nasm/nasm-0.98.38-1.tar.bz2 688505 2ed356512e83fe3066cbb99a46058b3c -source: release/nasm/nasm-0.98.38-1-src.tar.bz2 559512 34e7bb368275523428b1930098a2d24c -[prev] -version: 0.98.36-1 -install: release/nasm/nasm-0.98.36-1.tar.bz2 675921 5fa65c615b052e0b7ea334adc4c62bbb -source: release/nasm/nasm-0.98.36-1-src.tar.bz2 537356 39971fd3e0e053cef63395700ced2b54 - -@ ncftp -sdesc: "An improved FTP client" -ldesc: "Ncftp is an improved FTP client. Ncftp's improvements include support -for command line editing, command histories, recursive gets, automatic -anonymous logins and more." -category: Net -requires: cygwin libncurses7 terminfo less ash fileutils -version: 3.1.7-1 -install: release/ncftp/ncftp-3.1.7-1.tar.bz2 263346 6a418382595543a174b3a58797bf09e3 -source: release/ncftp/ncftp-3.1.7-1-src.tar.bz2 437398 c4a6446aa4fc189aad1a50396cab2986 -[prev] -version: 3.1.4-1 -install: release/ncftp/ncftp-3.1.4-1.tar.bz2 223145 ad3a6340778dd88c22da07ab259d6b6c -source: release/ncftp/ncftp-3.1.4-1-src.tar.bz2 406672 1799dc694bba1dcc5f9cc979bfb407fd - -@ ncurses -sdesc: "Libraries for terminal handling (main package)" -ldesc: "The curses library routines are a terminal-independent method -of updating character screens with reasonalble optimization. The -ncurses (new curses) library is a freely distributable replacement -for the discontinued 4.4BSD classic curses library. This package -contains the documentation and utility programs." -category: Base Libs -requires: cygwin libncurses7 libncurses8 terminfo -version: 5.4-1 -install: release/ncurses/ncurses-5.4-1.tar.bz2 303677 005411c877f0abec1127010fa3529a0e -source: release/ncurses/ncurses-5.4-1-src.tar.bz2 2573290 a21fd9cbd5b7341621519e4f983fd632 -[prev] -version: 5.3-4 -install: release/ncurses/ncurses-5.3-4.tar.bz2 308321 08257d481f73480a66d0a23f75b21016 -source: release/ncurses/ncurses-5.3-4-src.tar.bz2 2403862 bcf495c8e3f8a7ce7ecd994b1a971e4e - -@ ncurses-demo -sdesc: "Demonstration programs for ncurses" -ldesc: "The curses library routines are a terminal-independent method -of updating character screens with reasonalble optimization. The -ncurses (new curses) library is a freely distributable replacement -for the discontinued 4.4BSD classic curses library. This package -contains the sample programs which use the curses library." -category: Libs -requires: cygwin libncurses7 libncurses8 terminfo -version: 5.4-1 -install: release/ncurses/ncurses-demo/ncurses-demo-5.4-1.tar.bz2 117619 2f22cf525daaa49f627d5b49a5d70dab -source: release/ncurses/ncurses-5.4-1-src.tar.bz2 2573290 a21fd9cbd5b7341621519e4f983fd632 -[prev] -version: 5.3-4 -install: release/ncurses/ncurses-demo/ncurses-demo-5.3-4.tar.bz2 152618 09d319b06954c07cae3b85a8341731dd -source: release/ncurses/ncurses-5.3-4-src.tar.bz2 2403862 bcf495c8e3f8a7ce7ecd994b1a971e4e - -@ nedit -sdesc: "Nedit" -ldesc: "NEdit is a multi-purpose text editor for the X Window System, -which combines a standard, easy to use, graphical user interface with -the thorough functionality and stability required by users who edit -text eight hours a day." -category: X11 Editors -requires: cygwin xorg-x11-bin lesstif -version: 5.5-1 -install: release/X11/nedit/nedit-5.5-1.tar.bz2 552372 b5c1317c3d396ced529b1fe72c3f6eae -source: release/X11/nedit/nedit-5.5-1-src.tar.bz2 1135551 ed77a86e8ec17fb4666e89e4cf75fc2c -[prev] -version: 5.4-1 -install: release/X11/nedit/nedit-5.4-1.tar.bz2 513470 587fe4f04549636933d4869e62fc0296 -source: release/X11/nedit/nedit-5.4-1-src.tar.bz2 901149 3f6ef49930fd1cf4b253585d6f764cf2 - -@ neon -sdesc: "An HTTP and WebDAV client library" -ldesc: "Neon is an HTTP and WebDAV client library, with a C interface." -category: Libs Devel -requires: cygwin libneon24 openssl-devel libxml2 zlib libiconv -version: 0.24.7-1 -install: release/neon/neon-0.24.7-1.tar.bz2 115567 d81c4515494d3acf6717e0db26d82265 -source: release/neon/neon-0.24.7-1-src.tar.bz2 467674 69221f10415c3ceb575cd11610deb723 -[prev] -version: 0.24.6-1 -install: release/neon/neon-0.24.6-1.tar.bz2 115139 f5da971bd29fb0a5fc95fe253e437ea7 -source: release/neon/neon-0.24.6-1-src.tar.bz2 464798 414efe8e88e242f2c7cc09f67733af05 - -@ netcat -sdesc: "A simple but powerful network tool" -ldesc: "Netcat is a simple Unix utility that reads and writes data across -network connections, using TCP or UDP protocols. It is designed to be a -reliable back-end tool that can be used directly or easily driven by other -programs and scripts. At the same time, it is a feature-rich network debugging -and exploration tool, since it can create almost any kind of connection you -may need and has several interesting built-in capabilities. - -You can find the documentation in /usr/doc/netcat/README." -category: Net -requires: cygwin -version: 1.10-2 -install: release/netcat/netcat-1.10-2.tar.bz2 51103 2a5753d5d544a0ab41900e14cf53ba1f -source: release/netcat/netcat-1.10-2-src.tar.bz2 64495 46f522f561eaab178da8be1ee2177930 -[prev] -version: 1.10-1 -install: release/netcat/netcat-1.10-1.tar.bz2 51364 8a545f18202aa4b3a6c58a1cc1e4b7eb -source: release/netcat/netcat-1.10-1-src.tar.bz2 64448 f9efae5112fe2f3adfd302eaafb79a36 - -@ nfs-server -sdesc: "Universal NFS server." -ldesc: "This package contains an NFS daemon (rpc.nfsd) and a mount daemon (rpc.mountd). - Unlike other NFS daemons, this NFS server runs entirely in user space. This makes - it a tad slower than other NFS implementations, and also introduces some - awkwardnesses in the semantics (for instance, moving a file to a different - directory will render its file handle invalid)." -category: Net -requires: cygwin sunrpc -[test] -version: 2.2.47-2 -install: release/nfs-server/nfs-server-2.2.47-2.tar.bz2 97807 d8e70b77f8e4565a684519de04ceb9df -source: release/nfs-server/nfs-server-2.2.47-2-src.tar.bz2 231689 1ab0a88a12ae9f1adc2f68efdc65ec37 - -@ ocaml -sdesc: "The Objective Caml compiler and runtime" -ldesc: "Objective Caml is a fast modern type-inferring functional -programming language descended from the ML (Meta Language) -family. The O'Caml compiler was developed at INRIA's projet -Cristal." -category: Interpreters Devel -requires: cygwin libncurses7 gcc libncurses-devel -version: 3.08.1-1 -install: release/ocaml/ocaml-3.08.1-1.tar.bz2 10399898 860006d51d6c4bb85b6f4144820babd7 -source: release/ocaml/ocaml-3.08.1-1-src.tar.bz2 2073300 87e1c6a871793ca56b76f94458714d33 - -@ openbox -sdesc: "Openbox" -ldesc: "Openbox is a standards compliant, fast, light-weight, -extensible window manager." -category: X11 -requires: cygwin xorg-x11-base xorg-x11-bin xorg-x11-xwin -version: 0.99.1-4 -install: release/X11/openbox/openbox-0.99.1-4.tar.bz2 139217 c1064f5905316c19e5c41315d99f8e16 -source: release/X11/openbox/openbox-0.99.1-4-src.tar.bz2 284544 15e90d2d75e6feca96a0873d3703cd0c - -@ opengl -sdesc: "OpenGL-related libraries" -ldesc: "GLUT and GLUI libraries to build system-independant OpenGL applications" -category: Graphics Libs -requires: w32api -version: 1.1.0-7 -install: release/opengl/opengl-1.1.0-7.tar.bz2 1198533 1c0e0de3490abdece9d982daf766cda4 -source: release/opengl/opengl-1.1.0-7-src.tar.bz2 3717472 e464f3ce1cfa144dd8afafa11e0d91de -[prev] -version: 1.1.0-6 -install: release/opengl/opengl-1.1.0-6.tar.bz2 947650 f70d22663c2773a63615068b40bb6445 -source: release/opengl/opengl-1.1.0-6-src.tar.bz2 659238 f352064eab336805dde2f140f7944799 - -@ openjade -sdesc: "DSSSL processor, production release." -ldesc: "The OpenJade project provides a suite of tools and libraries -for validating, processing and applying DSSSL (Document Style Semantics -and Specification Language) style sheets to SGML and XML documents." -category: Text Libs -requires: cygwin OpenSP -version: 1.3.3-1 -install: release/openjade/openjade-1.3.3-1.tar.bz2 1365768 0d4e0e72494fdd8eb2792f63c9d29438 -source: release/openjade/openjade-1.3.3-1-src.tar.bz2 1322660 1981316b8a836a929a5a1758e7228813 - -@ openldap -sdesc: "Lightweight Directory Access Protocol clients and servers" -ldesc: "Lightweight Directory Access Protocol clients and servers" -category: Libs Net -requires: cygwin crypt libdb4.2 libopenldap2_2_7 libsasl2 minires openssl -version: 2.2.17-2 -install: release/openldap/openldap-2.2.17-2.tar.bz2 576703 cf350728dc30aaa0f391f8e9c4b5bbc5 -source: release/openldap/openldap-2.2.17-2-src.tar.bz2 2590135 a8e5b7fdadfa1659f25fe97b08c3b6d3 -[prev] -version: 2.2.17-1 -install: release/openldap/openldap-2.2.17-1.tar.bz2 567735 06b312dac561aa3347cd1263d6780207 -source: release/openldap/openldap-2.2.17-1-src.tar.bz2 2589819 92d935abf53ed2543c23c3ed885a994e - -@ openldap-devel -sdesc: "Lightweight Directory Access Protocol libraries and headers" -ldesc: "Lightweight Directory Access Protocol libraries and headers" -category: Libs Net -requires: cygwin libopenldap2_2_7 libsasl2 libsasl2-devel minires openssl -version: 2.2.17-2 -install: release/openldap/openldap-devel/openldap-devel-2.2.17-2.tar.bz2 776758 3f9fd24794266976acf4c7e4d947443a -source: release/openldap/openldap-2.2.17-2-src.tar.bz2 2590135 a8e5b7fdadfa1659f25fe97b08c3b6d3 -[prev] -version: 2.2.17-1 -install: release/openldap/openldap-devel/openldap-devel-2.2.17-1.tar.bz2 758952 a359421a90f41ec84feffb1ed14e89b0 -source: release/openldap/openldap-2.2.17-1-src.tar.bz2 2589819 92d935abf53ed2543c23c3ed885a994e - -@ openssh -sdesc: "The OpenSSH server and client programs" -ldesc: "OpenSSH is a program for logging into a remote machine and for -executing commands on a remote machine. It can replace rlogin and rsh, -providing encrypted communication between two machines." -category: Net -requires: bash cygwin editrights fileutils gawk grep minires openssl sh-utils textutils zlib crypt cygrunsrv -version: 3.9p1-2 -install: release/openssh/openssh-3.9p1-2.tar.bz2 462008 ad6f50a7e548f3257db4cc52d2b7727f -source: release/openssh/openssh-3.9p1-2-src.tar.bz2 681858 17d58b985364900b6675f6bd416124a9 -[prev] -version: 3.9p1-1 -install: release/openssh/openssh-3.9p1-1.tar.bz2 474543 1367384d1f0049c8e7fb4bf5d70f24b2 -source: release/openssh/openssh-3.9p1-1-src.tar.bz2 682220 941fe0fe3ff386488628ba432a5e844f - -@ openssl -sdesc: "The OpenSSL runtime environment" -ldesc: "The OpenSSL Project is a collaborative effort to develop a robust, -commercial-grade, full-featured, and Open Source toolkit implementing -the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS -v1) protocols with full-strength cryptography world-wide. The project -is managed by a worldwide community of volunteers that use the -Internet to communicate, plan, and develop the OpenSSL toolkit and its -related documentation. -Derivation and License -OpenSSL is based on the excellent SSLeay library developed from Eric -A. Young and Tim J. Hudson. The OpenSSL toolkit is licensed under a -Apache-style licence which basically means that you are free to get -and use it for commercial and non-commercial purposes." -category: Libs Net -requires: ash cygwin -version: 0.9.7d-2 -install: release/openssl/openssl-0.9.7d-2.tar.bz2 795822 c9f44a8af30ba91da04f8002399b2f4a -source: release/openssl/openssl-0.9.7d-2-src.tar.bz2 2250007 033b14c33882d75fb068268fa7f6dd8c -[prev] -version: 0.9.7d-1 -install: release/openssl/openssl-0.9.7d-1.tar.bz2 672466 df81e827119e8210420df555e0a74c35 -source: release/openssl/openssl-0.9.7d-1-src.tar.bz2 2250319 5e99cc05f92b382119d8973188807b33 - -@ openssl-devel -sdesc: "The OpenSSL development environment" -ldesc: "This package containes the OpenSSL header files, static and link -libraries and API man pages." -category: Libs Devel -requires: cygwin -version: 0.9.7d-2 -install: release/openssl/openssl-devel/openssl-devel-0.9.7d-2.tar.bz2 930403 71c8fd03d0a15f2b91e7b28ebf27d9be -[prev] -version: 0.9.7d-1 -install: release/openssl/openssl-devel/openssl-devel-0.9.7d-1.tar.bz2 938100 dabe539d6358807dd1f780ee49ecfcd9 - -@ pango -sdesc: "Library for layout and rendering of text" -ldesc: "Pango is a library for layout and rendering of text, with an -emphasis on internationalization. Pango can be used anywhere that text -layout is needed; however, most of the work on Pango-1.0 was done using -the GTK+ widget toolkit as a test platform. Pango forms the core of text -and font handling for GTK+-2.x." -category: Libs Devel Text -requires: pango-runtime -version: 1.6.0-1 -install: release/pango/pango-1.6.0-1.tar.bz2 33173 34ed4a8f0503ee125377fabb1f111e58 -source: release/pango/pango-1.6.0-1-src.tar.bz2 989386 92e85df413298bb87ca3e18f2a32a6db -[prev] -version: 1.4.1-1 -install: release/pango/pango-1.4.1-1.tar.bz2 29052 f8a51ae62cf36f50468e91a8e56323c0 -source: release/pango/pango-1.4.1-1-src.tar.bz2 953053 1d6538219acc6685e077f5486a3ae3e3 - -@ pango-devel -sdesc: "Support files, import library and headers for Pango" -ldesc: "support files, import library and headers for Pango, -see main package for detailed description." -category: Libs Devel Text -requires: pango-runtime -version: 1.6.0-1 -install: release/pango/pango-devel/pango-devel-1.6.0-1.tar.bz2 38822 ec1cf09047baec92f2aa844188a51e64 -source: release/pango/pango-1.6.0-1-src.tar.bz2 989386 92e85df413298bb87ca3e18f2a32a6db -[prev] -version: 1.4.1-1 -install: release/pango/pango-devel/pango-devel-1.4.1-1.tar.bz2 35850 5336a69ca5d9287c5e354f54be8e9276 -source: release/pango/pango-1.4.1-1-src.tar.bz2 953053 1d6538219acc6685e077f5486a3ae3e3 - -@ pango-doc -sdesc: "Documentation and manpages for Pango" -ldesc: "documentation and manpages for Pango, -see main package for detailed description." -category: Libs Devel Text Doc -version: 1.6.0-1 -install: release/pango/pango-doc/pango-doc-1.6.0-1.tar.bz2 89384 a63317f84bd3d8e8fd52c4757e739fd2 -source: release/pango/pango-1.6.0-1-src.tar.bz2 989386 92e85df413298bb87ca3e18f2a32a6db -[prev] -version: 1.4.1-1 -install: release/pango/pango-doc/pango-doc-1.4.1-1.tar.bz2 82799 d810a83914dc900914307b372cc62078 -source: release/pango/pango-1.4.1-1-src.tar.bz2 953053 1d6538219acc6685e077f5486a3ae3e3 - -@ pango-runtime -sdesc: "Runtime for Pango" -ldesc: "Runtime DLLs for Pango, see main package for a -detailed description." -category: Libs Devel Text -requires: cygwin expat glib2 libXft2 libfontconfig1 libfreetype26 libiconv2 libintl2 xorg-x11-bin-dlls zlib pango -version: 1.6.0-1 -install: release/pango/pango-runtime/pango-runtime-1.6.0-1.tar.bz2 208904 78b5170bc2bdf17995ca58d78152b842 -source: release/pango/pango-1.6.0-1-src.tar.bz2 989386 92e85df413298bb87ca3e18f2a32a6db -[prev] -version: 1.4.1-1 -install: release/pango/pango-runtime/pango-runtime-1.4.1-1.tar.bz2 205118 c470b03775502a0a24ad954c800dfd12 -source: release/pango/pango-1.4.1-1-src.tar.bz2 953053 1d6538219acc6685e077f5486a3ae3e3 - -@ par -sdesc: "A paragraph reformatter, vaguely similar to fmt, but better" -ldesc: "par is a paragraph reformatter, vaguely similar to fmt, but better" -category: Text -requires: cygwin -version: 1.52-1 -install: release/par/par-1.52-1.tar.bz2 38301 ca0d104859336b023d0b63dd7d814bc0 -source: release/par/par-1.52-1-src.tar.bz2 52994 ed82c2bbe314f47926489ee278209cf7 - -@ patch -sdesc: "Apply a diff file to an original" -category: Utils -requires: cygwin -version: 2.5.8-8 -install: release/patch/patch-2.5.8-8.tar.bz2 55808 f3ccd99a119087d2f5e132cd3c15ad98 -source: release/patch/patch-2.5.8-8-src.tar.bz2 151441 e27b05e8bbc682613bebd7c959162799 -[prev] -version: 2.5.8-3 -install: release/patch/patch-2.5.8-3.tar.bz2 50619 dd4a830bc0ba6431e3c8bc33d2f18ff2 -source: release/patch/patch-2.5.8-3-src.tar.bz2 151621 6c088c6479c590dee4b1457f03da2a7d - -@ patchutils -sdesc: "A small collection of programs that operate on patch files" -ldesc: "Patchutils is a small collection of programs that operate -on patch files. You can use the programs to combine, -filter and split, correct output from 'cvs diff', list -and grep patch files." -category: Text Utils Devel -requires: cygwin diffutils patch -version: 0.2.30pre1-1 -install: release/patchutils/patchutils-0.2.30pre1-1.tar.bz2 84068 7ad15d0e5e289662eb639e68aa342925 -source: release/patchutils/patchutils-0.2.30pre1-1-src.tar.bz2 154658 b7e0533825b553c7c0459af316b41f18 -[prev] -version: 0.2.30-1 -install: release/patchutils/patchutils-0.2.30-1.tar.bz2 83785 8a88cac0af17cf543155e050d4af6baf -source: release/patchutils/patchutils-0.2.30-1-src.tar.bz2 154405 4048ea31b7473566133c2c54a17774b8 - -@ pcre -sdesc: "Perl-Compatible Regular Expressions programs" -ldesc: "Programs to test Perl-Compatible regular expressions and to -use them in a grep-like tool" -category: Devel Utils -requires: cygwin pcre-doc libpcre0 libpcre -version: 4.5-1 -install: release/pcre/pcre-4.5-1.tar.bz2 17767 04754e6ba8866035ff8b99a9e37e8bcd -source: release/pcre/pcre-4.5-1-src.tar.bz2 359272 e891737e53e5675f65eea6ba15d7d0ef -[prev] -version: 4.4-2 -install: release/pcre/pcre-4.4-2.tar.bz2 21901 1b3cabf105b8a9a44aae460da907b10d -source: release/pcre/pcre-4.4-2-src.tar.bz2 351003 53f09e07a70fe0f7e922046458e20e0f - -@ pcre-devel -sdesc: "All you need to develop with Perl-Compatible Regular Expressions" -category: Devel -requires: cygwin pcre-doc libpcre0 -version: 4.5-1 -install: release/pcre/pcre-devel/pcre-devel-4.5-1.tar.bz2 36902 fe1e4a8b37f9ebc68c2e2bc9b4482349 -source: release/pcre/pcre-4.5-1-src.tar.bz2 359272 e891737e53e5675f65eea6ba15d7d0ef -[prev] -version: 4.4-2 -install: release/pcre/pcre-devel/pcre-devel-4.4-2.tar.bz2 36675 183eb1137950fb5f82c71cc1b9152457 -source: release/pcre/pcre-4.4-2-src.tar.bz2 351003 53f09e07a70fe0f7e922046458e20e0f - -@ pcre-doc -sdesc: "Documentation for Perl-Compatible Regular Expressions" -category: Doc -version: 4.5-1 -install: release/pcre/pcre-doc/pcre-doc-4.5-1.tar.bz2 86769 be168960d6edd3a913e3aabb9984b09d -source: release/pcre/pcre-4.5-1-src.tar.bz2 359272 e891737e53e5675f65eea6ba15d7d0ef -[prev] -version: 4.4-2 -install: release/pcre/pcre-doc/pcre-doc-4.4-2.tar.bz2 56245 aa218c3a0c7f12fee103bc2baf77756f -source: release/pcre/pcre-4.4-2-src.tar.bz2 351003 53f09e07a70fe0f7e922046458e20e0f - -@ pdksh -sdesc: "A public domain ksh" -ldesc: "pdksh - the Public Domain Korn Shell. - -PD-ksh is a clone of the AT&T Korn shell. At the moment, -it has most of the ksh88 features, not much of the ksh93 -features, and a number of it's own features." -category: Shells -requires: cygwin -version: 5.2.14-3 -install: release/pdksh/pdksh-5.2.14-3.tar.bz2 216462 638d4e4e2f6750191cb0888cd343d03c -source: release/pdksh/pdksh-5.2.14-3-src.tar.bz2 495037 5f8ca171d459987bc6fe938a849f680c -[prev] -version: 5.2.14-2 -install: release/pdksh/pdksh-5.2.14-2.tar.bz2 193022 8de9f62efa3fd0a7c6cb3a59a734b835 -source: release/pdksh/pdksh-5.2.14-2-src.tar.bz2 398234 25df98cda00639f525896ff809f06cd7 - -@ perl -sdesc: "Larry Wall's Practical Extracting and Report Language" -ldesc: "Perl is a high-level programming language with roots in C, -sed, awk and shell scripting. Perl is good at handling processes -and files, and is especially good at handling text. Perl's -hallmarks are practicality and efficiency. While it is used to -do a lot of different things, Perl's most common applications are -system administration utilities and web programming. A large -proportion of the CGI scripts on the web are written in Perl. -You need the perl package installed on your system so that your -system can handle Perl scripts." -category: Interpreters -requires: cygwin libgdbm3 libdb4.2 crypt expat -version: 5.8.5-3 -install: release/perl/perl-5.8.5-3.tar.bz2 7081667 87c59b9ce8bb8638856a0d0af5d1f346 -source: release/perl/perl-5.8.5-3-src.tar.bz2 9973368 bb9b9c75e2b2c38e3464d2e91ebb0cc3 -[prev] -version: 5.8.2-1 -install: release/perl/perl-5.8.2-1.tar.bz2 6822974 5fb90731b34a365c0a51cbbf493b8907 -source: release/perl/perl-5.8.2-1-src.tar.bz2 9625573 479a57971c3993d539acb5925aa2bae5 - -@ perl-libwin32 -sdesc: "Perl extensions for using the Win32 API" -ldesc: "Perl extensions for using the Win32 API. -Included modules: Win32CORE, Win32API::File, Win32API::Net, Win32API::Registry, -ChangeNotify, Clipboard, Console, Event, EventLog, File, FileSecurity, Gui, -IPC, Internet, Job, Mutex, NetAdmin, NetResource, ODBC, OLE, PerfLib, Pipe, -Process, Registry, Semaphore, Service, Shortcut, Sound, TieRegistry and -WinError." -category: System Libs Interpreters -requires: perl cygwin -version: 0.191-1 -install: release/perl/perl-libwin32/perl-libwin32-0.191-1.tar.bz2 1656932 fb71a2a7afa9ac72e4dca112ff4b426d -source: release/perl/perl-libwin32/perl-libwin32-0.191-1-src.tar.bz2 1003881 48c5c5472d0c92467993dda75dc95ea5 - -@ perl_manpages -sdesc: "Perl manpages" -ldesc: "Perl manpages" -category: Doc -version: 5.8.5-3 -install: release/perl/perl_manpages/perl_manpages-5.8.5-3.tar.bz2 2116437 124ed7c966904770e20da3bba644bcc7 -source: release/perl/perl-5.8.5-3-src.tar.bz2 9973368 bb9b9c75e2b2c38e3464d2e91ebb0cc3 - -@ pine -sdesc: "A text based E-Mail and Newsreader. It includes Pico" -ldesc: "Program for managing E-mail and News (USENET). It supports -IMAP/(E)SMTP/POP3/LDAP/NNTP/MIME. It includes the editor Pico" -category: Mail -requires: crypt openssl cygwin -version: 4.58-1 -install: release/pine/pine-4.58-1.tar.bz2 1660980 19e51251cb17c3cd9708dcc1cb614a68 -source: release/pine/pine-4.58-1-src.tar.bz2 2838933 549da169c254c300768e0fb11321509d -[prev] -version: 4.55-1 -install: release/pine/pine-4.55-1.tar.bz2 1663601 ffcc30a3d792f767a61943ff167e1db3 -source: release/pine/pine-4.55-1-src.tar.bz2 2844177 f73a1faec4e7d0fc3712f7e12d04d9a4 - -@ pinfo -sdesc: "A lynx-like info and man page viewer" -ldesc: "Pinfo is an info file viewer. Pinfo is similar in use to lynx. -It has similar key movements, and gives similar intuition. -You just move across info nodes, and select links, follow -them... Well, you know how it is when you view html with -lynx. :) -It supports as many colors, as it could. -Pinfo also supports viewing of manual pages -- they're -colorised like in the midnight commander's viewer, and -additionaly they are hypertextualized (i.e. when pinfo -encounters a reference of form manualname (n), then you -can press enter there, and voila -- you're on the page -for `manualname'. -Keyboard and colors are fully configurable. -Pinfo supports URL's embedded into info documents and man -pages. To be precise, supported URL's are mailto, ftp, http." -category: Doc -requires: cygwin libiconv2 libintl2 libncurses7 man texinfo -version: 0.6.8-1 -install: release/pinfo/pinfo-0.6.8-1.tar.bz2 69230 58b761e72f18de61cf7b0877a5be306c -source: release/pinfo/pinfo-0.6.8-1-src.tar.bz2 273587 ce6ae7e14235f8169e26aae1accb45c9 -[prev] -version: 0.6.6p1-1 -install: release/pinfo/pinfo-0.6.6p1-1.tar.bz2 63293 671b4da88ae8b6de5f5e771b9211aff0 -source: release/pinfo/pinfo-0.6.6p1-1-src.tar.bz2 363172 dcd73b88ad25de5f8d065dd994f9d24f - -@ pkgconfig -sdesc: "A utility used to retrieve information about installed libraries" -ldesc: "The pkg-config program is used to retrieve information about installed -libraries in the system. It is typically used to compile and link against one -or more libraries. - -pkg-config retrieves information about packages from special metadata files. -These files are named after the package, with the extension .pc. By default, -pkg-config looks in the following directories: ${PREFIX}/libdata/pkgconfig, -${LOCALBASE}/libdata/pkgconfig and ${X11BASE}/libdata/pkgconfig for these -files; it will also look in the list of directories specified by the -PKG_CONFIG_PATH environment variable. - -The package name specified on the pkg-config command line is defined to be the -name of the metadata file, minus the .pc extension. If a library can install -multiple versions simultaneously, it must give each version its own name (for -example, GTK 1.2 might have the package name 'gtk+' while GTK 2.0 has -'gtk+-2.0'). - -WWW: http://www.freedesktop.org/software/pkgconfig/ -http://pkgconfig.sourceforge.net" -category: Devel -requires: cygwin -version: 0.15.0-4 -install: release/pkgconfig/pkgconfig-0.15.0-4.tar.bz2 51461 3f36ccc5cc8349fe5242fb928b219a1f -source: release/pkgconfig/pkgconfig-0.15.0-4-src.tar.bz2 619657 6a9c3086ecb7796c3460cf5abbb3f9db -[prev] -version: 0.15.0-1 -install: release/pkgconfig/pkgconfig-0.15.0-1.tar.bz2 51218 810244bca7251958beaf8bf40fb8558c -source: release/pkgconfig/pkgconfig-0.15.0-1-src.tar.bz2 619429 6b2f711ff631d10f5b8febd21aab2e44 - -@ popt -sdesc: "Library for parsing cmdline parameters - docs and development" -ldesc: "Popt is a C library for parsing command line parameters. Popt was -heavily influenced by the getopt() and getopt_long() functions, but it -improves on them by allowing more powerful argument expansion. Popt -can parse arbitrary argv[] style arrays and automatically set -variables based on command line arguments. Popt allows command line -arguments to be aliased via configuration files and includes utility -functions for parsing arbitrary strings into argv[] arrays using -shell-like rules." -category: Libs -requires: cygwin libpopt0 -version: 1.6.4-4 -install: release/popt/popt-1.6.4-4.tar.bz2 54953 01fe9dfd2b05c10eb6d1ac00f88f9a97 -source: release/popt/popt-1.6.4-4-src.tar.bz2 757890 e0b48ada5a020076fdc63917d35b29d6 -[prev] -version: 1.6.4-1 -install: release/popt/popt-1.6.4-1.tar.bz2 45509 6c77e2bc4122f0a9d1328210c2dcb9a2 -source: release/popt/popt-1.6.4-1-src.tar.bz2 536857 47c77f61c14d5a6f21a9c4d4775d8bcb - -@ postgresql -sdesc: "PostgreSQL Data Base Management System" -ldesc: "PostgreSQL is an advanced Object-Relational database management system -(DBMS) that supports almost all SQL constructs, including transactions, -subselects and user-defined types and functions." -category: Database -requires: ash crypt cygrunsrv cygwin libncurses7 libreadline5 libintl3 openssl zlib -version: 7.4.5-1 -install: release/postgresql/postgresql-7.4.5-1.tar.bz2 4843285 2d3014894ab85eba696fd21f19e0b9c6 -source: release/postgresql/postgresql-7.4.5-1-src.tar.bz2 10144947 de48e28caac940fef07905eb547a17ab -[prev] -version: 7.4.3-1 -install: release/postgresql/postgresql-7.4.3-1.tar.bz2 4812213 5139f3087925590019b08db41ba8e785 -source: release/postgresql/postgresql-7.4.3-1-src.tar.bz2 10092969 9fd0664b4fbe422d8e55abdc24a8bafa -[test] -version: 8.0.0cvs-1 -install: release/postgresql/postgresql-8.0.0cvs-1.tar.bz2 4717513 19a7dc07f2a2a0451e6972ce17107cff -source: release/postgresql/postgresql-8.0.0cvs-1-src.tar.bz2 9077582 5f022c80a0fcf281dcc63efbe191e4d2 - -@ pr3270 -sdesc: "3287 Printer Emulator" -ldesc: "pr3287 is an IBM 3287 printer emulator. It connects to an IBM host -via TELNET, using TN3270 or TN3270E. It supports SCS (SNA Character Stream)." -category: Net -requires: cygwin suite3270 -version: 3.2.20-1 -install: release/suite3270/pr3270/pr3270-3.2.20-1.tar.bz2 28166 5f6979d35787768efcdb84cb65630e10 -source: release/suite3270/suite3270-3.2.20-1-src.tar.bz2 1275892 71982441f2ca037189693628e3f330b2 - -@ procmail -sdesc: "Mail processing program" -ldesc: "The procmail program is used by Red Hat Linux for all local mail -delivery. In addition to just delivering mail, procmail can be used -for automatic filtering, presorting, and other mail handling jobs. -Procmail is also the basis for the SmartList mailing list processor." -category: Mail -requires: ash cygwin -version: 3.22-10 -install: release/procmail/procmail-3.22-10.tar.bz2 107939 3f1eb504e1e52fd7b03afdda95d68205 -source: release/procmail/procmail-3.22-10-src.tar.bz2 184646 f5a1d1b8708c1256e849285ebbf21e60 -[prev] -version: 3.22-9 -install: release/procmail/procmail-3.22-9.tar.bz2 107287 d8f254a73bdd6e1e4fc897c494ceeed7 -source: release/procmail/procmail-3.22-9-src.tar.bz2 184778 78a0f4d4295c5a2328a8c2772f2049e8 - -@ procps -sdesc: "Utilities for monitoring your system and processes on your system." -ldesc: "The procps package contains a set of system utilities which provide -system information. Procps includes ps, free, sysctl, skill, snice, -tload, top, uptime, vmstat, w, and watch. The ps command displays -a snapshot of running processes. The top command provides a -repetitive update of the statuses of running processes. The free -command displays the amounts of free and used memory on your system. -Sysctl is a simple program for managing system configuration entries. -The skill command sends a terminate command (or another -specified signal) to a specified set of processes. The snice -command is used to change the scheduling priority of specified -processes. The tload command prints a graph of the current system -load average to a specified tty. The uptime command displays the -current time, how long the system has been running, how many users -are logged on and system load averages for the past one, five and -fifteen minutes. The w command displays a list of the users who -are currently logged on and what they're running. The watch program -watches a running program. The vmstat command displays virtual -memory statistics about processes, memory, paging, block I/O, traps -and CPU activity." -category: System -requires: cygwin libncurses6 -version: 010801-2 -install: release/procps/procps-010801-2.tar.bz2 144404 efd567eab6b24452c2d38b7596fd1724 -source: release/procps/procps-010801-2-src.tar.bz2 168744 e2210e66211fe97821db04d1eaca5dbe -[prev] -version: 010801-1 -install: release/procps/procps-010801-1.tar.bz2 138851 2d05505723887aae9bed5a1fd509f662 -source: release/procps/procps-010801-1-src.tar.bz2 168313 d9712f7217e9eeb7db56ecaf40c6dc6a - -@ proftpd -sdesc: "A flexible, stable and highly-configurable FTP Server" -ldesc: "ProFTPD is an enhanced FTP server with a focus toward simplicity, security, -and ease of configuration. It features a very Apache-like configuration -syntax, and a highly customizable server infrastructure, including support for -multiple 'virtual' FTP servers, anonymous FTP, and permission-based directory -visibility." -category: Net -requires: ash cygwin libncurses7 -version: 1.2.10-1 -install: release/proftpd/proftpd-1.2.10-1.tar.bz2 531250 6d32b6be94393f2e26e201143eebe95f -source: release/proftpd/proftpd-1.2.10-1-src.tar.bz2 928035 120e61f6251dc0a0f94a6959f141c4d9 -[prev] -version: 1.2.9-1 -install: release/proftpd/proftpd-1.2.9-1.tar.bz2 466659 09263df9fe2c1867126646d929f94c9f -source: release/proftpd/proftpd-1.2.9-1-src.tar.bz2 779659 83a32cd237c41ec581e521979b90bf84 - -@ proj -sdesc: "The PROJ Cartographic Projections software (utilities)" -ldesc: "Utility programs and documentation for the PROJ -Cartographic Projection software. See -http://www.remotesensing.org/proj/ for more information." -category: Graphics Libs -requires: ash cygwin libproj0 -version: 4.4.8-1 -install: release/proj/proj-4.4.8-1.tar.bz2 1902597 28604281b2cf78c01c2f4e9358c632ee -source: release/proj/proj-4.4.8-1-src.tar.bz2 2325063 7604823ff4bc73034a36d18d77822aed - -@ psutils -sdesc: "Postscript Utilities" -ldesc: "PSUtils is a collection of useful utilities for manipulating -PostScript documents. Programs included are psnup, for placing out several -logical pages on a single sheet of paper, psselect, for selecting pages -from a document, pstops, for general imposition, psbook, for signature -generation for booklet printing, and psresize, for adjusting page sizes." -category: Publishing -requires: perl -version: 1.17-1 -install: release/psutils/psutils-1.17-1.tar.bz2 56233 610ee9952ae00713e1cd38d6f04893d7 -source: release/psutils/psutils-1.17-1-src.tar.bz2 54752 882f3271a691f2c102840138e13404fb - -@ python -sdesc: "An interactive object-oriented scripting language" -ldesc: "Python is an interpreted, interactive, object-oriented programming -language often compared to Tcl, Perl, Scheme or Java. Python includes -modules, classes, exceptions, very high level dynamic data types and -dynamic typing. Python supports interfaces to many system calls and -libraries, as well as to various windowing systems (X11, Motif, Tk, -Mac and MFC). - -Programmers can write new built-in modules for Python in C or C++. -Python can be used as an extension language for applications that need -a programmable interface. This package contains most of the standard -Python modules." -category: Interpreters -requires: ash cygwin expat libdb4.2 libgdbm3 libncurses7 libreadline5 openssl tcltk terminfo zlib -version: 2.3.4-2 -install: release/python/python-2.3.4-2.tar.bz2 6683770 8d8ff9e0f835f772467a658f44c785e1 -source: release/python/python-2.3.4-2-src.tar.bz2 8520233 ef847edabb70b019ce58ccdd0ccd1f46 -[prev] -version: 2.3.3-2 -install: release/python/python-2.3.3-2.tar.bz2 6681550 42172a91a35dab364df756006809b1bd -source: release/python/python-2.3.3-2-src.tar.bz2 8507564 5ec6363592a46fd99f958cdcef02bc7f - -@ rcs -sdesc: "The Revision Control System" -ldesc: "The Revision Control System (RCS) manages multiple -revisions of files. RCS automates the storing, retrieval, -logging, identification, and merging of revisions. RCS is -useful for text that is revised frequently, e.g., programs, -documentation, graphics, papers, and form letters." -category: Devel -requires: cygwin -version: 5.7-3 -install: release/rcs/rcs-5.7-3.tar.bz2 143737 a4f5133ec536fb8270028d47bfe95c67 -source: release/rcs/rcs-5.7-3-src.tar.bz2 232903 0a5658853b49e03c9d077ed17a4cfc48 -[prev] -version: 5.7-2 -install: release/rcs/rcs-5.7-2.tar.bz2 142814 925a4c90c0b8b3003fc111bbd021bd47 -source: release/rcs/rcs-5.7-2-src.tar.bz2 231066 8f26a4f641a325672da1fc65d602d975 - -@ readline -sdesc: "GNU readline and history libraries" -ldesc: "The readline library will read a line from the terminal -and return it, allowing the user to edit the line with the standard -emacs editing keys. It allows the programmer to give the user an -easier-to-use and more intuitive interface." -category: Base -requires: ash cygwin libncurses8 libncurses7 libreadline6 libreadline5 terminfo _update-info-dir -version: 5.0-1 -install: release/readline/readline-5.0-1.tar.bz2 220109 f7a11450549e211204897ef654f4cfa0 -source: release/readline/readline-5.0-1-src.tar.bz2 1856159 5cb5b82947a49236e5958a32586ab90b -[prev] -version: 4.3-5 -install: release/readline/readline-4.3-5.tar.bz2 343113 894f6b206682bcc03ae2720893dcd10a -source: release/readline/readline-4.3-5-src.tar.bz2 1023662 d18509e7e787f134aa661b9787eae49a - -@ rebase -sdesc: "Utilities for rebasing DLLs to load at alternate addresses" -ldesc: "This package contains the Cygwin rebase utilities. Use rebase for -specific DLLs or rebaseall for all DLLs installed by Cygwin's setup.exe." -category: System Utils -requires: bash cygwin fileutils grep gzip sed -version: 2.3-1 -install: release/rebase/rebase-2.3-1.tar.bz2 83173 65b4cd7f9fa3d245704875cfd35aebf5 -source: release/rebase/rebase-2.3-1-src.tar.bz2 28808 3f0d02ff20c54e6e9e980b8db34895b2 -[prev] -version: 2.2-3 -install: release/rebase/rebase-2.2-3.tar.bz2 92125 2e5742b240b24d8ac4912ccaedd6707c -source: release/rebase/rebase-2.2-3-src.tar.bz2 30814 7afc247a4c0e2f6bf675d972d240d848 - -@ regex -sdesc: "Backward compatibility package, superseded by Cygwin itself" -category: Libs -requires: cygwin -[prev] -version: 4.4-3 -install: release/regex/regex-4.4-3.tar.bz2 25565 63f81e73410357012b5081d4b1887ba8 -source: release/regex/regex-4.4-3-src.tar.bz2 43314 ebee1819f178a555f59415d14ba0db47 - -@ robots -sdesc: "Fight against maniac robots" -category: Games -requires: cygwin libncurses7 terminfo -version: 2.0-4 -install: release/robots/robots-2.0-4.tar.bz2 10555 4fde55272a36349341719f55626a2314 -source: release/robots/robots-2.0-4-src.tar.bz2 11499 786411f3c75e184b7809e4f2ef08f2d1 -[prev] -version: 2.0-3 -install: release/robots/robots-2.0-3.tar.bz2 13778 61d09d19fb184ec7a00592e681e85d50 -source: release/robots/robots-2.0-3-src.tar.bz2 11475 679d5b5633bfdfbb40945db60b0bcf34 - -@ rpm -sdesc: "A package management system" -ldesc: "The RPM Package Manager (RPM) is a powerful command line driven -package management system capable of installing, uninstalling, -verifying, querying, and updating software packages. Each software -package consists of an archive of files along with information about -the package like its version, a description, etc." -category: Utils -requires: cygwin ash gawk fileutils textutils mktemp -version: 4.1-1 -install: release/rpm/rpm-4.1-1.tar.bz2 3916745 1d2b60aa37f6d5aec8f82720913dfe9b -source: release/rpm/rpm-4.1-1-src.tar.bz2 6512443 d75c9e9df5bf8f47d84adf7960574d56 - -@ rpm-build -sdesc: "Scripts and executable programs used to build RPM packages" -ldesc: "The rpm-build package contains the scripts and executable programs -that are used to build packages using the RPM Package Manager." -category: Utils -requires: cygwin rpm make patch perl -version: 4.1-1 -install: release/rpm/rpm-build/rpm-build-4.1-1.tar.bz2 581463 5b07f5aca7914743196c18d52abc26c4 -source: release/rpm/rpm-4.1-1-src.tar.bz2 6512443 d75c9e9df5bf8f47d84adf7960574d56 - -@ rpm-doc -sdesc: "RPM package management system manual pages" -ldesc: "These are the manual pages for RPM." -category: Utils -requires: man -version: 4.1-1 -install: release/rpm/rpm-doc/rpm-doc-4.1-1.tar.bz2 50941 8ef1d436b0978da89510f60378fed682 -source: release/rpm/rpm-4.1-1-src.tar.bz2 6512443 d75c9e9df5bf8f47d84adf7960574d56 - -@ rsync -sdesc: "Fast remote file transfer program (can use existing data to minimize transfer)" -ldesc: "rsync is a file transfer program. rsync uses the 'rsync algorithm' -which provides a very fast method for bringing -remote files into sync. It does this by sending just the -differences in the files across the link, without requiring -that both sets of files are present at one of the ends of the -link beforehand." -category: Net -requires: cygwin libpopt0 -version: 2.6.3-1 -install: release/rsync/rsync-2.6.3-1.tar.bz2 146864 3fd17049658428ec923ddc0e66aea7d4 -source: release/rsync/rsync-2.6.3-1-src.tar.bz2 594393 3b114d672f3e0fc727a3157a2368c404 -[prev] -version: 2.6.2-3 -install: release/rsync/rsync-2.6.2-3.tar.bz2 140116 04daea3c0d8d55ce67c84e50c5087197 -source: release/rsync/rsync-2.6.2-3-src.tar.bz2 525885 13ea3d48b702cd8523e5e542f4d5fc0b - -@ ruby -sdesc: "Interpreted object-oriented scripting language" -ldesc: "Ruby is the interpreted scripting language for quick and -easy object-oriented programming. It has many features to -process text files and to do system management tasks (as in -Perl). It is simple, straight-forward, and extensible. - -* Features of Ruby - -+ Simple Syntax -+ *Normal* Object-Oriented features (e.g., class, method calls) -+ *Advanced* Object-Oriented features(e.g., Mix-in, Singleton-method) -+ Operator Overloading -+ Exception Handling -+ Iterators and Closures -+ Garbage Collection -+ Dynamic Loading of Object Files (on some architecture) -+ Highly Portable (works on many UNIX machines, and on DOS, -Windows, Mac, BeOS, etc.)" -category: Interpreters Devel -requires: cygwin -version: 1.8.1-1 -install: release/ruby/ruby-1.8.1-1.tar.bz2 2346461 6558bb82dd2b47b451104eee2e19c400 -source: release/ruby/ruby-1.8.1-1-src.tar.bz2 2300223 f8749ef767ee09e16af063fa3e2ca01d -[prev] -version: 1.8.0-2 -install: release/ruby/ruby-1.8.0-2.tar.bz2 1894532 be8f1906bf0e8785985b1854252b71ee -source: release/ruby/ruby-1.8.0-2-src.tar.bz2 1842082 074db016bf6568038458052ca6a0eb89 - -@ rxvt -sdesc: "VT102 terminal emulator for both X and Windows" -category: Shells -requires: cygwin ash bash -version: 2.7.10-4 -install: release/rxvt/rxvt-2.7.10-4.tar.bz2 111016 bbf0876e3be4c4ef33be05aa0c94a63f -source: release/rxvt/rxvt-2.7.10-4-src.tar.bz2 897369 790bfb00d362ebd5ccee1f04e611cb3a -[prev] -version: 2.7.10-3 -install: release/rxvt/rxvt-2.7.10-3.tar.bz2 148798 dcf28c5637f8e0fdc2defc46e4ec7b1c -source: release/rxvt/rxvt-2.7.10-3-src.tar.bz2 699526 8e7e493be64d94e455f84fad11592966 - -@ s3270 -sdesc: "3270 Emulator (Scripted)" -ldesc: "s3270 is a scripted IBM 3270 terminal emulator. It can be used to -communicate with any IBM host that supports 3270-style connections over TELNET. -It can also communicate with hosts that use line-by-line ASCII mode to do -initial login negotiation before switching to full-screen 3270 mode. -s3270 emulates one of four models of an IBM 3278 or 3279 terminal. The -difference between the various models is the screen size. The emulation is -not quite complete; s3270 understands extended field orders but does not -implement some of the extended attributes (outlining, extended validation, -etc.). It does not support 3179G bit-mapped graphics (GDDM). -s3270 supports the APL character set and several international character sets. -Many APL and international symbols may be entered by their X11 symbol names." -category: Net -requires: cygwin suite3270 -version: 3.2.20-1 -install: release/suite3270/s3270/s3270-3.2.20-1.tar.bz2 87065 30cfbd3574dc31eb9c42816f2125b61d -source: release/suite3270/suite3270-3.2.20-1-src.tar.bz2 1275892 71982441f2ca037189693628e3f330b2 - -@ sed -sdesc: "The GNU sed stream editor" -ldesc: "The sed (Stream EDitor) editor is a stream or batch (non-interactive) -editor. Sed takes text as input, performs an operation or set of -operations on the text and outputs the modified text. The operations -that sed performs (substitutions, deletions, insertions, etc.) can be -specified in a script file or from the command line." -category: Base -requires: ash cygwin libintl3 libiconv2 -version: 4.1.2-1 -install: release/sed/sed-4.1.2-1.tar.bz2 113438 5e5b47d8243d1ce82f26bf71199ff6d4 -source: release/sed/sed-4.1.2-1-src.tar.bz2 611169 af6e1014a610ba91f8da05fbe2244542 -[prev] -version: 4.0.9-2 -install: release/sed/sed-4.0.9-2.tar.bz2 126467 df6a9731b42ca5eb9fb5d275b9049046 -source: release/sed/sed-4.0.9-2-src.tar.bz2 609573 0dd5662cf03ae27858a5b48ba6fa334c - -@ setsid -sdesc: "Execute a command in a new session" -category: Utils -requires: cygwin -version: 0.0-3 -install: release/setsid/setsid-0.0-3.tar.bz2 6424 1436ef6cf56ed0d6c265eb781bbbea5a -source: release/setsid/setsid-0.0-3-src.tar.bz2 2286 fa49ab9953853a187ecb309aeedceebf - -@ setup -sdesc: "The Cygwin Net Distribution installer and updater program." -category: System Net Utils -version: 2.427-1 -source: release/setup/setup-2.427-1-src.tar.bz2 795114 02c061e4ef9e087136398426d283d498 -[prev] -version: 2.416-1 -source: release/setup/setup-2.416-1-src.tar.bz2 786184 19c88769ad659cf53448ed7b506cac49 - -@ sh-utils -sdesc: "A set of GNU utilities commonly used in shell scripts" -category: Base Shells -requires: ash bash cygwin libintl2 libiconv2 -version: 2.0.15-4 -install: release/sh-utils/sh-utils-2.0.15-4.tar.bz2 463402 3fae3cc645926885d3886b184e9e6b78 -source: release/sh-utils/sh-utils-2.0.15-4-src.tar.bz2 1409307 7f87ccd1aef8c99925779943191cbb22 -[prev] -version: 2.0.15-3 -install: release/sh-utils/sh-utils-2.0.15-3.tar.bz2 457565 27085994c00f8df7b680e6c3fff6ca6f -source: release/sh-utils/sh-utils-2.0.15-3-src.tar.bz2 1515767 c1da883f252d219c6186161dd8f39d0a - -@ shared-mime-info -sdesc: "Shared MIME info database (freedesktop.org)" -ldesc: "This package contains the core database of common types and the -update-mime-database command used to extend it. It requires glib2 to be -installed for building the update command." -category: Utils -requires: cygwin glib2-runtime libiconv2 libintl3 libxml2 zlib -version: 0.15-1 -install: release/GNOME/shared-mime-info/shared-mime-info-0.15-1.tar.bz2 116899 e292348a6c61676859b42e8b559bc9ab -source: release/GNOME/shared-mime-info/shared-mime-info-0.15-1-src.tar.bz2 318697 64ae0a927de06765ca21bde09b22130d - -@ sharutils -sdesc: "The GNU shar utilities including uuencode/uudecode." -ldesc: "The sharutils package contains the GNU shar utilities, a set of tools -for encoding and decoding packages of files (in binary or text format) -in a special plain text format called shell archives (shar). This -format can be sent through e-mail (which can be problematic for regular -binary files). The shar utility supports a wide range of capabilities -(compressing, uuencoding, splitting long files for multi-part -mailings, providing checksums), which make it very flexible at -creating shar files. After the files have been sent, the unshar tool -scans mail messages looking for shar files. Unshar automatically -strips off mail headers and introductory text and then unpacks the -shar files." -category: Archive -requires: ash cygwin libintl2 libiconv2 -version: 4.2.1-3 -install: release/sharutils/sharutils-4.2.1-3.tar.bz2 81981 83e0b0b541e16025f2c8865701d86621 -source: release/sharutils/sharutils-4.2.1-3-src.tar.bz2 254528 36750e70dd81485e0ea992570732e324 -[prev] -version: 4.2.1-2 -install: release/sharutils/sharutils-4.2.1-2.tar.bz2 73315 a7190d403270da49a8bc02ba91b5b3c7 -source: release/sharutils/sharutils-4.2.1-2-src.tar.bz2 256484 3ce3b151dfd1c541a7a9bc1052757442 - -@ shutdown -sdesc: "Shutdown, reboot, hibernate or suspend the machine" -category: Admin -requires: cygwin -version: 1.4-1 -install: release/shutdown/shutdown-1.4-1.tar.bz2 7964 e7401b9fdc070c43a902002f7ad66ec5 -source: release/shutdown/shutdown-1.4-1-src.tar.bz2 9656 da124bfd7ec0f1fa54a57574072aff6e -[prev] -version: 1.3-1 -install: release/shutdown/shutdown-1.3-1.tar.bz2 9314 27bad9aaa6a7ae6480817e41a0909589 -source: release/shutdown/shutdown-1.3-1-src.tar.bz2 9617 cbf37220ea119e4df185ae898914d987 - -@ splint -sdesc: "A better lint" -ldesc: "Splint is a tool for statically checking C programs for -security vulnerabilities and coding mistakes. With minimal -effort, Splint can be used as a better lint. If additional -effort is invested adding annotations to programs, Splint -can perform stronger checking than can be done by any -standard lint." -category: Devel -requires: cygwin -version: 3.1.1-1 -install: release/splint/splint-3.1.1-1.tar.bz2 1498184 c2d8c21e8a6155f7e62b3cce5909f7a5 -source: release/splint/splint-3.1.1-1-src.tar.bz2 1955382 ad08d0ad36371570a1a0da4456ef00f6 - -@ squid -sdesc: "Internet Object Cache (WWW proxy cache)" -category: Web -requires: cygwin cygrunsrv -version: 2.4.STABLE7-1 -install: release/squid/squid-2.4.STABLE7-1.tar.bz2 278669 b718ac8343d0518f10f1552c5ef2b292 -source: release/squid/squid-2.4.STABLE7-1-src.tar.bz2 865873 7d3c7b66bbc208e40a925e3e495eee0f - -@ ssmtp -sdesc: "A minimal mail-transfer agent which forwards mail to an SMTP server" -ldesc: "This is sSMTP, an extremely simple sendmail replacement, which -forwards messages to a mailhub (e.g. your ISP's outgoing mail server), -and does nothing else." -category: Mail -requires: cygwin -version: 2.60.9-3 -install: release/ssmtp/ssmtp-2.60.9-3.tar.bz2 24503 61683a6d74c420aca8fd6d476386f40a -source: release/ssmtp/ssmtp-2.60.9-3-src.tar.bz2 53716 7537ce48e2def81d7697520eb5dd0c31 -[prev] -version: 2.60.4-3 -install: release/ssmtp/ssmtp-2.60.4-3.tar.bz2 22325 394f08640b62f11955c4ce95dac17336 -source: release/ssmtp/ssmtp-2.60.4-3-src.tar.bz2 46738 0646af3f642119ac411e501a459730eb - -@ startup-notification -sdesc: "Program startup notification library" -ldesc: "startup-notification contains a reference implementation of the -startup notification protocol. The reference implementation is mostly -under an X Window System style license, and has no special -dependencies." -category: Gnome -requires: cygwin xorg-x11-base -version: 0.8-1 -install: release/GNOME/startup-notification/startup-notification-0.8-1.tar.bz2 42142 9f9570f2eac63b1a03bf04dd0467f46b -source: release/GNOME/startup-notification/startup-notification-0.8-1-src.tar.bz2 339057 2531af5a8d047f0d7ace026407cff945 -[prev] -version: 0.7-1 -install: release/GNOME/startup-notification/startup-notification-0.7-1.tar.bz2 34478 dcc6a305919c4333e14283791e3daa7f -source: release/GNOME/startup-notification/startup-notification-0.7-1-src.tar.bz2 292336 670f271f4d8900e5f68c52e1ccce19a6 - -@ stunnel -sdesc: "Universal SSL Wrapper" -category: Net -requires: cygwin openssl -version: 4.04-3 -install: release/stunnel/stunnel-4.04-3.tar.bz2 70888 599bf0424b1f0944556df2ae3bae0ab4 -source: release/stunnel/stunnel-4.04-3-src.tar.bz2 319215 582571528d99cbea88b54e61a72e3663 - -@ subversion -sdesc: "A version control system" -ldesc: "Subversion is a version control system that aims to be a compelling -replacement for CVS in the open source community" -category: Devel -requires: cygwin libaprutil0 libapr0 libdb4.2 libneon24 expat libintl3 -version: 1.1.1-1 -install: release/subversion/subversion-1.1.1-1.tar.bz2 993236 a00c29db203a4f317f79523b711dbabc -source: release/subversion/subversion-1.1.1-1-src.tar.bz2 6806426 8f4b616b7d5a63f6b25b5b528fd80795 -[prev] -version: 1.0.6-1 -install: release/subversion/subversion-1.0.6-1.tar.bz2 338841 64a182d75742886b04cee39518a6dff7 -source: release/subversion/subversion-1.0.6-1-src.tar.bz2 6058371 8a21333c388df9dd06e89434f42b1cf9 - -@ subversion-devel -sdesc: "A version control system (C headers and import libraries)" -ldesc: "Subversion is a version control system that aims to be a compelling -replacement for CVS in the open source community" -category: Devel -requires: subversion -version: 1.1.1-1 -install: release/subversion/subversion-devel/subversion-devel-1.1.1-1.tar.bz2 142319 38af89e4822470599eeb2f0f9c6eb19a -source: release/subversion/subversion-1.1.1-1-src.tar.bz2 6806426 8f4b616b7d5a63f6b25b5b528fd80795 -[prev] -version: 1.0.6-1 -install: release/subversion/subversion-devel/subversion-devel-1.0.6-1.tar.bz2 128836 2603a6502a0f98cc6c9e86f8cc855de9 -source: release/subversion/subversion-1.0.6-1-src.tar.bz2 6058371 8a21333c388df9dd06e89434f42b1cf9 - -@ suite3270 -sdesc: "3270 Emulator Suite base package" -ldesc: "Base package for a suite of 3270 Emulators derived from x3270." -category: Net -requires: cygwin -version: 3.2.20-1 -install: release/suite3270/suite3270-3.2.20-1.tar.bz2 14209 207cc1a6655bf5152f2fab944d4ccf7e -source: release/suite3270/suite3270-3.2.20-1-src.tar.bz2 1275892 71982441f2ca037189693628e3f330b2 - -@ sunrpc -sdesc: "Sun RPC (ONC/RPC) libraries and utilities." -ldesc: "This distribution contains Sun Microsystem's implementation of the -RPC and XDR protocols. Also included is complete documentation, -utilities, RPC service specification files, and demonstration services -in the format used by the RPC protocol compiler (rpcgen)." -category: Libs -requires: cygwin -version: 4.0-2 -install: release/sunrpc/sunrpc-4.0-2.tar.bz2 106201 fe92bbda6e2a1baa764aff84a8578078 -source: release/sunrpc/sunrpc-4.0-2-src.tar.bz2 226217 4583ca09e2844e52f7a7c34169c4bfc0 -[prev] -version: 4.0-1 -install: release/sunrpc/sunrpc-4.0-1.tar.bz2 107399 e6ba77c63fc21b2adeaa72183d9480ef -source: release/sunrpc/sunrpc-4.0-1-src.tar.bz2 223253 e8c842207212a883074eff9286e4c22c - -@ swig -sdesc: "Simplified Wrapper Interface Generator" -ldesc: "Simplified Wrapper Interface Generator. -SWIG is a software development tool that connects programs written in -C and C++ with a variety of high-level programming languages. SWIG is -primarily used with common scripting languages such as Perl, Python, -Tcl/Tk, Ruby, Guile and MzScheme, however the list of supported -languages also includes non-scripting languages such as Java and -OCAML. SWIG is most commonly used to create high-level interpreted -programming environments, user interfaces, and as a tool for testing -and prototyping C/C++ software. SWIG may be freely used, distributed, -and modified for commercial and noncommercial use. -See http://www.swig.org for more details." -category: Devel -requires: cygwin -version: 1.3.19-1 -install: release/swig/swig-1.3.19-1.tar.bz2 751549 89a6c688dc25ae194be99999267b48a9 -source: release/swig/swig-1.3.19-1-src.tar.bz2 1274958 99fdb544598e8feca8a10c87e54d7399 -[prev] -version: 1.3.16-1 -install: release/swig/swig-1.3.16-1.tar.bz2 625275 76f8fa7ada5f98110953a3f15e197a81 -source: release/swig/swig-1.3.16-1-src.tar.bz2 1040142 6267c3699ed742f132defe47d5d9f338 - -@ sysvinit -sdesc: "A System-V Init Clone" -ldesc: "Init is the parent of all processes. Its primary role is -to create processes from a script stored in the file -/etc/inittab (see inittab(5)). This file usually has -entries which cause init to spawn gettys on each line that -users can log in. It also controls autonomous processes -required by any particular system." -category: System -requires: cygwin cygrunsrv -version: 2.84-4 -install: release/sysvinit/sysvinit-2.84-4.tar.bz2 50943 3c504092db5682c9be03700becb9cfe6 -source: release/sysvinit/sysvinit-2.84-4-src.tar.bz2 83156 ffeba7fc1bf0f42920e48ecf7227b3ae -[prev] -version: 2.84-3 -install: release/sysvinit/sysvinit-2.84-3.tar.bz2 49950 55c314e0cf351baff4068286ea1e29b3 -source: release/sysvinit/sysvinit-2.84-3-src.tar.bz2 83121 0e280d1176273d90e6644717ce549e51 - -@ t1lib -sdesc: "Library for generating character- and string-glyphs from Adobe Type 1 fonts" -ldesc: "t1lib is a library distributed under the GNU General Public Library -License for generating character- and string-glyphs from Adobe Type 1 -fonts under UNIX. t1lib uses most of the code of the X11 rasterizer -donated by IBM to the X11-project. But some disadvantages of the -rasterizer being included in X11 have been eliminated. Here are some -of the features: - -- t1lib is completely independent of X11 (although the program - provided for testing the library needs X11) - -- fonts are made known to library by means of a font database file at - runtime - -- searchpaths for all types of input files are configured by means - of a configuration file at runtime - -- characters are rastered as they are needed - -- characters and complete strings may be rastered by a simple function - call - -- when rastering strings, pairwise kerning information from .afm-files - may optionally be taken into account - -- an interface to ligature-information of afm-files is provided - -- a program to generate afm-files from Type 1 font files is included - -- rotation and arbitrary transformations are supported - -- there's support for extending and slanting fonts - -- underlining, overlining and overstriking is supported - -- new encoding Menges may be loaded at runtime and fonts may be - reencoded using these encoding Menges - -- antialiasing is implemented - -- Right-To-Left typesetting is supported - -- Font subsetting is easily possible - -- support of composite character information - -- stroking of character outlines with variable strokewidths - -- An interactive test program called 'xglyph' is included in the - distribution. This program allows to test all of the features of the - library. It requires X11." -category: Libs -requires: cygwin -version: 5.0.2-1 -install: release/t1lib/t1lib-5.0.2-1.tar.bz2 1095152 6a6c1a7bde07c9c56b5cb8b474cf1249 -source: release/t1lib/t1lib-5.0.2-1-src.tar.bz2 1709418 e8a4440a11fb7cf780cc17b327ec5d73 - -@ t1lib-x11 -sdesc: "Library for generating character- and string-glyphs from Adobe Type 1 fonts (X11 support)" -ldesc: "t1lib is a library distributed under the GNU General Public Library -License for generating character- and string-glyphs from Adobe Type 1 -fonts under UNIX. t1lib uses most of the code of the X11 rasterizer -donated by IBM to the X11-project. But some disadvantages of the -rasterizer being included in X11 have been eliminated. Here are some -of the features: - -- t1lib is completely independent of X11 (although the program - provided for testing the library needs X11) - -- fonts are made known to library by means of a font database file at - runtime - -- searchpaths for all types of input files are configured by means - of a configuration file at runtime - -- characters are rastered as they are needed - -- characters and complete strings may be rastered by a simple function - call - -- when rastering strings, pairwise kerning information from .afm-files - may optionally be taken into account - -- an interface to ligature-information of afm-files is provided - -- a program to generate afm-files from Type 1 font files is included - -- rotation and arbitrary transformations are supported - -- there's support for extending and slanting fonts - -- underlining, overlining and overstriking is supported - -- new encoding Menges may be loaded at runtime and fonts may be - reencoded using these encoding Menges - -- antialiasing is implemented - -- Right-To-Left typesetting is supported - -- Font subsetting is easily possible - -- support of composite character information - -- stroking of character outlines with variable strokewidths - -- An interactive test program called 'xglyph' is included in the - distribution. This program allows to test all of the features of the - library. It requires X11." -category: Libs -requires: cygwin t1lib xorg-x11-bin-dlls -version: 5.0.2-1 -install: release/t1lib/t1lib-x11/t1lib-x11-5.0.2-1.tar.bz2 37946 c9c587a019cccea625c75e7bfc3a98e2 -source: release/t1lib/t1lib-5.0.2-1-src.tar.bz2 1709418 e8a4440a11fb7cf780cc17b327ec5d73 - -@ tar -sdesc: "A GNU file archiving program" -ldesc: "The GNU tar program saves many files together in one archive -and can restore individual files (or all of the files) from that -archive. Tar can also be used to add supplemental files to an archive and -to update or list files in the archive. Tar includes multivolume support, -automatic archive compression/decompression, the ability to perform -remote archives, and the ability to perform incremental and full backups." -category: Base -requires: ash cygwin gzip bzip2 libintl2 libiconv2 -version: 1.13.25-5 -install: release/tar/tar-1.13.25-5.tar.bz2 288171 02a5c45085078c5c9aa40898d70363c5 -source: release/tar/tar-1.13.25-5-src.tar.bz2 964365 042d10660f9ebf1a4e9a9a4398866aa8 -[prev] -version: 1.13.25-3 -install: release/tar/tar-1.13.25-3.tar.bz2 293352 c10ec0285fee1ede3985ec6cb6eeec1a -source: release/tar/tar-1.13.25-3-src.tar.bz2 963460 df04de85c0fa1a866f47789d55aed2e1 - -@ tcl3270 -sdesc: "3270 Emulator (Tcl)" -ldesc: "tcl3270 is a scripted IBM 3270 terminal emulator. It can be used to -communicate with any IBM host that supports 3270-style connections over TELNET. -It can also communicate with hosts that use line-by-line ASCII mode to do -initial login negotiation before switching to full-screen 3270 mode. -tcl3270 emulates one of four models of an IBM 3278 or 3279 terminal. The -difference between the various models is the screen size. The emulation is -not quite complete; tcl3270 understands extended field orders but does not -implement some of the extended attributes (outlining, extended validation, -etc.). It does not support 3179G bit-mapped graphics (GDDM). -tcl3270 supports the APL character set and several international character sets. -Many APL and international symbols may be entered by their X11 symbol names." -category: Net -requires: cygwin suite3270 tcltk -version: 3.2.20-1 -install: release/suite3270/tcl3270/tcl3270-3.2.20-1.tar.bz2 83527 8a2e8ee6c2ebd454dff5d8e58151f8e3 -source: release/suite3270/suite3270-3.2.20-1-src.tar.bz2 1275892 71982441f2ca037189693628e3f330b2 - -@ tcltk -sdesc: "TCL/Tk libraries" -category: Libs -version: 20030901-1 -install: release/tcltk/tcltk-20030901-1.tar.bz2 1893177 59669b0ef6d7f1d676ce1d343094a8cb -source: release/tcltk/tcltk-20030901-1-src.tar.bz2 6447506 b096e759ec563339fa7a1eba09ac287d -[prev] -version: 20030214-1 -install: release/tcltk/tcltk-20030214-1.tar.bz2 1894311 d72d1c3ded5728b3549389d8b4594b3d -source: release/tcltk/tcltk-20030214-1-src.tar.bz2 6407935 5cdd5b73f53dbe5d867a62b505773ff0 - -@ tcm -sdesc: "Toolkit for Conceptual Modeling (TCM)" -ldesc: "The Toolkit for Conceptual Modeling is a collection of software tools to present conceptual models of software systems in the form of diagrams, tables, trees, and the like." -category: Devel Graphics -requires: xorg-x11-bin lesstif -version: 2.20-1 -install: release/X11/tcm/tcm-2.20-1.tar.bz2 4137299 0cfe6e2e85b71f0abf98f12348201b59 -source: release/X11/tcm/tcm-2.20-1-src.tar.bz2 4986279 d5598c63a75b643548e5f5293967c9d7 - -@ tcp_wrappers -sdesc: "TCP Wrappers, Tool to provide host based access restrictions in tcp services" -ldesc: "TCP Wrappers, With this package you can monitor and filter incoming -requests for the SYSTAT, FINGER, FTP, TELNET, RLOGIN, RSH, EXEC, TFTP, TALK, -and other network services. - -The package provides tiny daemon wrapper programs that can be installed -without any changes to existing software or to existing configuration -files. The wrappers report the name of the client host and of the -requested service; the wrappers do not exchange information with the -client or server applications, and impose no overhead on the actual -conversation between the client and server applications." -category: Net -requires: cygwin -version: 7.6-1 -install: release/tcp_wrappers/tcp_wrappers-7.6-1.tar.bz2 67090 1a93ab3f161bad12cbf954a68e9ccaaa -source: release/tcp_wrappers/tcp_wrappers-7.6-1-src.tar.bz2 112157 660a1dc60508edd721a639b9d129b921 - -@ tcsh -sdesc: "TENEX C Shell, an enhanced version of Berkeley csh" -category: Shells -requires: cygwin libncurses7 terminfo -version: 6.13.00-2 -install: release/tcsh/tcsh-6.13.00-2.tar.bz2 336379 16c210e42552fd70b0415cb87bad965f -source: release/tcsh/tcsh-6.13.00-2-src.tar.bz2 701756 952c232496b277ca8aa2ec9fb8cc0cc7 -[prev] -version: 6.13.00-1 -install: release/tcsh/tcsh-6.13.00-1.tar.bz2 336327 e52c30f011e8ecf60da45506046d4bb9 -source: release/tcsh/tcsh-6.13.00-1-src.tar.bz2 707477 68325895242b9457783462c747885142 - -@ termcap -sdesc: "Compatibility package for old termcap-based programs" -category: Base Libs -requires: cygwin -version: 20021106-2 -install: release/termcap/termcap-20021106-2.tar.bz2 19149 14b7ac64c6ae910683b2ed01d66c8f9c -source: release/termcap/termcap-20021106-2-src.tar.bz2 48242 7fddc29d42f526481285d65a52631a0e -[prev] -version: 20020930-1 -install: release/termcap/termcap-20020930-1.tar.bz2 19090 dcc8fcfb8b1a1d5ad6cd6a31cffd4862 -source: release/termcap/termcap-20020930-1-src.tar.bz2 43878 a303fd549679f7b45197d1c9db6901f8 - -@ terminfo -sdesc: "Database for ncurses-style terminal handling" -ldesc: "This database provides the terminal descriptions necessary -for proper operation of programs based on the ncurses library" -category: Base -version: 5.4_20041009-1 -install: release/terminfo/terminfo-5.4_20041009-1.tar.bz2 194430 16163aabdbb1c4ede540884ab92919f9 -source: release/terminfo/terminfo-5.4_20041009-1-src.tar.bz2 287165 db64f482ac31119aa3abbb9b7f0b1cbc -[prev] -version: 5.3_20030726-1 -install: release/terminfo/terminfo-5.3_20030726-1.tar.bz2 183903 61334751fda9baf8172f1f8736a1fefb -source: release/terminfo/terminfo-5.3_20030726-1-src.tar.bz2 275017 074b7ca0cce63a2d367d0bf6e95bc1cf - -@ tetex -sdesc: "The TeX text formatting system (install helper)." -ldesc: "teTeX text formatting system. -This is teTeX, a TeX distribution for UNIX compatible systems. This -virtual tetex package will install tetex-bin and tetex-tiny, the -minimal working teTeX setup. It is advised to install tetex-base too. -If you have plenty of bandwith, find the rest of teTeX in tetex-extra -and tetex-doc." -category: Text Publishing -requires: tetex-bin tetex-tiny -version: 2.0.2-15 -install: release/tetex/tetex-2.0.2-15.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 -source: release/tetex/tetex-2.0.2-15-src.tar.bz2 46848864 9f304386846a8e9154459660b27610e0 -[prev] -version: 2.0.2-14 -install: release/tetex/tetex-2.0.2-14.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 -source: release/tetex/tetex-2.0.2-14-src.tar.bz2 46853063 a636f6c288d118cb3cf6768f46858d28 - -@ tetex-base -sdesc: "The TeX text formatting system (basic libraries)." -ldesc: "Basic library files for the Cygwin teTeX distribution. Together with -tetex-bin you have a useful TeX installation. With tetex-extra, you have a -complete installation." -category: Text Publishing -requires: tetex-bin -version: 2.0.2-15 -install: release/tetex/tetex-base/tetex-base-2.0.2-15.tar.bz2 15436600 1d00c4409cb719fbf10e1da7a5392ecf -source: release/tetex/tetex-2.0.2-15-src.tar.bz2 46848864 9f304386846a8e9154459660b27610e0 -[prev] -version: 2.0.2-14 -install: release/tetex/tetex-base/tetex-base-2.0.2-14.tar.bz2 15435725 e558f013faf4204197cc33c9f1af0ca1 -source: release/tetex/tetex-2.0.2-14-src.tar.bz2 46853063 a636f6c288d118cb3cf6768f46858d28 - -@ tetex-bin -sdesc: "The TeX text formatting system (binaries)." -ldesc: "teTeX binary files -This is teTeX, a TeX distribution for UNIX compatible systems. These -are all the binaries for the teTeX system. You need at least -tetex-tiny or tetex-base together with it." -category: Text Publishing -requires: bash clear cygutils cygwin ed diffutils fileutils findutils gawk grep libjpeg62 libkpathsea3 libncurses6 libncurses7 libpng12 libtiff4 perl sed sh-utils textutils termcap zlib _update-info-dir -version: 2.0.2-15 -install: release/tetex/tetex-bin/tetex-bin-2.0.2-15.tar.bz2 2906522 33de61795bb0dcfec38b4eada8821363 -source: release/tetex/tetex-bin/tetex-bin-2.0.2-15-src.tar.bz2 9616230 2fc483ff47511b124b2c7d52935b611d -[prev] -version: 2.0.2-14 -install: release/tetex/tetex-bin/tetex-bin-2.0.2-14.tar.bz2 2895671 8bbe0fd5cb83464e27e886c54da1a20c -source: release/tetex/tetex-bin/tetex-bin-2.0.2-14-src.tar.bz2 9609604 4c0f05c9e51883275ea9b7922ee57e2c - -@ tetex-devel -sdesc: "The TeX text formatting system (headers and static libraries)." -ldesc: "The TeX text formatting system (headers and static libraries) -The teTeX development headers and kpathsea static library." -category: Devel Libs -requires: cygwin libkpathsea3 -version: 2.0.2-15 -install: release/tetex/tetex-devel/tetex-devel-2.0.2-15.tar.bz2 58367 561b46fb2ee0dd08e68de824ba84af9e -source: release/tetex/tetex-bin/tetex-bin-2.0.2-15-src.tar.bz2 9616230 2fc483ff47511b124b2c7d52935b611d -[prev] -version: 2.0.2-14 -install: release/tetex/tetex-devel/tetex-devel-2.0.2-14.tar.bz2 58345 0e55922c986b08d01f690700ee654bae -source: release/tetex/tetex-bin/tetex-bin-2.0.2-14-src.tar.bz2 9609604 4c0f05c9e51883275ea9b7922ee57e2c - -@ tetex-doc -sdesc: "The TeX text formatting system (documentation)." -ldesc: "The TeX text formatting system (documentation). -Documentation for the Cygwin teTeX distribution." -category: Doc -requires: cygwin -version: 2.0.2-15 -install: release/tetex/tetex-doc/tetex-doc-2.0.2-15.tar.bz2 21256716 f7ef8473ea739d65e745141f34b9c114 -source: release/tetex/tetex-2.0.2-15-src.tar.bz2 46848864 9f304386846a8e9154459660b27610e0 -[prev] -version: 2.0.2-14 -install: release/tetex/tetex-doc/tetex-doc-2.0.2-14.tar.bz2 21255647 fbcf9b011d31509b9ffec6f82412d780 -source: release/tetex/tetex-2.0.2-14-src.tar.bz2 46853063 a636f6c288d118cb3cf6768f46858d28 - -@ tetex-extra -sdesc: "The TeX text formatting system (extra libraries)." -ldesc: "Extra library files for the Cygwin teTeX distribution. Together with -tetex-bin and tetex-base you have a complete TeX installation." -category: Text Publishing -requires: tetex-bin tetex-base -version: 2.0.2-15 -install: release/tetex/tetex-extra/tetex-extra-2.0.2-15.tar.bz2 10153060 41c7cc0c2c6e4d8eb655a37332a1af12 -source: release/tetex/tetex-2.0.2-15-src.tar.bz2 46848864 9f304386846a8e9154459660b27610e0 -[prev] -version: 2.0.2-14 -install: release/tetex/tetex-extra/tetex-extra-2.0.2-14.tar.bz2 10153470 f595b242444b745597d52f764b9b5191 -source: release/tetex/tetex-2.0.2-14-src.tar.bz2 46853063 a636f6c288d118cb3cf6768f46858d28 - -@ tetex-tiny -sdesc: "The TeX text formatting system (tiny libraries subset)." -ldesc: "Very small subset of library files for the Cygwin teTeX distribution. -Together with tetex-bin you have a minimal TeX installation. For a -reasonable TeX installation, tetex-base is recommended." -category: Text Publishing -requires: tetex-bin -version: 2.0.2-15 -install: release/tetex/tetex-tiny/tetex-tiny-2.0.2-15.tar.bz2 2485694 8d2d2635238435f565c74784951677bb -source: release/tetex/tetex-2.0.2-15-src.tar.bz2 46848864 9f304386846a8e9154459660b27610e0 -[prev] -version: 2.0.2-14 -install: release/tetex/tetex-tiny/tetex-tiny-2.0.2-14.tar.bz2 2463515 2046e2cffe3658419a356c0ddbc10bc2 -source: release/tetex/tetex-2.0.2-14-src.tar.bz2 46853063 a636f6c288d118cb3cf6768f46858d28 - -@ tetex-x11 -sdesc: "The TeX text formatting system (X11 binaries)." -ldesc: "teTeX X11 binary files -This is teTeX, a TeX distribution for UNIX compatible systems. These -are all the X11 binaries for the teTeX system. You need to install -XFree86 and at least tetex-tiny or tetex-base together with it." -category: Text Publishing -requires: cygwin XFree86-base xorg-x11-base ghostscript-x11 -version: 2.0.2-15 -install: release/tetex/tetex-x11/tetex-x11-2.0.2-15.tar.bz2 714770 a5bb7b459c1c4629df3165361724e44a -source: release/tetex/tetex-bin/tetex-bin-2.0.2-15-src.tar.bz2 9616230 2fc483ff47511b124b2c7d52935b611d -[prev] -version: 2.0.2-14 -install: release/tetex/tetex-x11/tetex-x11-2.0.2-14.tar.bz2 1309410 a49a93c352ff766d3496bdef234acb3a -source: release/tetex/tetex-bin/tetex-bin-2.0.2-14-src.tar.bz2 9609604 4c0f05c9e51883275ea9b7922ee57e2c - -@ texinfo -sdesc: "Documentation system for on-line information and printed output" -category: Text Doc -requires: cygwin libintl1 libgettextpo0 -version: 4.2-4 -install: release/texinfo/texinfo-4.2-4.tar.bz2 611194 dffc9778ff5ca4d610301d90bcfee3a8 -source: release/texinfo/texinfo-4.2-4-src.tar.bz2 1331810 47f9fc3e3d81abe8712ddb1c6706c718 -[prev] -version: 4.2-3 -install: release/texinfo/texinfo-4.2-3.tar.bz2 590033 d1d8b4bee3682d515a4b3c91e0e759aa -source: release/texinfo/texinfo-4.2-3-src.tar.bz2 1332838 2d5bb9be3c17f29f6fda0ffbb2ae8d2d - -@ textutils -sdesc: "The GNU text file processing utilities" -category: Base -requires: ash cygwin libintl1 -version: 2.0.21-1 -install: release/textutils/textutils-2.0.21-1.tar.bz2 507314 1240cedae1cf3e7f7f95a27895cabf61 -source: release/textutils/textutils-2.0.21-1-src.tar.bz2 1814936 adab364a7d115c56cafe93689c1d3af7 - -@ tidy -sdesc: "A program to clean up and correct messy HTML pages" -ldesc: "HTML Tidy is a program to clean up and correct messy HTML pages. -Tidy is able to fix up a wide range of problems and to bring to your attention things that you need to work on yourself." -category: Text Web -requires: cygwin -version: 030901-1 -install: release/tidy/tidy-030901-1.tar.bz2 498082 5f0ac2a84111ba475b46fcdfa9f52368 -source: release/tidy/tidy-030901-1-src.tar.bz2 749208 8c8f462c6b991cf488560d73a89087e0 -[prev] -version: 030201-1 -install: release/tidy/tidy-030201-1.tar.bz2 237613 8347d620b8515d78434f33b108d00df0 -source: release/tidy/tidy-030201-1-src.tar.bz2 395790 35761099541d51cd19907216eec456b9 - -@ tiff -sdesc: "A library for manipulating TIFF format image files (utilities)" -ldesc: "The tiff package contains a library of functions for -manipulating TIFF (Tagged Image File Format) image format files. TIFF -is a widely used file format for bitmapped images. TIFF files usually -end in the .tif extension and they are often quite large. The tiff -package also contains binaries needed to manipulate TIFF format -image files." -category: Graphics Libs -requires: ash cygwin libtiff5 libtiff4 libjpeg62 zlib libtiff-devel -version: 3.7.0beta2-1 -install: release/tiff/tiff-3.7.0beta2-1.tar.bz2 430571 a4ed6ac21b5d22316fe28f94bc9304b7 -source: release/tiff/tiff-3.7.0beta2-1-src.tar.bz2 3025307 e7e72b43cde9cd4fd2aab35d63a926bb -[prev] -version: 3.6.0-5 -install: release/tiff/tiff-3.6.0-5.tar.bz2 332165 bf8fe943b0c7ba461da1c4b607255df1 -source: release/tiff/tiff-3.6.0-5-src.tar.bz2 2528142 02d0f046882827fed0234172e4aa132e - -@ time -sdesc: "The GNU time command" -category: Utils -requires: cygwin _update-info-dir -version: 1.7-1 -install: release/time/time-1.7-1.tar.bz2 11171 f3cf5151a1fcc825c01341888e7d84e2 -source: release/time/time-1.7-1-src.tar.bz2 93811 47faead9ff9dae9d6ec4f4c088bde0c6 - -@ tin -sdesc: "A News Reader" -ldesc: "Tin is a full-screen, easy to use Netnews reader. It can read news -locally (i.e. /var/spool/news) or remotely (rtin or tin -r option) -via an NNTP (Network News Transport Protocol) server." -category: Net Mail -requires: cygwin libncurses7 terminfo libintl2 libiconv2 -version: 1.6.2-3 -install: release/tin/tin-1.6.2-3.tar.bz2 376832 f6aa3b3586a63a9b88e941ee158c8521 -source: release/tin/tin-1.6.2-3-src.tar.bz2 1193848 ea54bc30f0ea9c98606f8f8f8e7c3680 -[prev] -version: 1.6.2-1 -install: release/tin/tin-1.6.2-1.tar.bz2 361508 918adbebe234d0d2422439c6c2981c83 -source: release/tin/tin-1.6.2-1-src.tar.bz2 1193929 1204d7249047227f0cf082a326e9c681 - -@ transfig -sdesc: "Transfig" -ldesc: "TransFig is a set of tools for creating TeX documents with -graphics which are portable, in the sense that they can be printed in -a wide variety of environments." -category: X11 -requires: cygwin xorg-x11-base libpng ghostscript -version: 3.2.4-2 -install: release/X11/transfig/transfig-3.2.4-2.tar.bz2 179318 9aa05a2d82734648b11ff9331b4ae3f9 -source: release/X11/transfig/transfig-3.2.4-2-src.tar.bz2 337195 192eab0750b7cd8fb6ff2667177fa653 - -@ ttcp -sdesc: "Popular network benchmarking tool" -ldesc: "ttcp is a very nice network throughput testing tool. -It can also be used on Unix systems to create a network pipe -through which you can push any other data you might have." -category: Net -requires: cygwin -version: 19980512-1 -install: release/ttcp/ttcp-19980512-1.tar.bz2 9769 d56aca07111e16bd3a3dd4b36380b19c -source: release/ttcp/ttcp-19980512-1-src.tar.bz2 13037 8a6fd57119aff043f0be065a85b36eff - -@ tzcode -sdesc: "The time zone package" -ldesc: "The public-domain time zone database contains code and data that represent the history of local time for many -representative locations around the globe. It is updated periodically to reflect changes made by political bodies to UTC -offsets and daylight-saving rules. - -Each location in the database represents a national region where all clocks keeping local time have agreed since 1970. -Locations are identified by continent or ocean and then by the name of the location, which is typically the largest city -within the region. For example, America/New_York represents most of the US eastern time zone; America/Indianapolis -represents most of Indiana, which uses eastern time without daylight saving time (DST); America/Detroit represents most of -Michigan, which uses eastern time but with different DST rules in 1975; and other entries represent smaller regions like -Starke County, Kentucky, which switched from central to eastern time in 1991. To use the database, set the TZ environment -variable to the location's full name, e.g., TZ=America/New_York." -category: Libs System -requires: cygwin gawk pdksh -version: 2004d-1 -install: release/tzcode/tzcode-2004d-1.tar.bz2 208561 40ee068407bf27f494e86c15abdc7a11 -source: release/tzcode/tzcode-2004d-1-src.tar.bz2 334874 d738ee9cb39050b2c950f5f11a910bed -[prev] -version: 2003e-1 -install: release/tzcode/tzcode-2003e-1.tar.bz2 189430 b25897da919a027933507b246c7ab2e7 -source: release/tzcode/tzcode-2003e-1-src.tar.bz2 261268 e8a69b49eac95ab125764ffec0ed2ea1 - -@ ucl -sdesc: "A portable, lossless data compression library" -ldesc: "UCL is a portable lossless data compression library written in ANSI C. -UCL implements a number of compression algorithms that achieve an excellent -compression ratio while allowing *very* fast decompression. -Decompression requires no additional memory." -category: Libs -requires: cygwin -version: 1.01-1 -install: release/ucl/ucl-1.01-1.tar.bz2 21219 efee5c1fef5573e30644a175e59be6f6 -source: release/ucl/ucl-1.01-1-src.tar.bz2 263776 0500736047955ca2895f47406dd5490e - -@ unison -sdesc: "Synchronize collections of files on different hosts (text interface)" -ldesc: "Unison is a file synchronizer for Unix and Windows. It -allows two replicas of a collection of files and directories to be -stored on different hosts (or different disks on the same host), -modified separately, and then brought up to date by propagating the -changes in each replica to the other." -category: Utils -requires: cygwin -version: 2.10.2-3 -install: release/unison/unison-2.10.2-3.tar.bz2 409697 f886396a71b1f53e598710cb58bc2dc1 -source: release/unison/unison-2.10.2-3-src.tar.bz2 527968 d6056bad7d387c686472268d57031ec1 -[prev] -version: 2.9.20-1 -install: release/unison/unison-2.9.20-1.tar.bz2 365359 fae59e2009e390c62353760181e7d325 -source: release/unison/unison-2.9.20-1-src.tar.bz2 365463 14ea1d264a245292076ef4a6b7b33a3c - -@ units -sdesc: "Converts between different systems of units" -ldesc: "Units converts between different systems of units. -GNU units program converts quantities expressed in various scales -to their equivalents in other scales. The units program can only -handle multiplicative scale changes. For example, it cannot convert -Celsius to Fahrenheit but it can convert temperature differences -between those temperature scales." -category: Utils -requires: cygwin libreadline5 -version: 1.77-1 -install: release/units/units-1.77-1.tar.bz2 89118 8c0647a434bb7deeb6e62b80bee52925 -source: release/units/units-1.77-1-src.tar.bz2 145170 282a69ead4179a565361fc9a3b2dc12f - -@ unzip -sdesc: "A utility for unpacking zip files" -ldesc: "unzip will list, test, or extract files from a ZIP archive, commonly -found on MS-DOS systems. A companion program, zip, creates ZIP -archives; both programs are compatible with archives created by -PKWARE's PKZIP and PKUNZIP for MS-DOS, but in many cases the program -options or default behaviors differ. This version also has -(de)cryption support." -category: Archive -requires: cygwin -version: 5.50-5 -install: release/unzip/unzip-5.50-5.tar.bz2 169077 ceaa279aea2240e225f28afd8d34be37 -source: release/unzip/unzip-5.50-5-src.tar.bz2 1093495 af397d15524b8b86802c60cd4d2adf46 -[prev] -version: 5.50-2 -install: release/unzip/unzip-5.50-2.tar.bz2 168526 3ff598238c4f9ef86316992ef2f5a9cf -source: release/unzip/unzip-5.50-2-src.tar.bz2 1093161 37797dc52cbe6efede535a4f98a6cc61 - -@ upx -sdesc: "A free, portable, extendable, high-performance executable packer" -ldesc: "UPX is a free, portable, extendable, high-performance executable -packer for several different executable formats. It achieves an excellent -compression ratio and offers very fast decompression. Your executables -suffer no memory overhead or other drawbacks. -UPX is copyrighted software distributed under the terms of the GNU General -Public License, with special exceptions granting the free usage for -commercial programs as stated in the UPX License Agreement. -UPX uses the NRV compression library for compression services. A compatible -but somewhat less efficient OpenSource implementation is available through -the UCL compression library. -UPX aims to be Commercial Quality Freeware. -This version uses the UCL library." -category: Utils -requires: cygwin -version: 1.24-1 -install: release/upx/upx-1.24-1.tar.bz2 126372 39c5f3a25592a56434a2fd98d3d7da8a -source: release/upx/upx-1.24-1-src.tar.bz2 230745 832a146b85142beaf84c7d43630e6e4d -[prev] -version: 1.21-1 -install: release/upx/upx-1.21-1.tar.bz2 104295 0c7ec8c399527b24c7546d332e89503d -source: release/upx/upx-1.21-1-src.tar.bz2 217656 5842e77ed2b2a93ad502e1b874907582 - -@ uw-imap -sdesc: "UW IMAP Toolkit" -ldesc: "University of Washington IMAP Toolkit Environment" -category: Mail -requires: cygwin -version: 2002e-3 -install: release/uw-imap/uw-imap-2002e-3.tar.bz2 19107 7b97ef2c9306ddc24057ff10dc81b5e1 -source: release/uw-imap/uw-imap-2002e-3-src.tar.bz2 1028381 5cded01e5e3afd4ba03328ef6e00c4db -[prev] -version: 2002e-2 -install: release/uw-imap/uw-imap-2002e-2.tar.bz2 19051 417a2f4bc3e5225ec9daccac7e06d5db -source: release/uw-imap/uw-imap-2002e-2-src.tar.bz2 1028313 17914f867956c4ff2d16f8c0c573cc22 - -@ uw-imap-imapd -sdesc: "UW IMAP Servers" -ldesc: "University of Washington Toolkit IMAP, POP3, and POP2 daemons" -category: Mail -requires: uw-imap openssl -version: 2002e-3 -install: release/uw-imap/uw-imap-imapd/uw-imap-imapd-2002e-3.tar.bz2 821623 98e61ebeea8729301207c9c88c900da8 -source: release/uw-imap/uw-imap-2002e-3-src.tar.bz2 1028381 5cded01e5e3afd4ba03328ef6e00c4db -[prev] -version: 2002e-2 -install: release/uw-imap/uw-imap-imapd/uw-imap-imapd-2002e-2.tar.bz2 821241 9b861252ebfbe0e8e953ac88992b19e6 -source: release/uw-imap/uw-imap-2002e-2-src.tar.bz2 1028313 17914f867956c4ff2d16f8c0c573cc22 - -@ uw-imap-util -sdesc: "UW IMAP Utilities" -ldesc: "University of Washington IMAP Toolkit Utilities" -category: Mail -requires: uw-imap openssl -version: 2002e-3 -install: release/uw-imap/uw-imap-util/uw-imap-util-2002e-3.tar.bz2 787789 7742ff093709430860768a5752e85e89 -source: release/uw-imap/uw-imap-2002e-3-src.tar.bz2 1028381 5cded01e5e3afd4ba03328ef6e00c4db -[prev] -version: 2002e-2 -install: release/uw-imap/uw-imap-util/uw-imap-util-2002e-2.tar.bz2 787899 890c75d83a1f1f1e77b6e8917748fbbd -source: release/uw-imap/uw-imap-2002e-2-src.tar.bz2 1028313 17914f867956c4ff2d16f8c0c573cc22 - -@ vim -sdesc: "Vi IMproved - enhanced vi editor" -category: Editors -requires: cygwin terminfo libncurses7 libiconv2 -version: 6.3-1 -install: release/vim/vim-6.3-1.tar.bz2 3197332 1cc0fd89e1a71a66e010c8d1afc39756 -source: release/vim/vim-6.3-1-src.tar.bz2 5111602 1b10703ff23990dc52bbf83423db2408 -[prev] -version: 6.2.098-1 -install: release/vim/vim-6.2.098-1.tar.bz2 2967923 33bf949dc538038f63af0c87f5bf37d6 -source: release/vim/vim-6.2.098-1-src.tar.bz2 4715007 dc7723d78166829d9a8a566c3543591c - -@ w32api -sdesc: "Win32 API header and library import files" -category: Libs -version: 3.1-1 -install: release/w32api/w32api-3.1-1.tar.bz2 1141791 b531b8adfeaa9b1d9032fb08a5c9e5c3 -source: release/w32api/w32api-3.1-1-src.tar.bz2 910360 1e3176829186d0aee936ee7d6226e51c -[prev] -version: 2.5-1 -install: release/w32api/w32api-2.5-1.tar.bz2 1001233 67f8ffb700a73f48e58fc2c374294d69 -source: release/w32api/w32api-2.5-1-src.tar.bz2 840161 5bd9b3c9cd96e0f7c2bc79b5893018e1 - -@ wget -sdesc: "Utility to retrieve files from the WWW via HTTP and FTP" -ldesc: "GNU Wget is a file retrieval utility which can use either -the HTTP, HTTPS, or FTP protocols. Wget features include the ability -to work in the background while you're logged out, recursive retrieval -of directories, file name wildcard matching, remote file timestamp -storage and comparison, use of Rest with FTP servers and Range with -HTTP servers to retrieve files over slow or unstable connections, -support for Proxy servers, and configurability." -category: Web -requires: openssl libintl2 libiconv2 ash cygwin -version: 1.9.1-1 -install: release/wget/wget-1.9.1-1.tar.bz2 335861 7660bd445f43943dc20e7fc6ff28f891 -source: release/wget/wget-1.9.1-1-src.tar.bz2 1334443 298f86540b03658733cd56b49522f488 -[prev] -version: 1.9-1 -install: release/wget/wget-1.9-1.tar.bz2 335240 ae8b514b515ff38d15d5404e525e78ed -source: release/wget/wget-1.9-1-src.tar.bz2 1328310 60f4c11325f8c8cff0ed4905d7ee72f8 - -@ which -sdesc: "Displays where a particular program in your path is located" -category: Base -requires: cygwin -version: 1.5-2 -install: release/which/which-1.5-2.tar.bz2 5875 01685c4933406033f0931b57d7754644 -source: release/which/which-1.5-2-src.tar.bz2 1734 f93dd5525d14fa850e43a785257c5bc6 -[prev] -version: 1.5-1 -install: release/which/which-1.5-1.tar.bz2 1913 155514afa6a005b6080fde9aacbb191f -source: release/which/which-1.5-1-src.tar.bz2 1736 1d2d9f53c74288ce01a93ee87305146f - -@ whois -sdesc: "GNU Whois" -ldesc: "A client for the whois directory service. It allows you to retrieve information on domains name, IP addresses, and more." -category: Net -requires: cygwin -version: 4.6.14-1 -install: release/whois/whois-4.6.14-1.tar.bz2 20657 3fec98b4c53f3189e0080fa0a37e87d9 -source: release/whois/whois-4.6.14-1-src.tar.bz2 47108 23677e70199c0ff891b52121f7bf6465 -[prev] -version: 4.6.7-1 -install: release/whois/whois-4.6.7-1.tar.bz2 19773 860c7d803a4c3f328b2634632f8d7a99 -source: release/whois/whois-4.6.7-1-src.tar.bz2 45058 3ad9fe39d41e38d8c05a8d0d24698ded - -@ wtf -sdesc: "Translates acronyms and filename suffixes for you" -ldesc: "wtf translates acronyms and filename suffixes for you. - -The wtf program looks-up the definition of a term. It supports a -number of definition sources. In this version they are an acronyms -database and qa filename suffixes database." -category: Text Doc -requires: cygwin -version: 0.0.4-6 -install: release/wtf/wtf-0.0.4-6.tar.bz2 22294 90da577b69f9f352348684fa4d5a86e2 -source: release/wtf/wtf-0.0.4-6-src.tar.bz2 32802 09aff2b309344f28ad6c3dfe3dd252a0 -[prev] -version: 0.0.4-3 -install: release/wtf/wtf-0.0.4-3.tar.bz2 26295 c04eb97aadee6c8256e6ce7fd09d2697 -source: release/wtf/wtf-0.0.4-3-src.tar.bz2 31687 bfbac6c93eecd3706d7bb33d327ff035 - -@ x2x -sdesc: "X2x" -ldesc: "Combines 2 independent X sessions into a single, multi-headed -X session. Each X session can be running on a different machine, can -have different resolutions, color depths, and even different window -managers." -category: X11 -requires: cygwin xorg-x11-xwin xorg-x11-bin -version: 1.30-2 -install: release/X11/x2x/x2x-1.30-2.tar.bz2 23716 f5b18359528e659ce1668cef3aec8662 -source: release/X11/x2x/x2x-1.30-2-src.tar.bz2 38703 36f925d6f512b0b9ca55f0376b0bd2a7 -[prev] -version: 1.30-1 -install: release/X11/x2x/x2x-1.30-1.tar.bz2 23680 279d1563e6d359e8ae75e6db75dd5b4f -source: release/X11/x2x/x2x-1.30-1-src.tar.bz2 38486 c1f22a7c7be98d931be4297d87856460 - -@ x3270 -sdesc: "3270 Emulator (X-Windows)" -ldesc: "x3270 is an IBM 3270 terminal emulator for X windows. It can be used to -communicate with any IBM host that supports 3270-style connections over TELNET. -It can also communicate with hosts that use line-by-line ASCII mode to do -initial login negotiation before switching to full-screen 3270 mode. -It can use its own special fonts to fully emulate the special symbols -displayed on a 3278 or 3279, or any constant-width X font. -x3270 is a full-featured X client. It participates in common X protocols, -such as cut-and-paste and the WM_DELETE_WINDOW and WM_SAVE_YOURSELF messages. -It is highly configurable and supports a wide range of keyboards. A pop-up -keypad is available for selecting common 3270 function keys. -x3270 emulates one of four models of an IBM 3278 or 3279 terminal. The -difference between the various models is the screen size. The emulation is -not quite complete; x3270 understands extended field orders but does not -implement some of the extended attributes (outlining, extended validation, -etc.). x3270 supports color displays in one of two ways: in 3278 mode by -displaying text with different attributes in different colors, or in 3279 -mode by implementing the full color 3270 protocols. It does not support -3179G bit-mapped graphics (GDDM). -x3270 supports the APL character set and several international character sets. -Many APL and international symbols are entered from the keyboard using the -Compose key and combinations of other keys." -category: Net -requires: cygwin suite3270 xorg-x11-base -version: 3.2.20-1 -install: release/suite3270/x3270/x3270-3.2.20-1.tar.bz2 641466 cbe0883d6c4a50e362a420e8599cb6a8 -source: release/suite3270/suite3270-3.2.20-1-src.tar.bz2 1275892 71982441f2ca037189693628e3f330b2 - -@ xemacs -sdesc: "A powerful, highly customizable open source text editor and application development system" -ldesc: "XEmacs is a powerful, highly customizable open source text editor and -application development system, with full GUI support. It is protected -under the GNU Public License and related to other versions of Emacs, in -particular GNU Emacs. Its emphasis is on modern graphical user -interface support and an open software development model, similar to -Linux. XEmacs has an active development community numbering in the -hundreds (and thousands of active beta testers on top of this), and runs -on all versions of MS Windows, on Linux, and on nearly every other -version of Unix in existence. Support for XEmacs has been supplied by -Sun Microsystems, University of Illinois, Lucid, ETL/Electrotechnical -Laboratory, Amdahl Corporation, BeOpen, and others, as well as the -unpaid time of a great number of individual developers." -category: Editors Interpreters -requires: crypt cygwin expat lesstif libdb4.1 libfontconfig1 libfreetype26 libiconv2 libintl2 libjpeg62 libncurses7 libopenldap2 libpng12 libtiff4 minires openssl postgresql xorg-x11-bin zlib -version: 21.4.15-1 -install: release/xemacs/xemacs-21.4.15-1.tar.bz2 6795255 7fe77337df1001b3f7e1ab426fdefaac -source: release/xemacs/xemacs-21.4.15-1-src.tar.bz2 8853667 93384abea33197f43a2b219ade6bd3a0 -[prev] -version: 21.4.14-2 -install: release/xemacs/xemacs-21.4.14-2.tar.bz2 6776929 f854a99a0072bedd5359b842bc10016c -source: release/xemacs/xemacs-21.4.14-2-src.tar.bz2 8846990 da58360df79bc52b7bbd570ec8b4c94a -[test] -version: 21.5.16-1 -install: release/xemacs/xemacs-21.5.16-1.tar.bz2 9571030 c22ecabe9e6f44aad21eddc2621ddfc2 -source: release/xemacs/xemacs-21.5.16-1-src.tar.bz2 12946016 cb06a21740df03f943255b572c1a80a9 - -@ xemacs-emacs-common -sdesc: "Programs in common with the emacs package" -ldesc: "Programs in common with the emacs package" -category: Editors -requires: cygwin xemacs -version: 21.4.15-1 -install: release/xemacs/xemacs-emacs-common/xemacs-emacs-common-21.4.15-1.tar.bz2 5131 9b3057c4f75be18b08065fd08274f052 -[prev] -version: 21.4.14-2 -install: release/xemacs/xemacs-emacs-common/xemacs-emacs-common-21.4.14-2.tar.bz2 5111 52bccc6bbf160d0caa44de620a348d1a -[test] -version: 21.5.16-1 -install: release/xemacs/xemacs-emacs-common/xemacs-emacs-common-21.5.16-1.tar.bz2 5127 749c5ab2e8984cc222015d0bb1d2132f - -@ xemacs-mule-sumo -sdesc: "XEmacs MULE (MUlti Lingual Emacs) packages" -ldesc: "XEmacs MULE (MUlti Lingual Emacs) packages" -category: Editors -requires: cygwin xemacs -version: 2004-08-18-1 -install: release/xemacs/xemacs-mule-sumo/xemacs-mule-sumo-2004-08-18-1.tar.bz2 4816421 8155d91f0796b6e22bd54d405b7c8309 -source: release/xemacs/xemacs-mule-sumo/xemacs-mule-sumo-2004-08-18-1-src.tar.bz2 5032401 7a48022dd3e883b553a05d8690024617 -[prev] -version: 2004-02-02-1 -install: release/xemacs/xemacs-mule-sumo/xemacs-mule-sumo-2004-02-02-1.tar.bz2 4847624 3b7df15bff807eb76f687ebca4bad1a6 -source: release/xemacs/xemacs-mule-sumo/xemacs-mule-sumo-2004-02-02-1-src.tar.bz2 5040433 ce81c96ebca60295d520de4f5f9131bf - -@ xemacs-sumo -sdesc: "XEmacs standard packages" -ldesc: "XEmacs standard packages" -category: Editors -requires: cygwin xemacs -version: 2004-08-18-1 -install: release/xemacs/xemacs-sumo/xemacs-sumo-2004-08-18-1.tar.bz2 23086580 43adf30d500122200bc4424236cdb8b2 -source: release/xemacs/xemacs-sumo/xemacs-sumo-2004-08-18-1-src.tar.bz2 23866690 0aa0a2d9576ec38a5a171523d3d236d9 -[prev] -version: 2004-02-02-1 -install: release/xemacs/xemacs-sumo/xemacs-sumo-2004-02-02-1.tar.bz2 22115436 76fa04d9f819558f9e028dce754d928e -source: release/xemacs/xemacs-sumo/xemacs-sumo-2004-02-02-1-src.tar.bz2 22951244 0b76a7c753455050d335894167efb02e - -@ xemacs-tags -sdesc: "Etags and ctags programs and man pages from the xemacs distribution" -ldesc: "etags and ctags programs and man pages from the xemacs distribution" -category: Editors -requires: cygwin xemacs -version: 21.4.15-1 -install: release/xemacs/xemacs-tags/xemacs-tags-21.4.15-1.tar.bz2 56674 05fd6a3e390220b9ec09b8dd132e3f9e -[prev] -version: 21.4.14-2 -install: release/xemacs/xemacs-tags/xemacs-tags-21.4.14-2.tar.bz2 56623 762093b1fddc035c7635df44de6e53c9 -[test] -version: 21.5.16-1 -install: release/xemacs/xemacs-tags/xemacs-tags-21.5.16-1.tar.bz2 59484 6b1a22e1489511c1963a8e012137acc4 - -@ xerces-c -sdesc: "Runtime library for a validating XML parser written in a portable -subset of C++" -ldesc: "A validating XML parser written in a portable subset of C++. -Xerces-C++ makes it easy to give your application the ability to read and -write XML data. A shared library is provided for parsing, generating, -manipulating, and validating XML documents. - -Xerces-C++ is faithful to the XML 1.0 recommendation and many associated -standards. - -The parser provides high performance, modularity, and scalability. Source -code, samples and API documentation are provided with the parser. For -portability, care has been taken to make minimal use of templates, no RTTI, -no C++ namespaces and minimal use of ifdefs." -category: Doc -requires: libxerces-c25 -version: 2.5.0-1 -install: release/xerces-c/xerces-c-2.5.0-1.tar.bz2 3906 cbce526990a718e3aee43ce589b77929 -source: release/xerces-c/xerces-c-2.5.0-1-src.tar.bz2 6590620 9a6ea4e3f61aade46844671c29092ff8 -[prev] -version: 2.4.0-4 -install: release/xerces-c/xerces-c-2.4.0-4.tar.bz2 3881 f00cbc17e16ca720b61b964ae0abda75 -source: release/xerces-c/xerces-c-2.4.0-4-src.tar.bz2 6445785 542f84af7187f0a900956018b6ae3c0c - -@ xerces-c-devel -sdesc: "A validating XML parser written in a portable subset of C++" -ldesc: "A validating XML parser written in a portable subset of C++. -Xerces-C++ makes it easy to give your application the ability to read and -write XML data. A shared library is provided for parsing, generating, -manipulating, and validating XML documents. - -Xerces-C++ is faithful to the XML 1.0 recommendation and many associated -standards. - -The parser provides high performance, modularity, and scalability. Source -code, samples and API documentation are provided with the parser. For -portability, care has been taken to make minimal use of templates, no RTTI, -no C++ namespaces and minimal use of ifdefs." -category: Devel -version: 2.5.0-1 -install: release/xerces-c/xerces-c-devel/xerces-c-devel-2.5.0-1.tar.bz2 796900 33fc36f09698920cad6ef44c43607c35 -source: release/xerces-c/xerces-c-2.5.0-1-src.tar.bz2 6590620 9a6ea4e3f61aade46844671c29092ff8 -[prev] -version: 2.4.0-4 -install: release/xerces-c/xerces-c-devel/xerces-c-devel-2.4.0-4.tar.bz2 775570 63177db0fe4508cc4cf4a8bb02ff0e77 -source: release/xerces-c/xerces-c-2.4.0-4-src.tar.bz2 6445785 542f84af7187f0a900956018b6ae3c0c - -@ xerces-c-doc -sdesc: "Documentation for a validating XML parser written in a portable subset of C++" -ldesc: "A validating XML parser written in a portable subset of C++. -Xerces-C++ makes it easy to give your application the ability to read and -write XML data. A shared library is provided for parsing, generating, -manipulating, and validating XML documents. - -Xerces-C++ is faithful to the XML 1.0 recommendation and many associated -standards. - -The parser provides high performance, modularity, and scalability. Source -code, samples and API documentation are provided with the parser. For -portability, care has been taken to make minimal use of templates, no RTTI, -no C++ namespaces and minimal use of ifdefs." -category: Doc -version: 2.5.0-1 -install: release/xerces-c/xerces-c-doc/xerces-c-doc-2.5.0-1.tar.bz2 3334290 6ce0987ec258496abdc6f903fa74c348 -source: release/xerces-c/xerces-c-2.5.0-1-src.tar.bz2 6590620 9a6ea4e3f61aade46844671c29092ff8 -[prev] -version: 2.4.0-4 -install: release/xerces-c/xerces-c-doc/xerces-c-doc-2.4.0-4.tar.bz2 3307540 afa7c57efdf13fce26ebf4b6b5f80491 -source: release/xerces-c/xerces-c-2.4.0-4-src.tar.bz2 6445785 542f84af7187f0a900956018b6ae3c0c - -@ xfig -sdesc: "Xfig (main package)" -ldesc: "Xfig is a menu-driven tool that allows the user to draw and -manipulate objects interactively in an X window. The resulting -pictures can be saved, printed on postscript printers or converted to -a variety of other formats (e.g. to allow inclusion in LaTeX -documents)." -category: X11 -requires: cygwin xorg-x11-bin zlib jpeg libpng Xaw3d transfig xfig-lib ghostscript-x11 tar -version: 3.2.4-6 -install: release/X11/xfig/xfig-3.2.4-6.tar.bz2 3574763 1c4a8e1ee58b7dfcdad3f8bb408dcd88 -source: release/X11/xfig/xfig-3.2.4-6-src.tar.bz2 5192668 fc6917de1ade3bceaaa889ee1356bf5c -[prev] -version: 3.2.4-5 -install: release/X11/xfig/xfig-3.2.4-5.tar.bz2 3583633 2bbd3da200a524fb9289bfc18cee507b -source: release/X11/xfig/xfig-3.2.4-5-src.tar.bz2 5191809 b59f9f7f69899d101c87813479a077c0 - -@ xfig-bin -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -version: 3.2.4-3 -install: release/ZZZRemovedPackages/xfig-bin/xfig-bin-3.2.4-3.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ xfig-doc -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -version: 3.2.4-2 -install: release/ZZZRemovedPackages/xfig-doc/xfig-doc-3.2.4-2.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ xfig-etc -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -version: 3.2.4-4 -install: release/ZZZRemovedPackages/xfig-etc/xfig-etc-3.2.4-4.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ xfig-lib -sdesc: "Xfig-lib (shared grahpic symbols library)" -ldesc: "Xfig is a menu-driven tool that allows the user to draw and -manipulate objects interactively in an X window. The resulting -pictures can be saved, printed on postscript printers or converted to -a variety of other formats (e.g. to allow inclusion in LaTeX -documents)." -category: X11 -requires: xfig -version: 3.2.4-6 -install: release/X11/xfig/xfig-lib/xfig-lib-3.2.4-6.tar.bz2 1005146 679abd2370c694bed5ab4ede8f6697f6 -source: release/X11/xfig/xfig-3.2.4-6-src.tar.bz2 5192668 fc6917de1ade3bceaaa889ee1356bf5c -[prev] -version: 3.2.4-5 -install: release/X11/xfig/xfig-lib/xfig-lib-3.2.4-5.tar.bz2 1004191 4eb015b94bf75baaa4265825f43699c1 -source: release/X11/xfig/xfig-3.2.4-5-src.tar.bz2 5191809 b59f9f7f69899d101c87813479a077c0 - -@ xfig-man -sdesc: "Removed package" -ldesc: "Compatibility package to force removal of files from a removed -package." -category: ZZZRemovedPackages -version: 3.2.4-2 -install: release/ZZZRemovedPackages/xfig-man/xfig-man-3.2.4-2.tar.bz2 46 c616cffee0f344c37fd4e045a7a87054 - -@ xgraph -sdesc: "Xgraph" -ldesc: "VINT release of Xgraph. Xgraph does interactive plotting and -graphing in X Windows." -category: X11 -requires: cygwin xorg-x11-base -version: 12.1-1 -install: release/X11/xgraph/xgraph-12.1-1.tar.bz2 52492 8dd584a1aca9c7dfee2d885fb5f6c940 -source: release/X11/xgraph/xgraph-12.1-1-src.tar.bz2 149249 4bcd18d6f7b08cf02057c696ed8e2168 - -@ xinetd -sdesc: "The extended Internet services daemon" -ldesc: "xinetd performs the same function as inetd: it starts -programs that provide Internet services." -category: Net -requires: cygwin inetutils sharutils bash -version: 2.3.9-1 -install: release/xinetd/xinetd-2.3.9-1.tar.bz2 90940 ba680e5ee4a64b94d71e89e12c156b89 -source: release/xinetd/xinetd-2.3.9-1-src.tar.bz2 301990 289577f952a2b8f764905ef6f22035a3 - -@ xmlto -sdesc: "Front-end to the DocBook XML toolchain" -category: Doc Text -requires: cygwin cygutils bash libxslt docbook-xsl -version: 0.0.18-1 -install: release/xmlto/xmlto-0.0.18-1.tar.bz2 26243 364e6847ae1bcd8d70a437e36d6c47e2 -source: release/xmlto/xmlto-0.0.18-1-src.tar.bz2 94875 92e419b1e3bbd032c3e9789daf5e3864 -[prev] -version: 0.0.17-1 -install: release/xmlto/xmlto-0.0.17-1.tar.bz2 26180 4b60f2c68c22fa0fa8c721b2a83c21cf -source: release/xmlto/xmlto-0.0.17-1-src.tar.bz2 93084 ef77116b55b5fac839c12ab6ae85cf4e - -@ xorg-x11-base -sdesc: "Cygwin/X base" -ldesc: "Cygwin/X is a port of the X Window System to Cygwin. Base -package used to select enough packages for a working installation." -category: X11 -requires: cygwin ash pcre xorg-x11-bin xorg-x11-bin-dlls xorg-x11-etc xorg-x11-libs-data xorg-x11-fenc xorg-x11-fnts xorg-x11-xwin -version: 6.8.1.0-1 -install: release/X11/xorg-x11-base/xorg-x11-base-6.8.1.0-1.tar.bz2 1246 bb4479df94d08a91df91c5a09032919e -source: release/X11/xorg-x11-base/xorg-x11-base-6.8.1.0-1-src.tar.bz2 4467710 a4b6037f27e8af5a508e35591c6b9cfb -[prev] -version: 6.7.0.0-8 -install: release/X11/xorg-x11-base/xorg-x11-base-6.7.0.0-8.tar.bz2 1149 0b58bafd68a355324ce1385d8e09574c -source: release/X11/xorg-x11-base/xorg-x11-base-6.7.0.0-8-src.tar.bz2 3864237 51c94a8b8371109ca54f620c336d5e15 - -@ xorg-x11-bin -sdesc: "Cygwin/X bin" -ldesc: "This package contains binary programs that can be displayed in -any X Server. This package is optional." -category: X11 -requires: xorg-x11-base xorg-x11-bin-lndir expat freetype2 fontconfig libXft libXft1 libncurses7 termcap terminfo zlib gettext libintl libintl1 -version: 6.8.1.0-2 -install: release/X11/xorg-x11-bin/xorg-x11-bin-6.8.1.0-2.tar.bz2 1342904 50f8792fc9dad6ea86f41cae09a2c676 -source: release/X11/xorg-x11-bin/xorg-x11-bin-6.8.1.0-2-src.tar.bz2 4316001 0393e0c5a7fa32df6126f8358c8fe78b -[prev] -version: 6.8.1.0-1 -install: release/X11/xorg-x11-bin/xorg-x11-bin-6.8.1.0-1.tar.bz2 1343189 5a0f8a1b054d9ba59d58ecca4cd4094a -source: release/X11/xorg-x11-bin/xorg-x11-bin-6.8.1.0-1-src.tar.bz2 4315322 a7107bf9b4174bbda57385865ef29bf8 - -@ xorg-x11-bin-dlls -sdesc: "Cygwin/X bin dlls" -ldesc: "This package contains binary libraries used for binary programs -compiled for Cygwin/X. This package is optional." -category: X11 -requires: xorg-x11-base expat freetype2 fontconfig libXft libXft1 libncurses7 termcap terminfo zlib gettext libintl libintl1 -version: 6.8.1.0-1 -install: release/X11/xorg-x11-bin-dlls/xorg-x11-bin-dlls-6.8.1.0-1.tar.bz2 2186643 37df28ae280a054805342f5e59d39a8b -source: release/X11/xorg-x11-bin-dlls/xorg-x11-bin-dlls-6.8.1.0-1-src.tar.bz2 2868629 2f51b4572e43e640b67325a13ffe1f7e -[prev] -version: 6.7.0.0-5 -install: release/X11/xorg-x11-bin-dlls/xorg-x11-bin-dlls-6.7.0.0-5.tar.bz2 1999149 e099c4d4151668588f2a01c06efc9e41 -source: release/X11/xorg-x11-bin-dlls/xorg-x11-bin-dlls-6.7.0.0-5-src.tar.bz2 2837197 e6ce02f67cf4aab53f482d7644c0db25 - -@ xorg-x11-bin-lndir -sdesc: "Cygwin/X bin" -ldesc: "This package contains the lndir program. This package is -optional." -category: X11 -requires: cygwin -version: 6.8.1.0-1 -install: release/X11/xorg-x11-bin-lndir/xorg-x11-bin-lndir-6.8.1.0-1.tar.bz2 4643 3854b7108e67a6a274587912b9352fc9 -[prev] -version: 6.7.0.0-2 -install: release/X11/xorg-x11-bin-lndir/xorg-x11-bin-lndir-6.7.0.0-2.tar.bz2 4477 d39bed0906dc9cad1a48a57fb749d6d8 - -@ xorg-x11-devel -sdesc: "Cygwin/X headers and import libraries" -ldesc: "This package contains the headers and import libraries for -compiling X programs. This package is optional." -category: X11 -requires: xorg-x11-base expat freetype2 fontconfig libfreetype2-devel libfontconfig-devel libXft libXft-devel -version: 6.8.1.0-1 -install: release/X11/xorg-x11-devel/xorg-x11-devel-6.8.1.0-1.tar.bz2 1734727 9bf6dfecc085d027f028bde6c170cd08 -source: release/X11/xorg-x11-devel/xorg-x11-devel-6.8.1.0-1-src.tar.bz2 237865 444c8429b38ad5b9858dc3eb8218f65d -[prev] -version: 6.7.0.0-4 -install: release/X11/xorg-x11-devel/xorg-x11-devel-6.7.0.0-4.tar.bz2 986379 b814b52871de8aadcfbe3bf84626ec08 -source: release/X11/xorg-x11-devel/xorg-x11-devel-6.7.0.0-4-src.tar.bz2 238027 1ae8cfc5d15d34f37c5e3ffcd82d264a - -@ xorg-x11-etc -sdesc: "Cygwin/X etc" -ldesc: "This package contains the config files needed to run an X -server and clients. This package is required." -category: X11 -requires: xorg-x11-base xorg-x11-bin expat -version: 6.8.1.0-1 -install: release/X11/xorg-x11-etc/xorg-x11-etc-6.8.1.0-1.tar.bz2 500646 ff545688183882f97808f528f49e1f7a -[prev] -version: 6.7.0.0-3 -install: release/X11/xorg-x11-etc/xorg-x11-etc-6.7.0.0-3.tar.bz2 342522 cc6a71d89efc31cbe553bdacaf93563d - -@ xorg-x11-f100 -sdesc: "Cygwin/X 100 dpi fonts" -ldesc: "This package contains 100 dpi fonts for X. This package is -optional." -category: X11 -requires: xorg-x11-base expat -version: 6.8.1.0-3 -install: release/X11/xorg-x11-f100/xorg-x11-f100-6.8.1.0-3.tar.bz2 12733601 4252a3a7596b4a99c8843f8a9cccfa68 -source: release/X11/xorg-x11-fnts/xorg-x11-fnts-6.8.1.0-3-src.tar.bz2 8052864 effe948e3d20362ebc6e7988010bb4d4 -[prev] -version: 6.8.1.0-2 -install: release/X11/xorg-x11-f100/xorg-x11-f100-6.8.1.0-2.tar.bz2 8065835 12b8e5527060d177625ca6dbdb0f10a7 -source: release/X11/xorg-x11-fnts/xorg-x11-fnts-6.8.1.0-2-src.tar.bz2 8026707 f7fce1858174adb1d6627e5a13219bc6 - -@ xorg-x11-fcyr -sdesc: "Cygwin/X Cyrillic fonts" -ldesc: "This package contains Cyrillic fonts for X. This package is -optional." -category: X11 -requires: xorg-x11-base expat -version: 6.8.1.0-2 -install: release/X11/xorg-x11-fcyr/xorg-x11-fcyr-6.8.1.0-2.tar.bz2 387678 81ad92d7acb6812b4bc5971e9fc47b7e -source: release/X11/xorg-x11-fnts/xorg-x11-fnts-6.8.1.0-2-src.tar.bz2 8026707 f7fce1858174adb1d6627e5a13219bc6 -[prev] -version: 6.8.1.0-1 -install: release/X11/xorg-x11-fcyr/xorg-x11-fcyr-6.8.1.0-1.tar.bz2 387886 41b4419f69f5391f020bc4c356a46901 -source: release/X11/xorg-x11-fnts/xorg-x11-fnts-6.8.1.0-1-src.tar.bz2 8028118 93d5590d19685b74fb3a3fa977fff00c - -@ xorg-x11-fenc -sdesc: "Cygwin/X font encodings" -ldesc: "This package contains font font encodings for X. This package -is required." -category: X11 -requires: xorg-x11-base expat -version: 6.8.1.0-2 -install: release/X11/xorg-x11-fenc/xorg-x11-fenc-6.8.1.0-2.tar.bz2 595250 e86974d1fe2603b2afafde8fb1283089 -source: release/X11/xorg-x11-fenc/xorg-x11-fenc-6.8.1.0-2-src.tar.bz2 546332 6b3c5bb88ab2b0f662069c7205680da3 -[prev] -version: 6.8.1.0-1 -install: release/X11/xorg-x11-fenc/xorg-x11-fenc-6.8.1.0-1.tar.bz2 595575 dc7f059c424053ca79787198d06a1eee -source: release/X11/xorg-x11-fenc/xorg-x11-fenc-6.8.1.0-1-src.tar.bz2 545727 9c951c72795788d0a43a853b6e33988a - -@ xorg-x11-fnts -sdesc: "Cygwin/X 75 dpi, misc, and util fonts" -ldesc: "This package contains 75 dpi, misc (fixed, cursors, etc.), and -util fonts for X. This package is required." -category: X11 -requires: xorg-x11-base expat -version: 6.8.1.0-3 -install: release/X11/xorg-x11-fnts/xorg-x11-fnts-6.8.1.0-3.tar.bz2 17333078 acf3f0cd64f30585421f20325265acd6 -source: release/X11/xorg-x11-fnts/xorg-x11-fnts-6.8.1.0-3-src.tar.bz2 8052864 effe948e3d20362ebc6e7988010bb4d4 -[prev] -version: 6.8.1.0-2 -install: release/X11/xorg-x11-fnts/xorg-x11-fnts-6.8.1.0-2.tar.bz2 13381759 0c9e2db2138774534f772c5c9053d353 -source: release/X11/xorg-x11-fnts/xorg-x11-fnts-6.8.1.0-2-src.tar.bz2 8026707 f7fce1858174adb1d6627e5a13219bc6 - -@ xorg-x11-fscl -sdesc: "Cygwin/X scaleable fonts" -ldesc: "This package contains scaleable fonts for X. This package is -optional." -category: X11 -requires: xorg-x11-base expat -version: 6.8.1.0-2 -install: release/X11/xorg-x11-fscl/xorg-x11-fscl-6.8.1.0-2.tar.bz2 1952465 704e3bea5c403a80ca3def5aab91d9eb -source: release/X11/xorg-x11-fscl/xorg-x11-fscl-6.8.1.0-2-src.tar.bz2 3601860 6e018a1fade5f7746a85306bd57f3af4 -[prev] -version: 6.8.1.0-1 -install: release/X11/xorg-x11-fscl/xorg-x11-fscl-6.8.1.0-1.tar.bz2 1961971 9348a4cc0a86ab3c7e20a0bfcac161e5 -source: release/X11/xorg-x11-fscl/xorg-x11-fscl-6.8.1.0-1-src.tar.bz2 3601431 3d02fde21f6bfffe1e64cb7041735e9c - -@ xorg-x11-fsrv -sdesc: "Cygwin/X font server" -ldesc: "This package contains the font server for X. This package is -optional." -category: X11 -requires: xorg-x11-base expat -version: 6.8.1.0-1 -install: release/X11/xorg-x11-fsrv/xorg-x11-fsrv-6.8.1.0-1.tar.bz2 185935 97ff755102830c5196d6ae154468f6c8 -[prev] -version: 6.7.0.0-1 -install: release/X11/xorg-x11-fsrv/xorg-x11-fsrv-6.7.0.0-1.tar.bz2 187789 ec487c2f8f3317bc27d0612afef96aad - -@ xorg-x11-libs-data -sdesc: "Cygwin/X shared files" -ldesc: "This package contains shared files used by most X programs. -This package is required." -category: X11 -requires: xorg-x11-base expat tar -version: 6.8.1.0-1 -install: release/X11/xorg-x11-libs-data/xorg-x11-libs-data-6.8.1.0-1.tar.bz2 158623 c895502802606c6582d856b6f176c638 -[prev] -version: 6.7.0.0-3 -install: release/X11/xorg-x11-libs-data/xorg-x11-libs-data-6.7.0.0-3.tar.bz2 157626 1bb40865fa71a76760b70e66f530838b - -@ xorg-x11-man-pages -sdesc: "Cygwin/X man pages" -ldesc: "This package contains the X Server and X Client man page -files. This package is optional." -category: X11 -requires: cygwin -version: 6.8.1.0-1 -install: release/X11/xorg-x11-man-pages/xorg-x11-man-pages-6.8.1.0-1.tar.bz2 602360 43867c1c81eb838a35f6487c4b5405f2 -source: release/X11/xorg-x11-man-pages/xorg-x11-man-pages-6.8.1.0-1-src.tar.bz2 421934 0b6a748a847067b988cca8ac0dffeb2b -[prev] -version: 6.7.0.0-2 -install: release/X11/xorg-x11-man-pages/xorg-x11-man-pages-6.7.0.0-2.tar.bz2 554138 8034febc101eef978320f971caec26ca -source: release/X11/xorg-x11-man-pages/xorg-x11-man-pages-6.7.0.0-2-src.tar.bz2 387314 ba4fd0e94369fc524f52c1d702adfd11 - -@ xorg-x11-man-pages-html -sdesc: "Cygwin/X HTML man pages" -ldesc: "Man pages in HTML format. This package is optional." -category: X11 -requires: cygwin -version: 6.8.1.0-1 -install: release/X11/xorg-x11-man-pages-html/xorg-x11-man-pages-html-6.8.1.0-1.tar.bz2 704416 5eff46715fffcb24bf4c3c6f4bca04d6 -source: release/X11/xorg-x11-man-pages/xorg-x11-man-pages-6.8.1.0-1-src.tar.bz2 421934 0b6a748a847067b988cca8ac0dffeb2b -[prev] -version: 6.7.0.0-2 -install: release/X11/xorg-x11-man-pages-html/xorg-x11-man-pages-html-6.7.0.0-2.tar.bz2 610286 f3bc20e200bf0c9c6b0ddea770c0df38 -source: release/X11/xorg-x11-man-pages/xorg-x11-man-pages-6.7.0.0-2-src.tar.bz2 387314 ba4fd0e94369fc524f52c1d702adfd11 - -@ xorg-x11-nest -sdesc: "Cygwin/X nested X server" -ldesc: "Xnest is an X server that runs as a client for another X -server. This package is optional." -category: X11 -requires: xorg-x11-base expat -version: 6.8.1.0-1 -install: release/X11/xorg-x11-nest/xorg-x11-nest-6.8.1.0-1.tar.bz2 1153214 6ccfb22373d545796336d19139d1d523 -[prev] -version: 6.7.0.0-2 -install: release/X11/xorg-x11-nest/xorg-x11-nest-6.7.0.0-2.tar.bz2 1099749 f5f958d686d343fab86113fda9ffc141 - -@ xorg-x11-vfb -sdesc: "Cygwin/X virtual framebuffer server" -ldesc: "Xvfb is an X server that runs without any display using a -virtual framebuffer. This server runs without any display. This -package is optional." -category: X11 -requires: xorg-x11-base expat -version: 6.8.1.0-1 -install: release/X11/xorg-x11-vfb/xorg-x11-vfb-6.8.1.0-1.tar.bz2 1241662 02c96a12075fa0d7d5798e62e4f1cc85 -[prev] -version: 6.7.0.0-2 -install: release/X11/xorg-x11-vfb/xorg-x11-vfb-6.7.0.0-2.tar.bz2 1227592 ba750144843b6356cdb831b04191cd22 - -@ xorg-x11-xwin -sdesc: "Cygwin/X X server" -ldesc: "X server for Cygwin. This package is optional, but required -if you want to run the Cygwin/X X Server." -category: X11 -requires: xorg-x11-base cygwin zlib libfreetype26 -version: 6.8.1.0-5 -install: release/X11/xorg-x11-xwin/xorg-x11-xwin-6.8.1.0-5.tar.bz2 1403299 0d3fecbf3c78041b28de11a8eae97bb6 -source: release/X11/xorg-x11-xwin/xorg-x11-xwin-6.8.1.0-5-src.tar.bz2 2491062 cc290e5e03dee764d7c0103f6988dc76 -[prev] -version: 6.8.1.0-4 -install: release/X11/xorg-x11-xwin/xorg-x11-xwin-6.8.1.0-4.tar.bz2 1409909 83aa274db3fa9111a06760d2fdcc6f19 -source: release/X11/xorg-x11-xwin/xorg-x11-xwin-6.8.1.0-4-src.tar.bz2 2490484 a7d4cf2c7da2d0272bb2161326fcf72e - -@ xorg-x11-xwin-gl -sdesc: "Cygwin/X X server with ***EXPERIMENTAL*** GLX acceleration" -ldesc: "X server for Cygwin with ***EXPERIMENTAL*** GLX acceleration. -This package is optional, but required if you want to run the Cygwin/X -X Server." -category: X11 -requires: xorg-x11-base cygwin zlib libfreetype26 -version: 6.8.1.0-5 -install: release/X11/xorg-x11-xwin-gl/xorg-x11-xwin-gl-6.8.1.0-5.tar.bz2 787848 8d78ae101218144631f72edeefedefe4 -[prev] -version: 6.8.1.0-4 -install: release/X11/xorg-x11-xwin-gl/xorg-x11-xwin-gl-6.8.1.0-4.tar.bz2 787995 b4fff0d05ae4af8ed0b28f259ff5b586 - -@ xpdf -sdesc: "An open source viewer for Portable Document Format (PDF) files" -ldesc: "Xpdf is an open source viewer for Portable Document Format (PDF) -files. (These are also sometimes also called 'Acrobat' files, from the -name of Adobe's PDF software.) The Xpdf project also includes a PDF text -extractor, PDF-to-PostScript converter, and various other utilities. Xpdf -runs under the X Window System on UNIX, VMS, and OS/2. The non-X components -(pdftops, pdftotext, etc.) also run on Win32 systems and should run on pretty -much any system with a decent C++ compiler. Xpdf is designed to be small and -efficient. It can use Type 1 or TrueType fonts." -category: X11 Doc -requires: cygwin expat lesstif libfontconfig1 libfreetype26 libXft2 t1lib xorg-x11-base zlib -version: 3.00-1 -install: release/X11/xpdf/xpdf-3.00-1.tar.bz2 1832870 cf5068d0be30c1eb2d5e9656c034a3e4 -source: release/X11/xpdf/xpdf-3.00-1-src.tar.bz2 546347 16b4b2070b4b76389cb51951083daaf1 - -@ xpm-nox -sdesc: "X11 pixmap library -- no X required" -ldesc: "xpm-nox provides many of the encoding/decoding routines -in the standard X11 libXpm, but none of the display routines. -It is useful if you have an application that needs to read and -write Xpm format files, but either does not display them or -handles display itself, without accessing X11 library calls." -category: Graphics Libs -requires: cygwin -version: 4.2.0-4 -install: release/xpm-nox/xpm-nox-4.2.0-4.tar.bz2 260260 46fce1b12502c6478e2b0fcbd3349cf9 -source: release/xpm-nox/xpm-nox-4.2.0-4-src.tar.bz2 161034 48460cbc9eaf62041be373bb2195ca3a -[prev] -version: 4.2.0-1 -install: release/xpm-nox/xpm-nox-4.2.0-1.tar.bz2 144891 f72192f75160eb1740db225ad8716363 -source: release/xpm-nox/xpm-nox-4.2.0-1-src.tar.bz2 155962 8d3dad67ca40223c0ee22a204afe8d5c - -@ xterm -sdesc: "Xterm - X terminal" -ldesc: "The xterm program is a terminal emulator for the X Window System. It -provides DEC VT102 and Tektronix 4014 compatible terminals for -programs that can't use the window system directly. - -This version implements ISO/ANSI colors using the 'new' color model -(i.e., background color erase). It also implements most of the control -sequences for VT220." -category: X11 -requires: cygwin bash expat libfontconfig1 libfreetype26 libXft2 terminfo xorg-x11-base zlib -version: 196-1 -install: release/X11/xterm/xterm-196-1.tar.bz2 190258 2df89b538aa8056c7d5c68e13f7be4f6 -source: release/X11/xterm/xterm-196-1-src.tar.bz2 688376 9054c26039a05660efb4671694edc060 -[prev] -version: 185-4 -install: release/X11/xterm/xterm-185-4.tar.bz2 187366 6c40e256faa0e0faf97d3cbf8953a2df -source: release/X11/xterm/xterm-185-4-src.tar.bz2 668426 65381a97b0386d977b272d02f1f33ae1 - -@ xwinclip -sdesc: "Cygwin/X Clipboard integration for the X server" -ldesc: "Provides rudimentary integration between the Windows clipboard -and the X clipboard." -category: X11 -requires: cygwin xorg-x11-bin xorg-x11-xwin -version: 1.2.0-1 -install: release/X11/xwinclip/xwinclip-1.2.0-1.tar.bz2 8275 c4be45f4d9ad5966ab77dd3a2add5396 -source: release/X11/xwinclip/xwinclip-1.2.0-1-src.tar.bz2 67127 d483e8de0bebed267f3b89ccd391b2ce - -@ xwinwm -sdesc: "External window manager for new multi-window mode" -ldesc: "" -category: X11 -requires: cygwin xorg-x11-base xorg-x11-xwin -version: 0.0.5-1 -install: release/X11/xwinwm/xwinwm-0.0.5-1.tar.bz2 75723 06674cd31faeea6d2269b088356918a6 -source: release/X11/xwinwm/xwinwm-0.0.5-1-src.tar.bz2 197251 907e5a0254d286f58dc06915a5a69d0b - -@ zip -sdesc: "A file compression and packaging utility compatible with PKZIP" -ldesc: "The zip program is a compression and file packaging utility. Zip is -analogous to a combination of the UNIX tar and compress commands and is -compatible with PKZIP (a compression and file packaging utility for -MS-DOS systems). This version DOES include encryption support." -category: Archive -requires: cygwin -version: 2.3-6 -install: release/zip/zip-2.3-6.tar.bz2 86667 d2106e212f782ec07028e855a06513d5 -source: release/zip/zip-2.3-6-src.tar.bz2 759497 52704b92c7f82d6c07a9c3d30c0feb9e -[prev] -version: 2.3-5 -install: release/zip/zip-2.3-5.tar.bz2 84517 80958354fe52370e55d1ed46f013b6f4 -source: release/zip/zip-2.3-5-src.tar.bz2 741853 d76b838db05f562df0bf6ea5789be640 - -@ zlib -sdesc: "The zlib compression and decompression library" -ldesc: "The zlib compression library provides in-memory compression and -decompression functions, including integrity checks of the uncompressed -data. This version of the library supports only one compression method -(deflation), but other algorithms may be added later, which will have -the same stream interface. The zlib library is used by many different -system programs." -category: Base Libs -requires: cygwin -version: 1.2.2-1 -install: release/zlib/zlib-1.2.2-1.tar.bz2 76371 e6b746cf97a6253f4023960079568b64 -source: release/zlib/zlib-1.2.2-1-src.tar.bz2 447304 0ee5949ba38f23fe05e9b107f6aa8388 -[prev] -version: 1.2.1-2 -install: release/zlib/zlib-1.2.1-2.tar.bz2 76003 cee8596cc9ee310f05186b26df9873bb -source: release/zlib/zlib-1.2.1-2-src.tar.bz2 300507 db0dd0474ca3ed404e2917adcfa695e5 - -@ zsh -sdesc: "The Z-Shell" -ldesc: "Zsh is a UNIX command interpreter (shell) usable as an interactive -login shell and as a shell script command processor. Of the standard -shells, zsh most closely resembles `ksh' but includes many -enhancements. Zsh has command line editing, builtin spelling -correction, programmable command completion, shell functions (with -autoloading), a history mechanism, and a host of other features." -category: Shells -requires: cygwin libncurses7 -version: 4.2.0-2 -install: release/zsh/zsh-4.2.0-2.tar.bz2 1609530 0f4045705c5a6068d4b2672bdaa4e1ff -source: release/zsh/zsh-4.2.0-2-src.tar.bz2 3778831 74a312f163911f97b7bffe9e88ba7d82 -[prev] -version: 4.2.0-1 -install: release/zsh/zsh-4.2.0-1.tar.bz2 1608315 a945536aa48a9f3b3e28a272d445f40c -source: release/zsh/zsh-4.2.0-1-src.tar.bz2 3777333 4625af8503d7bfa6b2e7475ff450abc0 - -@ _update-info-dir -sdesc: "Generate info/dir file automatically" -category: _PostInstallLast -requires: texinfo ash -version: 00230-1 -install: release/_update-info-dir/_update-info-dir-00230-1.tar.bz2 373 3e583f639de35fae1578b92a5e439ee1 -source: release/_update-info-dir/_update-info-dir-00230-1-src.tar.bz2 12864 2ce0411bb73d5a2e713e683423844af1 diff --git a/tools/cygwin/Cygwin-Files/setup.log b/tools/cygwin/Cygwin-Files/setup.log deleted file mode 100755 index a0b8a4ef..00000000 --- a/tools/cygwin/Cygwin-Files/setup.log +++ /dev/null @@ -1,69 +0,0 @@ -2004/11/18 14:39:17 Starting cygwin install, version 2.427 -2004/11/18 14:39:17 Current Directory: D:\Downloads -2004/11/18 14:39:17 Changing gid to Users -2004/11/18 14:39:17 Could not open service McShield for query, start and stop. McAfee may not be installed, or we don't have access. -2004/11/18 14:39:21 source: network install -2004/11/18 14:39:25 root: C:\cygwin binary system -2004/11/18 14:39:47 Selected local directory: D:\Downloads\Cygwin -2004/11/18 14:39:52 net: Direct -2004/11/18 14:40:22 source: download -2004/11/18 14:40:23 Selected local directory: D:\Downloads\Cygwin -2004/11/18 14:40:24 net: Direct -2004/11/18 14:40:37 site: ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin -2004/11/18 14:40:48 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ash/ash-20040127-1.tar.bz2 -2004/11/18 14:40:48 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/base-files/base-files-3.1-4.tar.bz2 -2004/11/18 14:40:48 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/base-passwd/base-passwd-2.1-1.tar.bz2 -2004/11/18 14:40:52 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bash/bash-2.05b-16.tar.bz2 -2004/11/18 14:40:54 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bzip2/bzip2-1.0.2-6.tar.bz2 -2004/11/18 14:40:56 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygutils/cygutils-1.2.5-1.tar.bz2 -2004/11/18 14:41:05 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygwin/cygwin-1.5.12-1.tar.bz2 -2004/11/18 14:41:10 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygwin-doc/cygwin-doc-1.3-7.tar.bz2 -2004/11/18 14:41:12 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/diffutils/diffutils-2.8.7-1.tar.bz2 -2004/11/18 14:41:13 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/editrights/editrights-1.01-1.tar.bz2 -2004/11/18 14:41:15 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/fileutils/fileutils-4.1-2.tar.bz2 -2004/11/18 14:41:16 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/findutils/findutils-4.1.7-4.tar.bz2 -2004/11/18 14:41:21 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gawk/gawk-3.1.4-3.tar.bz2 -2004/11/18 14:41:22 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/gdbm-1.8.3-7.tar.bz2 -2004/11/18 14:41:22 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/grep/grep-2.5-1.tar.bz2 -2004/11/18 14:41:38 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/groff/groff-1.18.1-2.tar.bz2 -2004/11/18 14:41:38 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gzip/gzip-1.3.5-1.tar.bz2 -2004/11/18 14:41:39 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/less/less-381-1.tar.bz2 -2004/11/18 14:41:39 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bzip2/libbz2_1/libbz2_1-1.0.2-6.tar.bz2 -2004/11/18 14:41:39 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libcharset1/libcharset1-1.9.2-1.tar.bz2 -2004/11/18 14:41:39 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm/libgdbm-1.8.0-5.tar.bz2 -2004/11/18 14:41:39 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm-devel/libgdbm-devel-1.8.3-7.tar.bz2 -2004/11/18 14:41:40 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm3/libgdbm3-1.8.3-3.tar.bz2 -2004/11/18 14:41:40 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm4/libgdbm4-1.8.3-7.tar.bz2 -2004/11/18 14:41:41 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libgettextpo0/libgettextpo0-0.14.1-1.tar.bz2 -2004/11/18 14:41:46 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libiconv-1.9.2-1.tar.bz2 -2004/11/18 14:41:51 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libiconv2/libiconv2-1.9.2-1.tar.bz2 -2004/11/18 14:41:51 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl1/libintl1-0.10.40-1.tar.bz2 -2004/11/18 14:41:52 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl2/libintl2-0.12.1-3.tar.bz2 -2004/11/18 14:41:52 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl3/libintl3-0.14.1-1.tar.bz2 -2004/11/18 14:41:53 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses5/libncurses5-5.2-1.tar.bz2 -2004/11/18 14:41:54 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses6/libncurses6-5.2-8.tar.bz2 -2004/11/18 14:41:55 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses7/libncurses7-5.3-4.tar.bz2 -2004/11/18 14:41:57 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses8/libncurses8-5.4-1.tar.bz2 -2004/11/18 14:41:57 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/pcre/libpcre/libpcre-4.1-1.tar.bz2 -2004/11/18 14:41:57 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/pcre/libpcre0/libpcre0-4.5-1.tar.bz2 -2004/11/18 14:41:58 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/popt/libpopt0/libpopt0-1.6.4-4.tar.bz2 -2004/11/18 14:41:58 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline4/libreadline4-4.1-2.tar.bz2 -2004/11/18 14:41:58 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline5/libreadline5-4.3-5.tar.bz2 -2004/11/18 14:41:59 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline6/libreadline6-5.0-1.tar.bz2 -2004/11/18 14:41:59 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/login/login-1.9-7.tar.bz2 -2004/11/18 14:42:00 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/man/man-1.5o-1.tar.bz2 -2004/11/18 14:42:00 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/mktemp/mktemp-1.5-3.tar.bz2 -2004/11/18 14:42:02 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/ncurses-5.4-1.tar.bz2 -2004/11/18 14:42:03 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/readline-5.0-1.tar.bz2 -2004/11/18 14:42:04 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/sed/sed-4.1.2-1.tar.bz2 -2004/11/18 14:42:07 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/sh-utils/sh-utils-2.0.15-4.tar.bz2 -2004/11/18 14:42:10 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/tar/tar-1.13.25-5.tar.bz2 -2004/11/18 14:42:10 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/termcap/termcap-20021106-2.tar.bz2 -2004/11/18 14:42:11 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/terminfo/terminfo-5.4_20041009-1.tar.bz2 -2004/11/18 14:42:15 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/texinfo/texinfo-4.2-4.tar.bz2 -2004/11/18 14:42:18 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/textutils/textutils-2.0.21-1.tar.bz2 -2004/11/18 14:42:19 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/which/which-1.5-2.tar.bz2 -2004/11/18 14:42:19 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/zlib/zlib-1.2.2-1.tar.bz2 -2004/11/18 14:42:19 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/_update-info-dir/_update-info-dir-00230-1.tar.bz2 -2004/11/18 14:42:19 mbox note: Download Complete -2004/11/18 14:42:21 Ending cygwin install diff --git a/tools/cygwin/Cygwin-Files/setup.log.full b/tools/cygwin/Cygwin-Files/setup.log.full deleted file mode 100755 index bdb9a5fc..00000000 --- a/tools/cygwin/Cygwin-Files/setup.log.full +++ /dev/null @@ -1,6300 +0,0 @@ -2004/11/18 14:39:17 Starting cygwin install, version 2.427 -2004/11/18 14:39:17 Current Directory: D:\Downloads -2004/11/18 14:39:17 Changing gid to Users -2004/11/18 14:39:17 Could not open service McShield for query, start and stop. McAfee may not be installed, or we don't have access. -2004/11/18 14:39:21 source: network install -2004/11/18 14:39:25 root: C:\cygwin binary system -2004/11/18 14:39:47 Selected local directory: D:\Downloads\Cygwin -2004/11/18 14:39:52 net: Direct -get_url_to_membuf http://sources.redhat.com/cygwin/mirrors.lst -getUrlToStream http://sources.redhat.com/cygwin/mirrors.lst -getUrlToStream failed! -get_url_to_membuf failed! -2004/11/18 14:40:22 source: download -2004/11/18 14:40:23 Selected local directory: D:\Downloads\Cygwin -2004/11/18 14:40:24 net: Direct -get_url_to_membuf http://sources.redhat.com/cygwin/mirrors.lst -getUrlToStream http://sources.redhat.com/cygwin/mirrors.lst -2004/11/18 14:40:37 site: ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin -get_url_to_membuf ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/setup.bz2 -getUrlToStream ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/setup.bz2 -ftp > 220 beat me, break me! vsftpd, yeah baby! -ftp > 331 Please specify the password. -ftp > 230- -ftp > 230-Rsync access available upon request. -ftp > 230- -ftp > 230- All transfers are logged. -ftp > 230- If you don't like this policy, then disconnect now. -ftp > 230- -ftp > 230-This archive is running on a quad Xeon at 1400 Mhz each. Diskspace -ftp > 230-is currently around 900 GB using ext3 as filesystem. The average through- -ftp > 230-put is around 900GB per day. -ftp > 230- -ftp > 230-This is the official anonymous FTP server of the Computing Center of the -ftp > 230-University of Applied Sciences, Esslingen. http://www.fht-esslingen.de/rz/ -ftp > 230- -ftp > 230-To search our archives try http://www-stud.fht-esslingen.de/ftpsuche.html -ftp > 230- -ftp > 230-This is an experimental FTP server. If you have any unusual problems, -ftp > 230-please report them via e-mail to adrian@fht-esslingen.de and we will -ftp > 230-do our best to help you. -ftp > 230- -ftp > 230- ... powered by Linux! -ftp > 230 Login successful. -ftp > 200 Switching to Binary mode. -ftp > 227 Entering Passive Mode (129,143,116,10,92,235) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/setup.bz2 (89627 bytes). -compress::~compress called -compress::~compress called -Chooser results... -[a2ps] action=Skip trust=test installed=none src?=no - categories=All, Text - [Prev] ver=4.12-2 - [Curr] ver=4.13-1 - depends=AND list is: -cygwin | -end of OR list, -groff | -end of OR list, -man | -end of OR list, -psutils | -end of OR list, -[agetty] action=Skip trust=prev installed=none src?=no - categories=All, System - [Curr] ver=2.1-1 - depends=AND list is: -cygwin | -end of OR list, -login | -end of OR list, -[antiword] action=Skip trust=test installed=none src?=no - categories=All, Text - [Prev] ver=0.34-1 - [Curr] ver=0.34-2 - depends=AND list is: -cygwin | -end of OR list, -[apache] action=Skip trust=prev installed=none src?=no - categories=All, Net, Web - [Curr] ver=1.3.29-2 - depends=AND list is: -cygwin | -end of OR list, -crypt | -end of OR list, -libgdbm4 | -end of OR list, -[apr] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=0.9.5pre20040608-1 - [Curr] ver=0.9.5_2.0.52-1 - depends=AND list is: -cygwin | -end of OR list, -libapr0 | -end of OR list, -[apr-util] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=0.9.5pre20040608-1 - [Curr] ver=0.9.5_2.0.52-1 - depends=AND list is: -cygwin | -end of OR list, -libaprutil0 | -end of OR list, -apr | -end of OR list, -[ash] action=20040127-1 trust=curr installed=none src?=no - categories=All, Base, Shells - [Prev] ver=20031007-1 - [Curr] ver=20040127-1 - depends=AND list is: -cygwin | -end of OR list, -[aspell] action=Skip trust=prev installed=none src?=no - categories=All, Text - [Curr] ver=0.50.3-1 - depends=AND list is: -cygwin | -end of OR list, -libaspell15 | -end of OR list, -ncurses | -end of OR list, -aspell-en | -end of OR list, -[aspell-de] action=Skip trust=prev installed=none src?=no - categories=All, Text - [Curr] ver=0.50.2-1 - depends=AND list is: -cygwin | -end of OR list, -aspell | -end of OR list, -[aspell-dev] action=Skip trust=prev installed=none src?=no - categories=All, Text - [Curr] ver=0.50.3-1 - depends=AND list is: -cygwin | -end of OR list, -libaspell15 | -end of OR list, -[aspell-doc] action=Skip trust=prev installed=none src?=no - categories=All, Text - [Curr] ver=0.50.3-1 - depends=AND list is: -cygwin | -end of OR list, -[aspell-en] action=Skip trust=prev installed=none src?=no - categories=All, Text - [Curr] ver=0.51.0-1 - depends=AND list is: -cygwin | -end of OR list, -aspell | -end of OR list, -[aspell-pl] action=Skip trust=prev installed=none src?=no - categories=All, Text - [Curr] ver=0.50.2-1 - depends=AND list is: -cygwin | -end of OR list, -aspell | -end of OR list, -[astyle] action=Skip trust=test installed=none src?=no - categories=All, Devel, Utils - [Prev] ver=1.15.3-2 - [Curr] ver=1.15.3-3 - depends=AND list is: -cygwin | -end of OR list, -[atk] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=1.6.1-2 - [Curr] ver=1.8.0-1 - depends=AND list is: -atk-runtime | -end of OR list, -[atk-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=1.6.1-2 - [Curr] ver=1.8.0-1 - depends=AND list is: -atk-runtime | -end of OR list, -[atk-doc] action=Skip trust=test installed=none src?=no - categories=All, Devel, Doc, Libs - [Prev] ver=1.6.1-2 - [Curr] ver=1.8.0-1 -[atk-runtime] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=1.6.1-2 - [Curr] ver=1.8.0-1 - depends=AND list is: -cygwin | -end of OR list, -libiconv2 | -end of OR list, -libintl2 | -end of OR list, -glib2 | -end of OR list, -atk | -end of OR list, -[audiofile] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=0.2.6-1 - [Curr] ver=0.2.6-2 - depends=AND list is: -cygwin | -end of OR list, -libaudiofile0 | -end of OR list, -[autoconf] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=2.57a-1 - [Curr] ver=2.59-1 - depends=AND list is: -ash | -end of OR list, -autoconf-devel | -end of OR list, -autoconf-stable | -end of OR list, -[autoconf-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=2.57-2 - [Curr] ver=2.59-1 - depends=AND list is: -m4 | -end of OR list, -perl | -end of OR list, -mktemp | -end of OR list, -texinfo | -end of OR list, -_update-info-dir | -end of OR list, -[autoconf-stable] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=2.13-4 - [Curr] ver=2.13-5 - depends=AND list is: -m4 | -end of OR list, -perl | -end of OR list, -mktemp | -end of OR list, -[automake] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.7.5a-1 - [Curr] ver=1.7.9-1 - depends=AND list is: -ash | -end of OR list, -automake-devel | -end of OR list, -automake-stable | -end of OR list, -[automake-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.9.1-1 - [Curr] ver=1.9.2-1 - depends=AND list is: -autoconf | -end of OR list, -perl | -end of OR list, -mktemp | -end of OR list, -m4 | -end of OR list, -texinfo | -end of OR list, -_update-info-dir | -end of OR list, -[automake-stable] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.4p6-1 - [Curr] ver=1.4p6-2 - depends=AND list is: -autoconf | -end of OR list, -perl | -end of OR list, -mktemp | -end of OR list, -m4 | -end of OR list, -[autossh] action=Skip trust=test installed=none src?=no - categories=All, Net - [Prev] ver=1.2g-2 - [Curr] ver=1.2g-4 - depends=AND list is: -openssh | -end of OR list, -cygwin | -end of OR list, -[base-files] action=3.1-4 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=3.0-3 - [Curr] ver=3.1-4 - depends=AND list is: -ash | -end of OR list, -fileutils | -end of OR list, -sh-utils | -end of OR list, -textutils | -end of OR list, -findutils | -end of OR list, -sed | -end of OR list, -[base-passwd] action=2.1-1 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=2.0-1 - [Curr] ver=2.1-1 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -[bash] action=2.05b-16 trust=curr installed=none src?=no - categories=All, Base, Shells - [Prev] ver=2.05b-15 - [Curr] ver=2.05b-16 - depends=AND list is: -cygwin | -end of OR list, -termcap | -end of OR list, -_update-info-dir | -end of OR list, - [Test] ver=2.05b-17 -[bc] action=Skip trust=prev installed=none src?=no - categories=All, Math, Utils - [Curr] ver=1.06-1 - depends=AND list is: -cygwin | -end of OR list, -[binutils] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=20040312-1 - [Curr] ver=20040725-2 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -[bison] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.875-1 - [Curr] ver=20030307-1 - depends=AND list is: -cygwin | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -m4 | -end of OR list, -[byacc] action=Skip trust=prev installed=none src?=no - categories=All, Devel - [Curr] ver=1.9-1 - depends=AND list is: -cygwin | -end of OR list, -[bzip2] action=1.0.2-6 trust=curr installed=none src?=no - categories=All, Utils - [Prev] ver=1.0.2-5 - [Curr] ver=1.0.2-6 - depends=AND list is: -cygwin | -end of OR list, -libbz2_1 | -end of OR list, -_update-info-dir | -end of OR list, -[c-client] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=2002e-2 - [Curr] ver=2002e-3 - depends=AND list is: -openssl-devel | -end of OR list, -uw-imap | -end of OR list, -[c3270] action=Skip trust=prev installed=none src?=no - categories=All, Net - [Curr] ver=3.2.20-1 - depends=AND list is: -cygwin | -end of OR list, -suite3270 | -end of OR list, -libncurses7 | -end of OR list, -[cabextract] action=Skip trust=test installed=none src?=no - categories=All, Archive - [Prev] ver=0.6-1 - [Curr] ver=0.6-2 - depends=AND list is: -cygwin | -end of OR list, -[ccache] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.9-1 - [Curr] ver=2.2-1 - depends=AND list is: -gcc | -end of OR list, -[ccdoc] action=Skip trust=prev installed=none src?=no - categories=All, Devel - [Curr] ver=0.8.41-2 - depends=AND list is: -cygwin | -end of OR list, -[ccrypt] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=1.7-1 - depends=AND list is: -cygwin | -end of OR list, -[cgoban] action=Skip trust=test installed=none src?=no - categories=All, Games, X11 - [Prev] ver=1.9.12-1 - [Curr] ver=1.9.14-1 - depends=AND list is: -xorg-x11-base | -end of OR list, -gnugo | -end of OR list, -[check] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=0.8.4-1 - [Curr] ver=0.9.1-1 - depends=AND list is: -cygwin | -end of OR list, -[chere] action=Skip trust=test installed=none src?=no - categories=All, Shells, System, Utils - [Prev] ver=0.4-1 - [Curr] ver=0.5-2 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -sh-utils | -end of OR list, -cygutils | -end of OR list, -bash | -end of OR list, -textutils | -end of OR list, -[chkconfig] action=Skip trust=prev installed=none src?=no - categories=All, System - [Curr] ver=1.2.24h-1 - depends=AND list is: -cygwin | -end of OR list, -initscripts | -end of OR list, -[clamav] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=0.80-2 - depends=AND list is: -curl | -end of OR list, -cygwin | -end of OR list, -gmp | -end of OR list, -libbz2_1 | -end of OR list, -minires | -end of OR list, -openssl | -end of OR list, -zlib | -end of OR list, -[clear] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=1.0-1 - depends=AND list is: -cygwin | -end of OR list, -[clisp] action=Skip trust=test installed=none src?=no - categories=All, Devel, Interpreters, Math, Shells - [Prev] ver=2.33-1 - [Curr] ver=2.33.1-1 -[cmake] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.8.3-1 - [Curr] ver=2.0.5-1 - depends=AND list is: -libncurses7 | -end of OR list, -cygwin | -end of OR list, -[cocom] action=Skip trust=prev installed=none src?=no - categories=All, Devel - [Curr] ver=0.995-1 - depends=AND list is: -cygwin | -end of OR list, -[compface] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Libs, Mail, Utils - [Curr] ver=1.4-5 - depends=AND list is: -cygwin | -end of OR list, -[cpio] action=Skip trust=test installed=none src?=no - categories=All, Utils - [Prev] ver=2.5-1 - [Curr] ver=2.5-3 - depends=AND list is: -cygwin | -end of OR list, -_update-info-dir | -end of OR list, -[cppunit] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Libs - [Curr] ver=1.9.14-1 - depends=AND list is: -cygwin | -end of OR list, -[cron] action=Skip trust=test installed=none src?=no - categories=Admin, All - [Prev] ver=3.0.1-12 - [Curr] ver=3.0.1-13 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -[crypt] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=1.0-2 - [Curr] ver=1.1-1 - depends=AND list is: -cygwin | -end of OR list, -[ctags] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=5.5-3 - [Curr] ver=5.5-4 - depends=AND list is: -cygwin | -end of OR list, -[ctetris] action=Skip trust=test installed=none src?=no - categories=All, Games - [Prev] ver=0.29-1 - [Curr] ver=0.30-1 - depends=AND list is: -libncurses7 | -end of OR list, -cygwin | -end of OR list, -[curl] action=Skip trust=test installed=none src?=no - categories=All, Libs, Web - [Prev] ver=7.10.8-1 - [Curr] ver=7.11.1-1 - depends=AND list is: -cygwin | -end of OR list, -openssl | -end of OR list, -[curl-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs, Web - [Prev] ver=7.10.8-1 - [Curr] ver=7.11.1-1 - depends=AND list is: -cygwin | -end of OR list, -openssl | -end of OR list, -curl | -end of OR list, -[cvs] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Curr] ver=1.11.17-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libgdbm4 | -end of OR list, -crypt | -end of OR list, -textutils | -end of OR list, -_update-info-dir | -end of OR list, - [Prev] ver=1.11.6-3 -[cygipc] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=2.02-1 - [Curr] ver=2.03-2 - depends=AND list is: -cygwin | -end of OR list, -libpopt0 | -end of OR list, -[cygrunsrv] action=Skip trust=test installed=none src?=no - categories=Admin, All - [Prev] ver=0.99-1 - [Curr] ver=1.0-1 - depends=AND list is: -cygwin | -end of OR list, -[cygutils] action=1.2.5-1 trust=curr installed=none src?=no - categories=All, Utils - [Prev] ver=1.2.4-1 - [Curr] ver=1.2.5-1 - depends=AND list is: -cygwin | -end of OR list, -libpopt0 | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -[cygwin] action=1.5.12-1 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=1.5.11-1 - [Curr] ver=1.5.12-1 - depends=AND list is: -libintl2 | -end of OR list, -base-passwd | -end of OR list, -_update-info-dir | -end of OR list, -[cygwin-doc] action=1.3-7 trust=curr installed=none src?=no - categories=All, Base, Doc - [Prev] ver=1.3-6 - [Curr] ver=1.3-7 - depends=AND list is: -cygwin | -end of OR list, -fileutils | -end of OR list, -man | -end of OR list, -texinfo | -end of OR list, -cygutils | -end of OR list, -[cygwin-x-doc] action=Skip trust=prev installed=none src?=no - categories=All, Doc, X11 - [Curr] ver=1.0.4-1 - depends=AND list is: -cygwin | -end of OR list, -[cyrus-sasl] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=2.1.19-3 - depends=AND list is: -libsasl2 | -end of OR list, -cygwin | -end of OR list, -[d] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=1.2.0-1 - depends=AND list is: -cygwin | -end of OR list, -[db2] action=Skip trust=test installed=none src?=no - categories=All, Database - [Prev] ver=2.7.7-3 - [Curr] ver=2.7.7-4 - depends=AND list is: -cygwin | -end of OR list, -libdb2 | -end of OR list, -[db3.1] action=Skip trust=prev installed=none src?=no - categories=All, Database - [Curr] ver=3.1.17-2 - depends=AND list is: -cygwin | -end of OR list, -libdb3.1 | -end of OR list, -[db4.1] action=Skip trust=prev installed=none src?=no - categories=All, Database - [Curr] ver=4.1.25-1 - depends=AND list is: -cygwin | -end of OR list, -libdb4.1 | -end of OR list, -[db4.2] action=Skip trust=prev installed=none src?=no - categories=All, Database - [Curr] ver=4.2.52-1 - depends=AND list is: -cygwin | -end of OR list, -libdb4.2 | -end of OR list, -[ddd] action=Skip trust=prev installed=none src?=no - categories=All, Devel, X11 - [Curr] ver=3.3.9-1 - depends=AND list is: -cygipc | -end of OR list, -cygwin | -end of OR list, -expat | -end of OR list, -lesstif | -end of OR list, -libfontconfig1 | -end of OR list, -libfreetype26 | -end of OR list, -libncurses7 | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -_update-info-dir | -end of OR list, -[dejagnu] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=20021217-1 - [Curr] ver=20021217-2 - depends=AND list is: -expect | -end of OR list, -[desktop-file-utils] action=Skip trust=test installed=none src?=no - categories=All, Utils - [Curr] ver=0.10-1 - depends=AND list is: -cygwin | -end of OR list, -glib2-runtime | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libpopt0 | -end of OR list, - [Prev] ver=0.8-1 -[diffstat] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Utils - [Curr] ver=1.34-1 - depends=AND list is: -cygwin | -end of OR list, -[diffutils] action=2.8.7-1 trust=curr installed=none src?=no - categories=All, Base - [Curr] ver=2.8.7-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -[distcc] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=2.14-1 - [Curr] ver=2.16-1 - depends=AND list is: -cygwin | -end of OR list, -gcc | -end of OR list, -popt | -end of OR list, -[docbook-xml42] action=Skip trust=test installed=none src?=no - categories=All, Doc, Text - [Prev] ver=4.2-2 - [Curr] ver=4.2-3 - depends=AND list is: -libxml2 | -end of OR list, -[docbook-xsl] action=Skip trust=test installed=none src?=no - categories=All, Doc, Text - [Prev] ver=1.66.1-2 - [Curr] ver=1.67.0-1 - depends=AND list is: -libxml2 | -end of OR list, -[doxygen] action=Skip trust=prev installed=none src?=no - categories=All, Devel - [Curr] ver=1.2.18-1 - depends=AND list is: -cygwin | -end of OR list, -libpng12 | -end of OR list, -[dpkg] action=Skip trust=prev installed=none src?=no - categories=All, Devel - [Curr] ver=1.10.4-2 - depends=AND list is: -perl | -end of OR list, -cygwin | -end of OR list, -libintl2 | -end of OR list, -[e2fsimage] action=Skip trust=prev installed=none src?=no - categories=All, Devel - [Curr] ver=0.2.0-1 - depends=AND list is: -cygwin | -end of OR list, -e2fsprogs | -end of OR list, -[e2fsprogs] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.35-1 - [Curr] ver=1.35-2 - depends=AND list is: -cygwin | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -[ed] action=Skip trust=prev installed=none src?=no - categories=All, Editors - [Curr] ver=0.2-1 - depends=AND list is: -cygwin | -end of OR list, -[editrights] action=1.01-1 trust=curr installed=none src?=no - categories=All, Base - [Curr] ver=1.01-1 - depends=AND list is: -cygwin | -end of OR list, -[ELFIO] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Libs - [Curr] ver=1.0.0-1 - depends=AND list is: -cygwin | -end of OR list, -[emacs] action=Skip trust=unknown installed=none src?=no - categories=All, Editors - [Prev] ver=21.2-12 - [Curr] ver=21.2-13 - depends=AND list is: -ctags | -end of OR list, -libncurses7 | -end of OR list, -terminfo | -end of OR list, -cygwin | -end of OR list, - [Test] ver=21.3.50-2 -[emacs-el] action=Skip trust=unknown installed=none src?=no - categories=All, Editors - [Prev] ver=21.2-12 - [Curr] ver=21.2-13 - depends=AND list is: -emacs | -end of OR list, - [Test] ver=21.3.50-2 -[emacs-leim] action=Skip trust=prev installed=none src?=no - categories=All, Editors - [Test] ver=21.3.50-2 -[emacs-X11] action=Skip trust=unknown installed=none src?=no - categories=All, Editors - [Prev] ver=21.2-12 - [Curr] ver=21.2-13 - depends=AND list is: -emacs | -end of OR list, -xorg-x11-bin | -end of OR list, -libjpeg62 | -end of OR list, -libpng12 | -end of OR list, -libtiff4 | -end of OR list, -libungif | -end of OR list, -Xaw3d | -end of OR list, - [Test] ver=21.3.50-2 -[email] action=Skip trust=prev installed=none src?=no - categories=All, Mail - [Curr] ver=2.3.0-2 - depends=AND list is: -cygwin | -end of OR list, -[enscript] action=Skip trust=test installed=none src?=no - categories=All, Text - [Prev] ver=1.6.3-2 - [Curr] ver=1.6.3-3 - depends=AND list is: -cygwin | -end of OR list, -cygutils | -end of OR list, -perl | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -[esound] action=Skip trust=test installed=none src?=no - categories=All, Utils - [Prev] ver=0.2.34-1 - [Curr] ver=0.2.35-1 - depends=AND list is: -cygwin | -end of OR list, -libaudiofile0 | -end of OR list, -libesound0 | -end of OR list, -[exif] action=Skip trust=prev installed=none src?=no - categories=All, Graphics - [Curr] ver=0.6.9-1 - depends=AND list is: -cygwin | -end of OR list, -libexif | -end of OR list, -libpopt0 | -end of OR list, -libiconv2 | -end of OR list, -[exim] action=Skip trust=test installed=none src?=no - categories=All, Mail - [Prev] ver=4.41-1 - [Curr] ver=4.43-1 - depends=AND list is: -crypt | -end of OR list, -cygwin | -end of OR list, -fileutils | -end of OR list, -libgdbm4 | -end of OR list, -libiconv2 | -end of OR list, -libopenldap2_2_7 | -end of OR list, -minires | -end of OR list, -openssl | -end of OR list, -sed | -end of OR list, -sh-utils | -end of OR list, -[expat] action=Skip trust=test installed=none src?=no - categories=All, Devel, Doc, Interpreters, Libs, Text - [Prev] ver=1.95.7-1 - [Curr] ver=1.95.8-1 - depends=AND list is: -cygwin | -end of OR list, -[expect] action=Skip trust=test installed=none src?=no - categories=All, Interpreters - [Prev] ver=20021218-1 - [Curr] ver=20030128-1 - depends=AND list is: -cygwin | -end of OR list, -tcltk | -end of OR list, -[fetchmail] action=Skip trust=test installed=none src?=no - categories=All, Mail - [Prev] ver=6.2.5-1 - [Curr] ver=6.2.5-2 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libintl2 | -end of OR list, -openssl | -end of OR list, -[figlet] action=Skip trust=prev installed=none src?=no - categories=All, Text - [Curr] ver=2.2-1 - depends=AND list is: -cygwin | -end of OR list, -[file] action=Skip trust=test installed=none src?=no - categories=All, Utils - [Prev] ver=4.09-1 - [Curr] ver=4.10-1 - depends=AND list is: -cygwin | -end of OR list, -zlib | -end of OR list, -[fileutils] action=4.1-2 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=4.1-1 - [Curr] ver=4.1-2 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libncurses5 | -end of OR list, -terminfo | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -[findutils] action=4.1.7-4 trust=curr installed=none src?=no - categories=All, Base - [Curr] ver=4.1.7-4 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libintl1 | -end of OR list, -[flex] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=2.5.4-2 - [Curr] ver=2.5.4a-3 - depends=AND list is: -cygwin | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -_update-info-dir | -end of OR list, -[fltk] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.1.4-1 - [Curr] ver=1.1.4-2 - depends=AND list is: -cygwin | -end of OR list, -libpng12 | -end of OR list, -zlib | -end of OR list, -libjpeg62 | -end of OR list, -[fontconfig] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=2.2.0-2 - [Curr] ver=2.2.2-1 - depends=AND list is: -cygwin | -end of OR list, -libfontconfig1 | -end of OR list, -freetype2 | -end of OR list, -expat | -end of OR list, -zlib | -end of OR list, -bash | -end of OR list, -sh-utils | -end of OR list, -diffutils | -end of OR list, -[fortune] action=Skip trust=prev installed=none src?=no - categories=All, Games - [Curr] ver=1.8-2 - depends=AND list is: -cygwin | -end of OR list, -[freeglut] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=2.2.0-1 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -[freetype2] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.1.5-1 - depends=AND list is: -cygwin | -end of OR list, -libfreetype26 | -end of OR list, -[fvwm] action=Skip trust=prev installed=none src?=no - categories=All, X11 - [Curr] ver=2.4.7-3 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-base | -end of OR list, -xorg-x11-bin | -end of OR list, -ncurses | -end of OR list, -readline | -end of OR list, -[gawk] action=3.1.4-3 trust=curr installed=none src?=no - categories=All, Base, Interpreters - [Prev] ver=3.1.3-4 - [Curr] ver=3.1.4-3 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -[gcc] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=3.3.1-3 - [Curr] ver=3.3.3-3 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -binutils | -end of OR list, -w32api | -end of OR list, -mingw-runtime | -end of OR list, -libintl3 | -end of OR list, -gcc-core | -end of OR list, -gcc-g++ | -end of OR list, -gcc-mingw-core | -end of OR list, -gcc-mingw-g++ | -end of OR list, - [Test] ver=3.4.1-1 -[gcc-ada] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=3.3.1-3 - [Curr] ver=3.3.3-3 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -binutils | -end of OR list, -w32api | -end of OR list, -mingw-runtime | -end of OR list, -libintl3 | -end of OR list, -gcc-mingw-ada | -end of OR list, -gcc-core | -end of OR list, - [Test] ver=3.4.1-1 -[gcc-core] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=3.3.1-3 - [Curr] ver=3.3.3-3 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -binutils | -end of OR list, -w32api | -end of OR list, -mingw-runtime | -end of OR list, -libintl3 | -end of OR list, -gcc-mingw-core | -end of OR list, - [Test] ver=3.4.1-1 -[gcc-g++] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=3.3.1-3 - [Curr] ver=3.3.3-3 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -binutils | -end of OR list, -w32api | -end of OR list, -mingw-runtime | -end of OR list, -libintl3 | -end of OR list, -gcc-mingw-g++ | -end of OR list, -gcc-core | -end of OR list, - [Test] ver=3.4.1-1 -[gcc-g77] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=3.3.1-3 - [Curr] ver=3.3.3-3 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -binutils | -end of OR list, -w32api | -end of OR list, -mingw-runtime | -end of OR list, -libintl3 | -end of OR list, -gcc-mingw-g77 | -end of OR list, -gcc-core | -end of OR list, - [Test] ver=3.4.1-1 -[gcc-gdc] action=Skip trust=prev installed=none src?=no - categories=All, Devel - [Curr] ver=3.3.3-3 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -binutils | -end of OR list, -w32api | -end of OR list, -mingw-runtime | -end of OR list, -libintl3 | -end of OR list, -gcc-core | -end of OR list, -[gcc-gpc] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=3.3.1-3 - [Curr] ver=3.3.3-3 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -binutils | -end of OR list, -w32api | -end of OR list, -mingw-runtime | -end of OR list, -libintl3 | -end of OR list, -gcc-core | -end of OR list, -gcc-mingw-gpc | -end of OR list, -[gcc-java] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=3.3.1-3 - [Curr] ver=3.3.3-3 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -binutils | -end of OR list, -w32api | -end of OR list, -mingw-runtime | -end of OR list, -libintl3 | -end of OR list, -gcc-mingw-java | -end of OR list, -gcc-core | -end of OR list, -zlib | -end of OR list, - [Test] ver=3.4.1-1 -[gcc-mingw] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=20030911-4 - [Curr] ver=20040810-1 - depends=AND list is: -gcc-mingw-core | -end of OR list, -[gcc-mingw-ada] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=20031020-1 - [Curr] ver=20040810-1 - depends=AND list is: -gcc-core | -end of OR list, -gcc-ada | -end of OR list, - [Test] ver=20040822-1 -[gcc-mingw-core] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=20031020-1 - [Curr] ver=20040810-1 - depends=AND list is: -gcc-core | -end of OR list, - [Test] ver=20040822-1 -[gcc-mingw-g++] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=20031020-1 - [Curr] ver=20040810-1 - depends=AND list is: -gcc-core | -end of OR list, -gcc-g++ | -end of OR list, - [Test] ver=20040822-1 -[gcc-mingw-g77] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=20031020-1 - [Curr] ver=20040810-1 - depends=AND list is: -gcc-core | -end of OR list, -gcc-g77 | -end of OR list, - [Test] ver=20040822-1 -[gcc-mingw-gpc] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=20031020-1 - [Curr] ver=20040810-1 - depends=AND list is: -gcc-core | -end of OR list, -gcc-gpc | -end of OR list, -[gcc-mingw-java] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=20031020-1 - [Curr] ver=20040810-1 - depends=AND list is: -gcc-core | -end of OR list, -gcc-java | -end of OR list, - [Test] ver=20040822-1 -[gcc-mingw-objc] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=20031020-1 - [Curr] ver=20040810-1 - depends=AND list is: -gcc-core | -end of OR list, -gcc-objc | -end of OR list, - [Test] ver=20040822-1 -[gcc-objc] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=3.3.1-3 - [Curr] ver=3.3.3-3 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -binutils | -end of OR list, -w32api | -end of OR list, -mingw-runtime | -end of OR list, -libintl3 | -end of OR list, -gcc-mingw-objc | -end of OR list, -gcc-core | -end of OR list, - [Test] ver=3.4.1-1 -[gcc-testsuite] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Prev] ver=3.3.1-3 - [Curr] ver=3.3.3-3 - depends=AND list is: -dejagnu | -end of OR list, -expect | -end of OR list, - [Test] ver=3.4.1-1 -[GConf2] action=Skip trust=prev installed=none src?=no - categories=All, Gnome - [Curr] ver=2.8.0.1-1 - depends=AND list is: -atk-runtime | -end of OR list, -cygwin | -end of OR list, -expat | -end of OR list, -glib2-runtime | -end of OR list, -gtk2-x11-runtime | -end of OR list, -libfontconfig1 | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libpopt0 | -end of OR list, -libXft2 | -end of OR list, -libxml2 | -end of OR list, -pango-runtime | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -[gd] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=2.0.21-1 - [Curr] ver=2.0.28-1 - depends=AND list is: -cygwin | -end of OR list, -libgd2 | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libjpeg62 | -end of OR list, -libpng12 | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -[gdb] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=20030303-1 - [Curr] ver=20030919-1 - depends=AND list is: -cygwin | -end of OR list, -termcap | -end of OR list, -tcltk | -end of OR list, -libiconv2 | -end of OR list, -libintl2 | -end of OR list, -[gdbm] action=1.8.3-7 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=1.8.3-3 - [Curr] ver=1.8.3-7 - depends=AND list is: -cygwin | -end of OR list, -libgdbm3 | -end of OR list, -libgdbm4 | -end of OR list, -[gettext] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=0.12.1-3 - [Curr] ver=0.14.1-1 - depends=AND list is: -cygwin | -end of OR list, -libintl3 | -end of OR list, -libiconv2 | -end of OR list, -_update-info-dir | -end of OR list, -[gettext-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=0.12.1-3 - [Curr] ver=0.14.1-1 - depends=AND list is: -cygwin | -end of OR list, -libgettextpo0 | -end of OR list, -libintl3 | -end of OR list, -gettext | -end of OR list, -texinfo | -end of OR list, -libiconv2 | -end of OR list, -expat | -end of OR list, -_update-info-dir | -end of OR list, -[ghostscript] action=Skip trust=test installed=none src?=no - categories=All, Graphics - [Prev] ver=7.05-1 - [Curr] ver=7.05-2 - depends=AND list is: -cygwin | -end of OR list, -libpng12 | -end of OR list, -zlib | -end of OR list, -ghostscript-base | -end of OR list, -[ghostscript-base] action=Skip trust=test installed=none src?=no - categories=All, Graphics - [Prev] ver=7.05-1 - [Curr] ver=7.05-2 -[ghostscript-x11] action=Skip trust=test installed=none src?=no - categories=All, Graphics - [Prev] ver=7.05-1 - [Curr] ver=7.05-2 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-base | -end of OR list, -libpng12 | -end of OR list, -zlib | -end of OR list, -ghostscript-base | -end of OR list, -[glib] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=1.2.10-1 - [Curr] ver=1.2.10-2 - depends=AND list is: -cygwin | -end of OR list, -[glib-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=1.2.10-1 - [Curr] ver=1.2.10-2 - depends=AND list is: -cygwin | -end of OR list, -[glib2] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=2.4.6-2 - [Curr] ver=2.4.7-1 - depends=AND list is: -glib2-runtime | -end of OR list, -[glib2-devel] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=2.4.6-2 - [Curr] ver=2.4.7-1 - depends=AND list is: -glib2-runtime | -end of OR list, -[glib2-doc] action=Skip trust=test installed=none src?=no - categories=All, Doc, Libs - [Prev] ver=2.4.6-2 - [Curr] ver=2.4.7-1 -[glib2-runtime] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=2.4.6-2 - [Curr] ver=2.4.7-1 - depends=AND list is: -cygwin | -end of OR list, -libiconv2 | -end of OR list, -libintl2 | -end of OR list, -glib2 | -end of OR list, -[gmp] action=Skip trust=test installed=none src?=no - categories=All, Libs, Math - [Prev] ver=4.1.2-1 - [Curr] ver=4.1.4-2 - depends=AND list is: -cygwin | -end of OR list, -[gnome-common] action=Skip trust=prev installed=none src?=no - categories=All, Devel - [Curr] ver=2.8.0-1 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -[gnome-icon-theme] action=Skip trust=prev installed=none src?=no - categories=All, X11 - [Curr] ver=2.8.0-1 - depends=AND list is: -hicolor-icon-theme | -end of OR list, -[gnome-keyring] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Libs - [Curr] ver=0.4.0-1 - depends=AND list is: -cygwin | -end of OR list, -glib2-runtime | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -[gnome-mime-data] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=2.4.1-1 -[gnome-vfs2] action=Skip trust=prev installed=none src?=no - categories=All, Gnome - [Curr] ver=2.8.0-1 - depends=AND list is: -cygwin | -end of OR list, -GConf2 | -end of OR list, -glib2-runtime | -end of OR list, -libbonobo2 | -end of OR list, -libbz2_1 | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libxml2 | -end of OR list, -openssl | -end of OR list, -ORBit2 | -end of OR list, -zlib | -end of OR list, -shared-mime-info | -end of OR list, -gnome-mime-data | -end of OR list, -[gnugo] action=Skip trust=test installed=none src?=no - categories=All, Games - [Prev] ver=3.2-1 - [Curr] ver=3.4-1 - depends=AND list is: -libncurses7 | -end of OR list, -cygwin | -end of OR list, -[gnupg] action=Skip trust=test installed=none src?=no - categories=All, Utils - [Prev] ver=1.2.2-3 - [Curr] ver=1.2.4-1 - depends=AND list is: -cygwin | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -zlib | -end of OR list, -_update-info-dir | -end of OR list, -[gnuplot] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Math - [Prev] ver=3.8j.0-1 - [Curr] ver=4.0.0-1 - depends=AND list is: -cygwin | -end of OR list, -libfreetype26 | -end of OR list, -libgd2 | -end of OR list, -libiconv2 | -end of OR list, -libjpeg62 | -end of OR list, -libncurses7 | -end of OR list, -libpng12 | -end of OR list, -libreadline5 | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -_update-info-dir | -end of OR list, -[gperf] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=0.0 - [Curr] ver=2.7.2-1 - depends=AND list is: -cygwin | -end of OR list, -_update-info-dir | -end of OR list, -[grace] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=5.1.14-2 - [Curr] ver=5.1.17-1 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-base | -end of OR list, -lesstif | -end of OR list, -jpeg | -end of OR list, -libpng12 | -end of OR list, -XmHTML | -end of OR list, -[GraphicsMagick] action=Skip trust=prev installed=none src?=no - categories=All, Graphics - [Curr] ver=1.0.6-1 - depends=AND list is: -cygwin | -end of OR list, -jbigkit | -end of OR list, -libbz2_1 | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libjpeg62 | -end of OR list, -libpng12 | -end of OR list, -libtiff4 | -end of OR list, -libxml2 | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -libGraphicsMagick0 | -end of OR list, -[grep] action=2.5-1 trust=curr installed=none src?=no - categories=All, Base - [Curr] ver=2.5-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libintl1 | -end of OR list, -libpcre | -end of OR list, -[groff] action=1.18.1-2 trust=curr installed=none src?=no - categories=All, Text - [Prev] ver=1.17.2-1 - [Curr] ver=1.18.1-2 - depends=AND list is: -cygwin | -end of OR list, -[gsl] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=1.4-2 - [Curr] ver=1.5-1 - depends=AND list is: -cygwin | -end of OR list, -[gtk+] action=Skip trust=test installed=none src?=no - categories=All, Libs, X11 - [Prev] ver=1.2.10-1 - [Curr] ver=1.2.10-2 - depends=AND list is: -cygwin | -end of OR list, -glib | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -xorg-x11-base | -end of OR list, -[gtk+-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs, X11 - [Prev] ver=1.2.10-1 - [Curr] ver=1.2.10-2 - depends=AND list is: -cygwin | -end of OR list, -glib-devel | -end of OR list, -libiconv | -end of OR list, -gettext | -end of OR list, -[gtk-doc] action=Skip trust=prev installed=none src?=no - categories=All, Devel - [Curr] ver=1.2-1 - depends=AND list is: -OpenSP | -end of OR list, -openjade | -end of OR list, -perl | -end of OR list, -[gtk2-x11] action=Skip trust=test installed=none src?=no - categories=All, Devel, Graphics, Libs - [Curr] ver=2.4.11-1 - depends=AND list is: -gtk2-x11-runtime | -end of OR list, - [Prev] ver=2.4.4-1 -[gtk2-x11-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Graphics, Libs - [Curr] ver=2.4.11-1 - depends=AND list is: -gtk2-x11-runtime | -end of OR list, - [Prev] ver=2.4.4-1 -[gtk2-x11-doc] action=Skip trust=test installed=none src?=no - categories=All, Devel, Graphics, Libs - [Curr] ver=2.4.11-1 - [Prev] ver=2.4.4-1 -[gtk2-x11-runtime] action=Skip trust=test installed=none src?=no - categories=All, Devel, Graphics, Libs - [Curr] ver=2.4.11-1 - depends=AND list is: -cygwin | -end of OR list, -libjpeg62 | -end of OR list, -libtiff4 | -end of OR list, -libpng12 | -end of OR list, -atk | -end of OR list, -libfontconfig1 | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -glib2 | -end of OR list, -pango | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -gtk2-x11 | -end of OR list, - [Prev] ver=2.4.4-1 -[gtypist] action=Skip trust=test installed=none src?=no - categories=All, Text - [Prev] ver=2.7-1 - [Curr] ver=2.7-2 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -perl | -end of OR list, -[guile] action=Skip trust=unknown installed=none src?=no - categories=All, Interpreters - [Prev] ver=1.6.4-12 - [Curr] ver=1.6.5-1 - depends=AND list is: -cygwin | -end of OR list, -libguile16 | -end of OR list, -libguile12 | -end of OR list, -libncurses7 | -end of OR list, -libreadline5 | -end of OR list, - [Test] ver=1.7.1.20041006-1 -[guile-devel] action=Skip trust=unknown installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=1.6.4-12 - [Curr] ver=1.6.5-1 - depends=AND list is: -cygwin | -end of OR list, -guile | -end of OR list, -libguile16 | -end of OR list, -libguile12 | -end of OR list, - [Test] ver=1.7.1.20041006-1 -[guile-doc] action=Skip trust=unknown installed=none src?=no - categories=All, Doc - [Prev] ver=1.6.4-12 - [Curr] ver=1.6.5-1 - depends=AND list is: -texinfo | -end of OR list, - [Test] ver=1.7.1.20041006-1 -[gv] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Text, X11 - [Prev] ver=3.5.8-1 - [Curr] ver=3.5.8-2 - depends=AND list is: -cygwin | -end of OR list, -ghostscript-x11 | -end of OR list, -xorg-x11-base | -end of OR list, -Xaw3d | -end of OR list, -[gzip] action=1.3.5-1 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=1.3.3-4 - [Curr] ver=1.3.5-1 - depends=AND list is: -cygwin | -end of OR list, -[help2man] action=Skip trust=prev installed=none src?=no - categories=All, Devel - [Curr] ver=1.33.1-1 - depends=AND list is: -perl | -end of OR list, -[hicolor-icon-theme] action=Skip trust=prev installed=none src?=no - categories=All, X11 - [Curr] ver=0.5-1 -[ImageMagick] action=Skip trust=prev installed=none src?=no - categories=All, Graphics - [Curr] ver=6.0.4-1 - depends=AND list is: -cygwin | -end of OR list, -jasper | -end of OR list, -jbigkit | -end of OR list, -lcms | -end of OR list, -libbz2_1 | -end of OR list, -libfpx | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libjpeg62 | -end of OR list, -libpng12 | -end of OR list, -libtiff4 | -end of OR list, -libxml2 | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -libMagick6 | -end of OR list, -[indent] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=2.2.8-1 - [Curr] ver=2.2.9-1 - depends=AND list is: -cygwin | -end of OR list, -[inetutils] action=Skip trust=test installed=none src?=no - categories=All, Net - [Prev] ver=1.3.2-27 - [Curr] ver=1.3.2-28 - depends=AND list is: -cygwin | -end of OR list, -terminfo | -end of OR list, -[initscripts] action=Skip trust=prev installed=none src?=no - categories=All, System - [Curr] ver=0.9-1 - depends=AND list is: -bash | -end of OR list, -sysvinit | -end of OR list, -[intltool] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=0.31-1 - [Curr] ver=0.31.2-1 - depends=AND list is: -cygwin | -end of OR list, -perl | -end of OR list, -[ioperm] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs, System - [Prev] ver=0.3-1 - [Curr] ver=0.4-1 - depends=AND list is: -cygwin | -end of OR list, -libpopt0 | -end of OR list, -[irc] action=Skip trust=test installed=none src?=no - categories=All, Net - [Prev] ver=20010101-2 - [Curr] ver=20010101-3 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -termcap | -end of OR list, -[jasper] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=1.701.0-1 - depends=AND list is: -cygwin | -end of OR list, -libjpeg62 | -end of OR list, -freeglut | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -[jbigkit] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=1.4-1 - [Curr] ver=1.5-3 - depends=AND list is: -cygwin | -end of OR list, -[jgraph] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Publishing - [Curr] ver=8.3-1 - depends=AND list is: -cygwin | -end of OR list, -[jpeg] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=6b-11 - depends=AND list is: -cygwin | -end of OR list, -libjpeg62 | -end of OR list, -libjpeg6b | -end of OR list, - [Prev] ver=6b-8 -[keychain] action=Skip trust=test installed=none src?=no - categories=All, Utils - [Prev] ver=1.9-1 - [Curr] ver=2.0.3-2 - depends=AND list is: -openssh | -end of OR list, -bash | -end of OR list, -grep | -end of OR list, -gawk | -end of OR list, -sh-utils | -end of OR list, -cygwin | -end of OR list, -[lablgtk2] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=2.4.0-1 - [Curr] ver=2.4.0-2 - depends=AND list is: -atk-runtime | -end of OR list, -cygwin | -end of OR list, -expat | -end of OR list, -glib2-runtime | -end of OR list, -gtk2-x11-runtime | -end of OR list, -libXft2 | -end of OR list, -libfontconfig1 | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libncurses7 | -end of OR list, -ocaml | -end of OR list, -pango-runtime | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -[lcms] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=1.13-1 - depends=AND list is: -cygwin | -end of OR list, -libjpeg62 | -end of OR list, -libtiff4 | -end of OR list, -zlib | -end of OR list, -[less] action=381-1 trust=curr installed=none src?=no - categories=All, Text - [Prev] ver=378-1 - [Curr] ver=381-1 - depends=AND list is: -cygwin | -end of OR list, -termcap | -end of OR list, -libpcre0 | -end of OR list, -[lesstif] action=Skip trust=unknown installed=none src?=no - categories=All, X11 - [Prev] ver=0.93.91-6 - [Curr] ver=0.93.94-2 - depends=AND list is: -xorg-x11-base | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, - [Test] ver=0.93.96-2 -[lftp] action=Skip trust=test installed=none src?=no - categories=All, Net - [Curr] ver=2.6.10-2 - depends=AND list is: -cygwin | -end of OR list, -libreadline5 | -end of OR list, -libncurses7 | -end of OR list, -openssl | -end of OR list, -fileutils | -end of OR list, -libiconv2 | -end of OR list, -libintl2 | -end of OR list, - [Prev] ver=2.6.8-3 -[libapr0] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=0.9.5pre20040608-1 - [Curr] ver=0.9.5_2.0.52-1 - depends=AND list is: -cygwin | -end of OR list, -[libaprutil0] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=0.9.5pre20040608-1 - [Curr] ver=0.9.5_2.0.52-1 - depends=AND list is: -cygwin | -end of OR list, -libapr0 | -end of OR list, -expat | -end of OR list, -libiconv2 | -end of OR list, -libdb4.2 | -end of OR list, -libgdbm4 | -end of OR list, -[libart_lgpl] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=2.3.16-1 - depends=AND list is: -cygwin | -end of OR list, -[libaspell15] action=Skip trust=prev installed=none src?=no - categories=All, Text - [Curr] ver=0.50.3-1 - depends=AND list is: -cygwin | -end of OR list, -[libaudiofile-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=0.2.6-1 - [Curr] ver=0.2.6-2 - depends=AND list is: -cygwin | -end of OR list, -[libaudiofile0] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=0.2.6-1 - [Curr] ver=0.2.6-2 - depends=AND list is: -cygwin | -end of OR list, -[libbonobo2] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.8.0-1 - depends=AND list is: -cygwin | -end of OR list, -ORBit2 | -end of OR list, -glib2-runtime | -end of OR list, -libbonobo20 | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libpopt0 | -end of OR list, -libxml2 | -end of OR list, -minires | -end of OR list, -zlib | -end of OR list, -[libbonobo2-devel] action=Skip trust=prev installed=none src?=no - categories=All, Devel - [Curr] ver=2.8.0-1 - depends=AND list is: -cygwin | -end of OR list, -ORBit2-devel | -end of OR list, -glib2-devel | -end of OR list, -libiconv | -end of OR list, -gettext | -end of OR list, -libbonobo2 | -end of OR list, -[libbonobo2-doc] action=Skip trust=prev installed=none src?=no - categories=All, Doc - [Curr] ver=2.8.0-1 -[libbonobo20] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.8.0-1 - depends=AND list is: -libbonobo2 | -end of OR list, -[libbonoboui2] action=Skip trust=prev installed=none src?=no - categories=All, Gnome - [Curr] ver=2.8.0-1 - depends=AND list is: -cygwin | -end of OR list, -GConf2 | -end of OR list, -ORBit2 | -end of OR list, -atk-runtime | -end of OR list, -glib2-runtime | -end of OR list, -gnome-vfs2 | -end of OR list, -gtk2-x11-runtime | -end of OR list, -libaudiofile0 | -end of OR list, -libbonobo2 | -end of OR list, -libesound0 | -end of OR list, -libgnome2 | -end of OR list, -libgnomecanvas2 | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libpopt0 | -end of OR list, -libxml2 | -end of OR list, -openssl | -end of OR list, -pango-runtime | -end of OR list, -xorg-x11-base | -end of OR list, -zlib | -end of OR list, -[libbz2_0] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=1.0.2-1 - depends=AND list is: -cygwin | -end of OR list, -bzip2 | -end of OR list, -[libbz2_1] action=1.0.2-6 trust=curr installed=none src?=no - categories=All, Libs - [Prev] ver=1.0.2-5 - [Curr] ver=1.0.2-6 - depends=AND list is: -cygwin | -end of OR list, -bzip2 | -end of OR list, -[libcharset1] action=1.9.2-1 trust=curr installed=none src?=no - categories=All, Libs - [Prev] ver=1.9.1-3 - [Curr] ver=1.9.2-1 - depends=AND list is: -cygwin | -end of OR list, -[libcroco] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=0.5.1-1 - [Curr] ver=0.5.1-2 - depends=AND list is: -libcroco06 | -end of OR list, -[libcroco06] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Libs - [Curr] ver=0.6.0-1 - depends=AND list is: -cygwin | -end of OR list, -libxml2 | -end of OR list, -glib2 | -end of OR list, -libiconv2 | -end of OR list, -libintl2 | -end of OR list, -zlib | -end of OR list, -[libdb2] action=Skip trust=test installed=none src?=no - categories=All, Database - [Prev] ver=2.7.7-3 - [Curr] ver=2.7.7-4 - depends=AND list is: -cygwin | -end of OR list, -[libdb2-devel] action=Skip trust=test installed=none src?=no - categories=All, Database - [Prev] ver=2.7.7-3 - [Curr] ver=2.7.7-4 - depends=AND list is: -cygwin | -end of OR list, -libdb2 | -end of OR list, -[libdb3.1] action=Skip trust=prev installed=none src?=no - categories=All, Database - [Curr] ver=3.1.17-2 - depends=AND list is: -cygwin | -end of OR list, -[libdb3.1-devel] action=Skip trust=prev installed=none src?=no - categories=All, Database - [Curr] ver=3.1.17-2 - depends=AND list is: -cygwin | -end of OR list, -libdb3.1 | -end of OR list, -[libdb4.1] action=Skip trust=prev installed=none src?=no - categories=All, Database - [Curr] ver=4.1.25-1 - depends=AND list is: -cygwin | -end of OR list, -[libdb4.1-devel] action=Skip trust=prev installed=none src?=no - categories=All, Database - [Curr] ver=4.1.25-1 - depends=AND list is: -cygwin | -end of OR list, -libdb4.1 | -end of OR list, -[libdb4.2] action=Skip trust=prev installed=none src?=no - categories=All, Database - [Curr] ver=4.2.52-1 - depends=AND list is: -cygwin | -end of OR list, -[libdb4.2-devel] action=Skip trust=prev installed=none src?=no - categories=All, Database - [Curr] ver=4.2.52-1 - depends=AND list is: -cygwin | -end of OR list, -libdb4.2 | -end of OR list, -[libesound-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=0.2.34-1 - [Curr] ver=0.2.35-1 - depends=AND list is: -cygwin | -end of OR list, -libaudiofile-devel | -end of OR list, -[libesound0] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=0.2.34-1 - [Curr] ver=0.2.35-1 - depends=AND list is: -cygwin | -end of OR list, -libaudiofile0 | -end of OR list, -[libexif] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=0.6.9-1 - depends=AND list is: -cygwin | -end of OR list, -[libfontconfig-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=2.2.0-2 - [Curr] ver=2.2.2-1 - depends=AND list is: -cygwin | -end of OR list, -libfontconfig1 | -end of OR list, -libfreetype2-devel | -end of OR list, -expat | -end of OR list, -zlib | -end of OR list, -[libfontconfig1] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=2.2.0-2 - [Curr] ver=2.2.2-1 - depends=AND list is: -cygwin | -end of OR list, -freetype2 | -end of OR list, -expat | -end of OR list, -zlib | -end of OR list, -[libfpx] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=1.2.0.9-1 - depends=AND list is: -cygwin | -end of OR list, -[libfreetype2-devel] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Libs - [Curr] ver=2.1.5-1 - depends=AND list is: -cygwin | -end of OR list, -libfreetype26 | -end of OR list, -[libfreetype26] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.1.5-1 - depends=AND list is: -cygwin | -end of OR list, -[libgcrypt] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=1.2.0-2 - depends=AND list is: -cygwin | -end of OR list, -libgpg-error | -end of OR list, -_update-info-dir | -end of OR list, -[libgd-devel] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=2.0.21-1 - [Curr] ver=2.0.28-1 - depends=AND list is: -cygwin | -end of OR list, -libgd2 | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libjpeg62 | -end of OR list, -libpng12 | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -[libgd2] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=2.0.21-1 - [Curr] ver=2.0.28-1 - depends=AND list is: -cygwin | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libjpeg62 | -end of OR list, -libpng12 | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -[libgdbm] action=1.8.0-5 trust=curr installed=none src?=no - categories=All, Base - [Curr] ver=1.8.0-5 - depends=AND list is: -cygwin | -end of OR list, -[libgdbm-devel] action=1.8.3-7 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=1.8.3-3 - [Curr] ver=1.8.3-7 - depends=AND list is: -cygwin | -end of OR list, -libgdbm3 | -end of OR list, -libgdbm4 | -end of OR list, -texinfo | -end of OR list, -_update-info-dir | -end of OR list, -[libgdbm3] action=1.8.3-3 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=1.8.3-1 - [Curr] ver=1.8.3-3 - depends=AND list is: -cygwin | -end of OR list, -[libgdbm4] action=1.8.3-7 trust=curr installed=none src?=no - categories=All, Base - [Curr] ver=1.8.3-7 - depends=AND list is: -cygwin | -end of OR list, -[libgeotiff] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=1.2.2-1 - depends=AND list is: -cygwin | -end of OR list, -libgeotiff1 | -end of OR list, -[libgeotiff-devel] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=1.2.2-1 - depends=AND list is: -cygwin | -end of OR list, -libgeotiff1 | -end of OR list, -libtiff-devel | -end of OR list, -jpeg | -end of OR list, -zlib | -end of OR list, -libproj-devel | -end of OR list, -[libgeotiff1] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=1.2.2-1 - depends=AND list is: -cygwin | -end of OR list, -libproj0 | -end of OR list, -libtiff5 | -end of OR list, -libjpeg62 | -end of OR list, -zlib | -end of OR list, -[libgettextpo0] action=0.14.1-1 trust=curr installed=none src?=no - categories=All, Libs - [Prev] ver=0.12.1-3 - [Curr] ver=0.14.1-1 - depends=AND list is: -cygwin | -end of OR list, -libintl3 | -end of OR list, -libiconv2 | -end of OR list, -[libglade2] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Libs - [Curr] ver=2.4.0-1 - depends=AND list is: -cygwin | -end of OR list, -atk-runtime | -end of OR list, -expat | -end of OR list, -glib2-runtime | -end of OR list, -gtk2-x11-runtime | -end of OR list, -libfontconfig1 | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libxml2 | -end of OR list, -pango-runtime | -end of OR list, -xorg-x11-base | -end of OR list, -zlib | -end of OR list, -[libgnome2] action=Skip trust=prev installed=none src?=no - categories=All, Gnome - [Curr] ver=2.8.0-1 - depends=AND list is: -cygwin | -end of OR list, -GConf2 | -end of OR list, -ORBit2 | -end of OR list, -glib2-runtime | -end of OR list, -gnome-vfs2 | -end of OR list, -libaudiofile0 | -end of OR list, -libbonobo2 | -end of OR list, -libesound0 | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libpopt0 | -end of OR list, -libxml2 | -end of OR list, -openssl | -end of OR list, -zlib | -end of OR list, -[libgnomecanvas2] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Libs - [Curr] ver=2.8.0-1 - depends=AND list is: -cygwin | -end of OR list, -atk-runtime | -end of OR list, -glib2-runtime | -end of OR list, -gtk2-x11-runtime | -end of OR list, -libart_lgpl | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -pango-runtime | -end of OR list, -xorg-x11-base | -end of OR list, -zlib | -end of OR list, -[libgnomeprint22] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=2.8.0-1 - [Curr] ver=2.8.0.1-1 - depends=AND list is: -cygwin | -end of OR list, -expat | -end of OR list, -glib2-runtime | -end of OR list, -libart_lgpl | -end of OR list, -libfontconfig1 | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libxml2 | -end of OR list, -pango-runtime | -end of OR list, -zlib | -end of OR list, -[libgnomeprintui22] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.8.0-1 - depends=AND list is: -cygwin | -end of OR list, -atk-runtime | -end of OR list, -expat | -end of OR list, -glib2-runtime | -end of OR list, -gtk2-x11-runtime | -end of OR list, -libXft2 | -end of OR list, -libart_lgpl | -end of OR list, -libfontconfig1 | -end of OR list, -libfreetype26 | -end of OR list, -libgnomecanvas2 | -end of OR list, -libgnomeprint22 | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libxml2 | -end of OR list, -pango-runtime | -end of OR list, -xorg-x11-base | -end of OR list, -zlib | -end of OR list, -[libgnomeui2] action=Skip trust=prev installed=none src?=no - categories=All, Gnome - [Curr] ver=2.8.0-1 - depends=AND list is: -cygwin | -end of OR list, -GConf2 | -end of OR list, -ORBit2 | -end of OR list, -atk-runtime | -end of OR list, -glib2-runtime | -end of OR list, -gnome-keyring | -end of OR list, -gnome-vfs2 | -end of OR list, -gtk2-x11-runtime | -end of OR list, -libart_lgpl | -end of OR list, -libaudiofile0 | -end of OR list, -libbonobo2 | -end of OR list, -libbonoboui2 | -end of OR list, -libesound0 | -end of OR list, -libglade2 | -end of OR list, -libgnome2 | -end of OR list, -libgnomecanvas2 | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libjpeg62 | -end of OR list, -libpopt0 | -end of OR list, -libxml2 | -end of OR list, -minires | -end of OR list, -openssl | -end of OR list, -pango-runtime | -end of OR list, -xorg-x11-base | -end of OR list, -zlib | -end of OR list, -[libgpg-error] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=1.0-2 - depends=AND list is: -cygwin | -end of OR list, -libintl3 | -end of OR list, -[libGraphicsMagick-devel] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Libs - [Curr] ver=1.0.6-1 - depends=AND list is: -bzip2 | -end of OR list, -cygwin | -end of OR list, -freetype2 | -end of OR list, -jbigkit | -end of OR list, -jpeg | -end of OR list, -libbz2_1 | -end of OR list, -libfreetype26 | -end of OR list, -libiconv | -end of OR list, -libiconv2 | -end of OR list, -libjpeg62 | -end of OR list, -libpng12 | -end of OR list, -libpng12-devel | -end of OR list, -libtiff4 | -end of OR list, -libtiff-devel | -end of OR list, -libxml2 | -end of OR list, -xorg-x11-devel | -end of OR list, -zlib | -end of OR list, -libGraphicsMagick0 | -end of OR list, -[libGraphicsMagick0] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=1.0.6-1 - depends=AND list is: -cygwin | -end of OR list, -jbigkit | -end of OR list, -libbz2_1 | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libjpeg62 | -end of OR list, -libpng12 | -end of OR list, -libtiff4 | -end of OR list, -libxml2 | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -[libguile12] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=1.6.4-12 - [Curr] ver=1.6.5-1 - depends=AND list is: -cygwin | -end of OR list, -libltdl3 | -end of OR list, -[libguile12abi13] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=1.6.4-3 - depends=AND list is: -cygwin | -end of OR list, -libltdl3 | -end of OR list, -[libguile16] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=1.7.1.20041006-1 - depends=AND list is: -cygwin | -end of OR list, -gmp | -end of OR list, -libltdl3 | -end of OR list, -[libiconv] action=1.9.2-1 trust=curr installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=1.9.1-3 - [Curr] ver=1.9.2-1 - depends=AND list is: -cygwin | -end of OR list, -libintl3 | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -libcharset1 | -end of OR list, -[libiconv2] action=1.9.2-1 trust=curr installed=none src?=no - categories=All, Libs - [Prev] ver=1.9.1-3 - [Curr] ver=1.9.2-1 - depends=AND list is: -cygwin | -end of OR list, -libintl3 | -end of OR list, -libintl2 | -end of OR list, -[libIDL] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=0.8.3-1 - [Curr] ver=0.8.3-2 - depends=AND list is: -cygwin | -end of OR list, -glib2 | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -[libintl] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=0.10.38-3 - depends=AND list is: -cygwin | -end of OR list, -[libintl1] action=0.10.40-1 trust=curr installed=none src?=no - categories=All, Libs - [Curr] ver=0.10.40-1 - depends=AND list is: -cygwin | -end of OR list, -[libintl2] action=0.12.1-3 trust=curr installed=none src?=no - categories=All, Libs - [Curr] ver=0.12.1-3 - depends=AND list is: -cygwin | -end of OR list, -libiconv2 | -end of OR list, -[libintl3] action=0.14.1-1 trust=curr installed=none src?=no - categories=All, Libs - [Curr] ver=0.14.1-1 - depends=AND list is: -cygwin | -end of OR list, -libiconv2 | -end of OR list, -[libjpeg62] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=6b-11 - depends=AND list is: -cygwin | -end of OR list, -[libjpeg6b] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=6b-8 - depends=AND list is: -cygwin | -end of OR list, -[libkpathsea3] action=Skip trust=test installed=none src?=no - categories=All, Libs, Publishing, Text - [Prev] ver=2.0.2-14 - [Curr] ver=2.0.2-15 - depends=AND list is: -cygwin | -end of OR list, -[libltdl3] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Curr] ver=1.5.10-1 - depends=AND list is: -cygwin | -end of OR list, - [Prev] ver=1.5.6-3 -[libltdl6] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Test] ver=1.9f_20041024-1 -[libMagick-devel] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Libs - [Curr] ver=6.0.4-1 - depends=AND list is: -bzip2 | -end of OR list, -cygwin | -end of OR list, -freetype2 | -end of OR list, -jasper | -end of OR list, -jbigkit | -end of OR list, -jpeg | -end of OR list, -lcms | -end of OR list, -libbz2_1 | -end of OR list, -libfpx | -end of OR list, -libfreetype26 | -end of OR list, -libiconv | -end of OR list, -libiconv2 | -end of OR list, -libjpeg62 | -end of OR list, -libpng12 | -end of OR list, -libpng12-devel | -end of OR list, -libtiff4 | -end of OR list, -libtiff-devel | -end of OR list, -libxml2 | -end of OR list, -xorg-x11-devel | -end of OR list, -zlib | -end of OR list, -libMagick6 | -end of OR list, -[libMagick6] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=6.0.4-1 - depends=AND list is: -cygwin | -end of OR list, -jasper | -end of OR list, -jbigkit | -end of OR list, -lcms | -end of OR list, -libbz2_1 | -end of OR list, -libfpx | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libjpeg62 | -end of OR list, -libpng12 | -end of OR list, -libtiff4 | -end of OR list, -libxml2 | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -[libmcrypt] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.5.7-2 - depends=AND list is: -cygwin | -end of OR list, -[libmcrypt-devel] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.5.7-2 - depends=AND list is: -cygwin | -end of OR list, -libmcrypt | -end of OR list, -[libmng] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=1.0.6-1 - [Curr] ver=1.0.8-1 - depends=AND list is: -cygwin | -end of OR list, -libjpeg62 | -end of OR list, -zlib | -end of OR list, -lcms | -end of OR list, -[libncurses-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=5.3-4 - [Curr] ver=5.4-1 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -libncurses8 | -end of OR list, -terminfo | -end of OR list, -[libncurses5] action=5.2-1 trust=curr installed=none src?=no - categories=All, Base, Libs - [Curr] ver=5.2-1 - depends=AND list is: -cygwin | -end of OR list, -terminfo | -end of OR list, -[libncurses6] action=5.2-8 trust=curr installed=none src?=no - categories=All, Base, Libs - [Curr] ver=5.2-8 - depends=AND list is: -cygwin | -end of OR list, -terminfo | -end of OR list, -[libncurses7] action=5.3-4 trust=curr installed=none src?=no - categories=All, Base, Libs - [Prev] ver=5.3-1 - [Curr] ver=5.3-4 - depends=AND list is: -cygwin | -end of OR list, -terminfo | -end of OR list, -[libncurses8] action=5.4-1 trust=curr installed=none src?=no - categories=All, Base, Libs - [Curr] ver=5.4-1 - depends=AND list is: -cygwin | -end of OR list, -terminfo | -end of OR list, -[libneon24] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=0.24.6-1 - [Curr] ver=0.24.7-1 - depends=AND list is: -cygwin | -end of OR list, -libxml2 | -end of OR list, -zlib | -end of OR list, -openssl | -end of OR list, -[libopenldap2] action=Skip trust=prev installed=none src?=no - categories=All, Libs, Net - [Curr] ver=2.1.25-1 - depends=AND list is: -cygwin | -end of OR list, -minires | -end of OR list, -openssl | -end of OR list, -[libopenldap2_2_7] action=Skip trust=test installed=none src?=no - categories=All, Libs, Net - [Prev] ver=2.2.17-1 - [Curr] ver=2.2.17-2 - depends=AND list is: -cygwin | -end of OR list, -libsasl2 | -end of OR list, -minires | -end of OR list, -openssl | -end of OR list, -[libpcre] action=4.1-1 trust=curr installed=none src?=no - categories=All, Libs - [Curr] ver=4.1-1 - depends=AND list is: -cygwin | -end of OR list, -[libpcre0] action=4.5-1 trust=curr installed=none src?=no - categories=All, Libs - [Prev] ver=4.4-2 - [Curr] ver=4.5-1 - depends=AND list is: -cygwin | -end of OR list, -[libpng] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=1.2.5-1 - [Curr] ver=1.2.5-4 - depends=AND list is: -cygwin | -end of OR list, -zlib | -end of OR list, -libpng12 | -end of OR list, -[libpng10] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=1.0.15-1 - [Curr] ver=1.0.15-4 - depends=AND list is: -cygwin | -end of OR list, -zlib | -end of OR list, -[libpng10-devel] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=1.0.15-1 - [Curr] ver=1.0.15-4 - depends=AND list is: -cygwin | -end of OR list, -zlib | -end of OR list, -libpng10 | -end of OR list, -[libpng12] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=1.2.5-1 - [Curr] ver=1.2.5-4 - depends=AND list is: -cygwin | -end of OR list, -zlib | -end of OR list, -[libpng12-devel] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=1.2.5-1 - [Curr] ver=1.2.5-4 - depends=AND list is: -cygwin | -end of OR list, -zlib | -end of OR list, -libpng12 | -end of OR list, -[libpng2] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=1.0.12-1 - depends=AND list is: -cygwin | -end of OR list, -zlib | -end of OR list, -[libpopt0] action=1.6.4-4 trust=curr installed=none src?=no - categories=All, Libs - [Curr] ver=1.6.4-4 - depends=AND list is: -cygwin | -end of OR list, -[libproj-devel] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=4.4.8-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libproj0 | -end of OR list, -[libproj0] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=4.4.8-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -[libreadline4] action=4.1-2 trust=curr installed=none src?=no - categories=All, Base - [Curr] ver=4.1-2 - depends=AND list is: -cygwin | -end of OR list, -libncurses5 | -end of OR list, -[libreadline5] action=4.3-5 trust=curr installed=none src?=no - categories=All, Base - [Curr] ver=4.3-5 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -[libreadline6] action=5.0-1 trust=curr installed=none src?=no - categories=All, Base - [Curr] ver=5.0-1 - depends=AND list is: -cygwin | -end of OR list, -libncurses8 | -end of OR list, -[libsasl2] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.1.19-3 - depends=AND list is: -libsasl2 | -end of OR list, -libdb4.2 | -end of OR list, -openssl | -end of OR list, -cygwin | -end of OR list, -[libsasl2-devel] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.1.19-3 - depends=AND list is: -libdb4.2 | -end of OR list, -openssl | -end of OR list, -cygwin | -end of OR list, -[libsmi] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Libs - [Curr] ver=0.4.2-1 - depends=AND list is: -cygwin | -end of OR list, -[libtiff-devel] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=3.6.0-5 - [Curr] ver=3.7.0beta2-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libtiff5 | -end of OR list, -libtiff4 | -end of OR list, -libjpeg62 | -end of OR list, -zlib | -end of OR list, -[libtiff3] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=3.6.0-2 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libjpeg6b | -end of OR list, -zlib | -end of OR list, -[libtiff4] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=3.6.0-5 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libjpeg62 | -end of OR list, -zlib | -end of OR list, -[libtiff5] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=3.7.0beta2-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libjpeg62 | -end of OR list, -zlib | -end of OR list, -[libtool] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.5a-1 - [Curr] ver=1.5b-1 - depends=AND list is: -ash | -end of OR list, -libtool-devel | -end of OR list, -libtool-stable | -end of OR list, -[libtool-devel] action=Skip trust=unknown installed=none src?=no - categories=All, Devel - [Curr] ver=1.5.10-1 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -automake | -end of OR list, -autoconf | -end of OR list, -libtool | -end of OR list, -texinfo | -end of OR list, -libltdl3 | -end of OR list, -libltdl6 | -end of OR list, -file | -end of OR list, -binutils | -end of OR list, -_update-info-dir | -end of OR list, - [Prev] ver=1.5.6-3 - [Test] ver=1.9f_20041024-1 -[libtool-stable] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.4.3-1 - [Curr] ver=1.4.3-2 - depends=AND list is: -cygwin | -end of OR list, -automake | -end of OR list, -autoconf | -end of OR list, -libtool | -end of OR list, -ash | -end of OR list, -[libungif] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=4.1.0-3 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-bin | -end of OR list, - [Test] ver=4.1.2-1 -[libwmf] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=0.2.8.3-1 - depends=AND list is: -cygwin | -end of OR list, -expat | -end of OR list, -libfreetype26 | -end of OR list, -libjpeg62 | -end of OR list, -libpng12 | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -[libwnck] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=2.8.0-1 - [Curr] ver=2.8.1-1 - depends=AND list is: -cygwin | -end of OR list, -atk-runtime | -end of OR list, -glib2-runtime | -end of OR list, -gtk2-x11-runtime | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -pango-runtime | -end of OR list, -startup-notification | -end of OR list, -xorg-x11-base | -end of OR list, -zlib | -end of OR list, -[libxerces-c21] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.1.0-1 - depends=AND list is: -cygwin | -end of OR list, -[libxerces-c22] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.2.0-1 - depends=AND list is: -cygwin | -end of OR list, -[libxerces-c23] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.3.0-4 - depends=AND list is: -cygwin | -end of OR list, -[libxerces-c24] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.4.0-4 - depends=AND list is: -cygwin | -end of OR list, -[libxerces-c25] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.5.0-1 - depends=AND list is: -cygwin | -end of OR list, -[libXft] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.1.6-1 - depends=AND list is: -cygwin | -end of OR list, -libXft2 | -end of OR list, -freetype2 | -end of OR list, -fontconfig | -end of OR list, -expat | -end of OR list, -zlib | -end of OR list, -xorg-x11-bin | -end of OR list, -[libXft-devel] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Libs - [Curr] ver=2.1.6-1 - depends=AND list is: -cygwin | -end of OR list, -libXft2 | -end of OR list, -libfreetype2-devel | -end of OR list, -libfontconfig-devel | -end of OR list, -expat | -end of OR list, -zlib | -end of OR list, -xorg-x11-devel | -end of OR list, -[libXft1] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=1.0.0-1 - depends=AND list is: -cygwin | -end of OR list, -freetype2 | -end of OR list, -fontconfig | -end of OR list, -expat | -end of OR list, -zlib | -end of OR list, -xorg-x11-bin | -end of OR list, -[libXft2] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=2.1.6-1 - depends=AND list is: -cygwin | -end of OR list, -freetype2 | -end of OR list, -fontconfig | -end of OR list, -expat | -end of OR list, -zlib | -end of OR list, -xorg-x11-bin | -end of OR list, -[libxml2] action=Skip trust=test installed=none src?=no - categories=All, Devel, Doc, Gnome, Interpreters, Libs, Text - [Prev] ver=2.6.11-1 - [Curr] ver=2.6.16-1 - depends=AND list is: -cygwin | -end of OR list, -libiconv2 | -end of OR list, -libncurses8 | -end of OR list, -libreadline6 | -end of OR list, -zlib | -end of OR list, -[libxml2-devel] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Gnome - [Curr] ver=2.6.16-1 - depends=AND list is: -libxml2 | -end of OR list, -[libxml2-doc] action=Skip trust=prev installed=none src?=no - categories=All, Doc, Gnome - [Curr] ver=2.6.16-1 -[libxml2-python] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Doc, Gnome, Interpreters, Libs, Text - [Curr] ver=2.6.16-1 - depends=AND list is: -libxml2 | -end of OR list, -python | -end of OR list, -[libxslt] action=Skip trust=test installed=none src?=no - categories=All, Devel, Doc, Interpreters, Libs, Text - [Curr] ver=1.1.10-1 - depends=AND list is: -cygwin | -end of OR list, -libxml2 | -end of OR list, -libiconv2 | -end of OR list, -zlib | -end of OR list, - [Prev] ver=1.1.8-1 -[lighttpd] action=Skip trust=prev installed=none src?=no - categories=All, Net, Web - [Curr] ver=1.3.0-1 - depends=AND list is: -cygwin | -end of OR list, -zlib | -end of OR list, -openssl | -end of OR list, -openldap | -end of OR list, -libbz2_1 | -end of OR list, -libpcre0 | -end of OR list, -crypt | -end of OR list, -[lilypond] action=Skip trust=test installed=none src?=no - categories=All, Publishing - [Prev] ver=2.2.2-1 - [Curr] ver=2.2.5-1 - depends=AND list is: -bash | -end of OR list, -cygwin | -end of OR list, -fileutils | -end of OR list, -findutils | -end of OR list, -ghostscript | -end of OR list, -libguile12abi13 | -end of OR list, -libguile12 | -end of OR list, -libiconv2 | -end of OR list, -libintl2 | -end of OR list, -libkpathsea3 | -end of OR list, -libkpathsea3abi13 | -end of OR list, -python | -end of OR list, -tetex-bin | -end of OR list, -tetex-tiny | -end of OR list, -[lilypond-doc] action=Skip trust=test installed=none src?=no - categories=All, Doc - [Prev] ver=2.2.2-1 - [Curr] ver=2.2.5-1 -[links] action=Skip trust=prev installed=none src?=no - categories=All, Web - [Curr] ver=0.99pre14-1 - depends=AND list is: -cygwin | -end of OR list, -openssl | -end of OR list, -[login] action=1.9-7 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=1.9-5 - [Curr] ver=1.9-7 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -bash | -end of OR list, -[lynx] action=Skip trust=test installed=none src?=no - categories=All, Web - [Prev] ver=2.8.4-7 - [Curr] ver=2.8.4-8 - depends=AND list is: -cygwin | -end of OR list, -terminfo | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -libncurses7 | -end of OR list, -openssl | -end of OR list, -[m4] action=Skip trust=test installed=none src?=no - categories=All, Interpreters - [Prev] ver=1.4-1 - [Curr] ver=1.4.2-1 - depends=AND list is: -cygwin | -end of OR list, -_update-info-dir | -end of OR list, -[make] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=3.79.1-7 - [Curr] ver=3.80-1 - depends=AND list is: -cygwin | -end of OR list, -fileutils | -end of OR list, -ash | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -[man] action=1.5o-1 trust=curr installed=none src?=no - categories=All, Base, Doc, System - [Prev] ver=1.5k-3 - [Curr] ver=1.5o-1 - depends=AND list is: -ash | -end of OR list, -bash | -end of OR list, -cygwin | -end of OR list, -bzip2 | -end of OR list, -fileutils | -end of OR list, -gawk | -end of OR list, -groff | -end of OR list, -gzip | -end of OR list, -less | -end of OR list, -libiconv | -end of OR list, -mktemp | -end of OR list, -[mathomatic] action=Skip trust=prev installed=none src?=no - categories=All, Math - [Curr] ver=11.5-1 - depends=AND list is: -libreadline5 | -end of OR list, -libncurses7 | -end of OR list, -cygwin | -end of OR list, -[mc] action=Skip trust=prev installed=none src?=no - categories=All, Editors, Shells, Utils - [Curr] ver=4.6.0-4 - depends=AND list is: -libncurses7 | -end of OR list, -cygwin | -end of OR list, - [Test] ver=4.6.0a-20030721-1 -[mhash] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=0.9.1-1 - depends=AND list is: -cygwin | -end of OR list, -[mhash-devel] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=0.9.1-1 -[mingw-bzip2] action=Skip trust=prev installed=none src?=no - categories=All, Mingw - [Curr] ver=1.0.2-6 - depends=AND list is: -mingw-libbz2_1 | -end of OR list, -[mingw-libbz2_1] action=Skip trust=prev installed=none src?=no - categories=All, Mingw - [Curr] ver=1.0.2-6 -[mingw-runtime] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=3.3-1 - [Curr] ver=3.5-1 - depends=AND list is: -w32api | -end of OR list, -[mingw-zlib] action=Skip trust=test installed=none src?=no - categories=All, Mingw - [Prev] ver=1.2.1-2 - [Curr] ver=1.2.2-1 -[minires] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=0.97-1 - [Curr] ver=1.00-1 - depends=AND list is: -cygwin | -end of OR list, -[minires-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=0.97-1 - [Curr] ver=1.00-1 - depends=AND list is: -cygwin | -end of OR list, -minires | -end of OR list, -[mktemp] action=1.5-3 trust=curr installed=none src?=no - categories=All, Devel - [Prev] ver=1.4-1 - [Curr] ver=1.5-3 - depends=AND list is: -cygwin | -end of OR list, -[more] action=Skip trust=prev installed=none src?=no - categories=All, Text - [Curr] ver=2.11o-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libintl1 | -end of OR list, -libpcre0 | -end of OR list, -termcap | -end of OR list, -[mt] action=Skip trust=test installed=none src?=no - categories=All, Utils - [Prev] ver=2.1-1 - [Curr] ver=2.3-1 - depends=AND list is: -cygwin | -end of OR list, -[mutt] action=Skip trust=test installed=none src?=no - categories=All, Mail - [Prev] ver=1.4.1-1 - [Curr] ver=1.4.1-2 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -openssl | -end of OR list, -ssmtp | -end of OR list, -[naim] action=Skip trust=test installed=none src?=no - categories=All, Net, Web - [Prev] ver=0.11.6.7-1 - [Curr] ver=0.11.7.2-1 - depends=AND list is: -libncurses7 | -end of OR list, -cygwin | -end of OR list, -[nano] action=Skip trust=test installed=none src?=no - categories=All, Editors - [Prev] ver=1.2.0-1 - [Curr] ver=1.2.2-1 - depends=AND list is: -cygwin | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -libncurses7 | -end of OR list, -[nasm] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=0.98.36-1 - [Curr] ver=0.98.38-1 - depends=AND list is: -cygwin | -end of OR list, -[ncftp] action=Skip trust=test installed=none src?=no - categories=All, Net - [Prev] ver=3.1.4-1 - [Curr] ver=3.1.7-1 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -terminfo | -end of OR list, -less | -end of OR list, -ash | -end of OR list, -fileutils | -end of OR list, -[ncurses] action=5.4-1 trust=curr installed=none src?=no - categories=All, Base, Libs - [Prev] ver=5.3-4 - [Curr] ver=5.4-1 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -libncurses8 | -end of OR list, -terminfo | -end of OR list, -[ncurses-demo] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=5.3-4 - [Curr] ver=5.4-1 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -libncurses8 | -end of OR list, -terminfo | -end of OR list, -[nedit] action=Skip trust=test installed=none src?=no - categories=All, Editors, X11 - [Prev] ver=5.4-1 - [Curr] ver=5.5-1 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-bin | -end of OR list, -lesstif | -end of OR list, -[neon] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=0.24.6-1 - [Curr] ver=0.24.7-1 - depends=AND list is: -cygwin | -end of OR list, -libneon24 | -end of OR list, -openssl-devel | -end of OR list, -libxml2 | -end of OR list, -zlib | -end of OR list, -libiconv | -end of OR list, -[netcat] action=Skip trust=test installed=none src?=no - categories=All, Net - [Prev] ver=1.10-1 - [Curr] ver=1.10-2 - depends=AND list is: -cygwin | -end of OR list, -[nfs-server] action=Skip trust=prev installed=none src?=no - categories=All, Net - [Test] ver=2.2.47-2 -[ocaml] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Interpreters - [Curr] ver=3.08.1-1 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -gcc | -end of OR list, -libncurses-devel | -end of OR list, -[openbox] action=Skip trust=prev installed=none src?=no - categories=All, X11 - [Curr] ver=0.99.1-4 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-base | -end of OR list, -xorg-x11-bin | -end of OR list, -xorg-x11-xwin | -end of OR list, -[opengl] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=1.1.0-6 - [Curr] ver=1.1.0-7 - depends=AND list is: -w32api | -end of OR list, -[openjade] action=Skip trust=prev installed=none src?=no - categories=All, Libs, Text - [Curr] ver=1.3.3-1 - depends=AND list is: -cygwin | -end of OR list, -OpenSP | -end of OR list, -[openldap] action=Skip trust=test installed=none src?=no - categories=All, Libs, Net - [Prev] ver=2.2.17-1 - [Curr] ver=2.2.17-2 - depends=AND list is: -cygwin | -end of OR list, -crypt | -end of OR list, -libdb4.2 | -end of OR list, -libopenldap2_2_7 | -end of OR list, -libsasl2 | -end of OR list, -minires | -end of OR list, -openssl | -end of OR list, -[openldap-devel] action=Skip trust=test installed=none src?=no - categories=All, Libs, Net - [Prev] ver=2.2.17-1 - [Curr] ver=2.2.17-2 - depends=AND list is: -cygwin | -end of OR list, -libopenldap2_2_7 | -end of OR list, -libsasl2 | -end of OR list, -libsasl2-devel | -end of OR list, -minires | -end of OR list, -openssl | -end of OR list, -[OpenSP] action=Skip trust=prev installed=none src?=no - categories=All, Libs, Text - [Curr] ver=1.5.1-1 - depends=AND list is: -cygwin | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -[openssh] action=Skip trust=test installed=none src?=no - categories=All, Net - [Prev] ver=3.9p1-1 - [Curr] ver=3.9p1-2 - depends=AND list is: -bash | -end of OR list, -cygwin | -end of OR list, -editrights | -end of OR list, -fileutils | -end of OR list, -gawk | -end of OR list, -grep | -end of OR list, -minires | -end of OR list, -openssl | -end of OR list, -sh-utils | -end of OR list, -textutils | -end of OR list, -zlib | -end of OR list, -crypt | -end of OR list, -cygrunsrv | -end of OR list, -[openssl] action=Skip trust=test installed=none src?=no - categories=All, Libs, Net - [Prev] ver=0.9.7d-1 - [Curr] ver=0.9.7d-2 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -[openssl-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=0.9.7d-1 - [Curr] ver=0.9.7d-2 - depends=AND list is: -cygwin | -end of OR list, -[ORBit2] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=2.10.3-1 - [Curr] ver=2.12.0-1 - depends=AND list is: -cygwin | -end of OR list, -glib2-runtime | -end of OR list, -libIDL | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libpopt0 | -end of OR list, -minires | -end of OR list, -[ORBit2-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=2.10.3-1 - [Curr] ver=2.12.0-1 - depends=AND list is: -cygwin | -end of OR list, -glib2-devel | -end of OR list, -libIDL | -end of OR list, -libiconv | -end of OR list, -gettext | -end of OR list, -popt | -end of OR list, -ORBit2 | -end of OR list, -[pango] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs, Text - [Prev] ver=1.4.1-1 - [Curr] ver=1.6.0-1 - depends=AND list is: -pango-runtime | -end of OR list, -[pango-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs, Text - [Prev] ver=1.4.1-1 - [Curr] ver=1.6.0-1 - depends=AND list is: -pango-runtime | -end of OR list, -[pango-doc] action=Skip trust=test installed=none src?=no - categories=All, Devel, Doc, Libs, Text - [Prev] ver=1.4.1-1 - [Curr] ver=1.6.0-1 -[pango-runtime] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs, Text - [Prev] ver=1.4.1-1 - [Curr] ver=1.6.0-1 - depends=AND list is: -cygwin | -end of OR list, -expat | -end of OR list, -glib2 | -end of OR list, -libXft2 | -end of OR list, -libfontconfig1 | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libintl2 | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -zlib | -end of OR list, -pango | -end of OR list, -[par] action=Skip trust=prev installed=none src?=no - categories=All, Text - [Curr] ver=1.52-1 - depends=AND list is: -cygwin | -end of OR list, -[patch] action=Skip trust=test installed=none src?=no - categories=All, Utils - [Prev] ver=2.5.8-3 - [Curr] ver=2.5.8-8 - depends=AND list is: -cygwin | -end of OR list, -[patchutils] action=Skip trust=test installed=none src?=no - categories=All, Devel, Text, Utils - [Prev] ver=0.2.30-1 - [Curr] ver=0.2.30pre1-1 - depends=AND list is: -cygwin | -end of OR list, -diffutils | -end of OR list, -patch | -end of OR list, -[pcre] action=Skip trust=test installed=none src?=no - categories=All, Devel, Utils - [Prev] ver=4.4-2 - [Curr] ver=4.5-1 - depends=AND list is: -cygwin | -end of OR list, -pcre-doc | -end of OR list, -libpcre0 | -end of OR list, -libpcre | -end of OR list, -[pcre-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=4.4-2 - [Curr] ver=4.5-1 - depends=AND list is: -cygwin | -end of OR list, -pcre-doc | -end of OR list, -libpcre0 | -end of OR list, -[pcre-doc] action=Skip trust=test installed=none src?=no - categories=All, Doc - [Prev] ver=4.4-2 - [Curr] ver=4.5-1 -[pdksh] action=Skip trust=test installed=none src?=no - categories=All, Shells - [Prev] ver=5.2.14-2 - [Curr] ver=5.2.14-3 - depends=AND list is: -cygwin | -end of OR list, -[perl] action=Skip trust=test installed=none src?=no - categories=All, Interpreters - [Prev] ver=5.8.2-1 - [Curr] ver=5.8.5-3 - depends=AND list is: -cygwin | -end of OR list, -libgdbm3 | -end of OR list, -libdb4.2 | -end of OR list, -crypt | -end of OR list, -expat | -end of OR list, -[perl-libwin32] action=Skip trust=prev installed=none src?=no - categories=All, Interpreters, Libs, System - [Curr] ver=0.191-1 - depends=AND list is: -perl | -end of OR list, -cygwin | -end of OR list, -[perl_manpages] action=Skip trust=prev installed=none src?=no - categories=All, Doc - [Curr] ver=5.8.5-3 -[pine] action=Skip trust=test installed=none src?=no - categories=All, Mail - [Prev] ver=4.55-1 - [Curr] ver=4.58-1 - depends=AND list is: -crypt | -end of OR list, -openssl | -end of OR list, -cygwin | -end of OR list, -[pinfo] action=Skip trust=test installed=none src?=no - categories=All, Doc - [Prev] ver=0.6.6p1-1 - [Curr] ver=0.6.8-1 - depends=AND list is: -cygwin | -end of OR list, -libiconv2 | -end of OR list, -libintl2 | -end of OR list, -libncurses7 | -end of OR list, -man | -end of OR list, -texinfo | -end of OR list, -[pkgconfig] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=0.15.0-1 - [Curr] ver=0.15.0-4 - depends=AND list is: -cygwin | -end of OR list, -[popt] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=1.6.4-1 - [Curr] ver=1.6.4-4 - depends=AND list is: -cygwin | -end of OR list, -libpopt0 | -end of OR list, -[postgresql] action=Skip trust=unknown installed=none src?=no - categories=All, Database - [Prev] ver=7.4.3-1 - [Curr] ver=7.4.5-1 - depends=AND list is: -ash | -end of OR list, -crypt | -end of OR list, -cygrunsrv | -end of OR list, -cygwin | -end of OR list, -libncurses7 | -end of OR list, -libreadline5 | -end of OR list, -libintl3 | -end of OR list, -openssl | -end of OR list, -zlib | -end of OR list, - [Test] ver=8.0.0cvs-1 -[pr3270] action=Skip trust=prev installed=none src?=no - categories=All, Net - [Curr] ver=3.2.20-1 - depends=AND list is: -cygwin | -end of OR list, -suite3270 | -end of OR list, -[procmail] action=Skip trust=test installed=none src?=no - categories=All, Mail - [Curr] ver=3.22-10 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, - [Prev] ver=3.22-9 -[procps] action=Skip trust=test installed=none src?=no - categories=All, System - [Prev] ver=010801-1 - [Curr] ver=010801-2 - depends=AND list is: -cygwin | -end of OR list, -libncurses6 | -end of OR list, -[proftpd] action=Skip trust=test installed=none src?=no - categories=All, Net - [Curr] ver=1.2.10-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libncurses7 | -end of OR list, - [Prev] ver=1.2.9-1 -[proj] action=Skip trust=prev installed=none src?=no - categories=All, Graphics, Libs - [Curr] ver=4.4.8-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libproj0 | -end of OR list, -[psutils] action=Skip trust=prev installed=none src?=no - categories=All, Publishing - [Curr] ver=1.17-1 - depends=AND list is: -perl | -end of OR list, -[python] action=Skip trust=test installed=none src?=no - categories=All, Interpreters - [Prev] ver=2.3.3-2 - [Curr] ver=2.3.4-2 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -expat | -end of OR list, -libdb4.2 | -end of OR list, -libgdbm3 | -end of OR list, -libncurses7 | -end of OR list, -libreadline5 | -end of OR list, -openssl | -end of OR list, -tcltk | -end of OR list, -terminfo | -end of OR list, -zlib | -end of OR list, -[rcs] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=5.7-2 - [Curr] ver=5.7-3 - depends=AND list is: -cygwin | -end of OR list, -[readline] action=5.0-1 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=4.3-5 - [Curr] ver=5.0-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libncurses8 | -end of OR list, -libncurses7 | -end of OR list, -libreadline6 | -end of OR list, -libreadline5 | -end of OR list, -terminfo | -end of OR list, -_update-info-dir | -end of OR list, -[rebase] action=Skip trust=test installed=none src?=no - categories=All, System, Utils - [Prev] ver=2.2-3 - [Curr] ver=2.3-1 - depends=AND list is: -bash | -end of OR list, -cygwin | -end of OR list, -fileutils | -end of OR list, -grep | -end of OR list, -gzip | -end of OR list, -sed | -end of OR list, -[regex] action=Skip trust=curr installed=none src?=no - categories=All, Libs - [Prev] ver=4.4-3 -[robots] action=Skip trust=test installed=none src?=no - categories=All, Games - [Prev] ver=2.0-3 - [Curr] ver=2.0-4 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -terminfo | -end of OR list, -[rpm] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=4.1-1 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -gawk | -end of OR list, -fileutils | -end of OR list, -textutils | -end of OR list, -mktemp | -end of OR list, -[rpm-build] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=4.1-1 - depends=AND list is: -cygwin | -end of OR list, -rpm | -end of OR list, -make | -end of OR list, -patch | -end of OR list, -perl | -end of OR list, -[rpm-doc] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=4.1-1 - depends=AND list is: -man | -end of OR list, -[rsync] action=Skip trust=test installed=none src?=no - categories=All, Net - [Prev] ver=2.6.2-3 - [Curr] ver=2.6.3-1 - depends=AND list is: -cygwin | -end of OR list, -libpopt0 | -end of OR list, -[ruby] action=Skip trust=test installed=none src?=no - categories=All, Devel, Interpreters - [Prev] ver=1.8.0-2 - [Curr] ver=1.8.1-1 - depends=AND list is: -cygwin | -end of OR list, -[rxvt] action=Skip trust=test installed=none src?=no - categories=All, Shells - [Prev] ver=2.7.10-3 - [Curr] ver=2.7.10-4 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -bash | -end of OR list, -[s3270] action=Skip trust=prev installed=none src?=no - categories=All, Net - [Curr] ver=3.2.20-1 - depends=AND list is: -cygwin | -end of OR list, -suite3270 | -end of OR list, -[sed] action=4.1.2-1 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=4.0.9-2 - [Curr] ver=4.1.2-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libintl3 | -end of OR list, -libiconv2 | -end of OR list, -[setsid] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=0.0-3 - depends=AND list is: -cygwin | -end of OR list, -[setup] action=Skip trust=test installed=none src?=no - categories=All, Net, System, Utils - [Prev] ver=2.416-1 - [Curr] ver=2.427-1 -[sh-utils] action=2.0.15-4 trust=curr installed=none src?=no - categories=All, Base, Shells - [Prev] ver=2.0.15-3 - [Curr] ver=2.0.15-4 - depends=AND list is: -ash | -end of OR list, -bash | -end of OR list, -cygwin | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -[shared-mime-info] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=0.15-1 - depends=AND list is: -cygwin | -end of OR list, -glib2-runtime | -end of OR list, -libiconv2 | -end of OR list, -libintl3 | -end of OR list, -libxml2 | -end of OR list, -zlib | -end of OR list, -[sharutils] action=Skip trust=test installed=none src?=no - categories=All, Archive - [Prev] ver=4.2.1-2 - [Curr] ver=4.2.1-3 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -[shutdown] action=Skip trust=test installed=none src?=no - categories=Admin, All - [Prev] ver=1.3-1 - [Curr] ver=1.4-1 - depends=AND list is: -cygwin | -end of OR list, -[splint] action=Skip trust=prev installed=none src?=no - categories=All, Devel - [Curr] ver=3.1.1-1 - depends=AND list is: -cygwin | -end of OR list, -[squid] action=Skip trust=prev installed=none src?=no - categories=All, Web - [Curr] ver=2.4.STABLE7-1 - depends=AND list is: -cygwin | -end of OR list, -cygrunsrv | -end of OR list, -[ssmtp] action=Skip trust=test installed=none src?=no - categories=All, Mail - [Prev] ver=2.60.4-3 - [Curr] ver=2.60.9-3 - depends=AND list is: -cygwin | -end of OR list, -[startup-notification] action=Skip trust=test installed=none src?=no - categories=All, Gnome - [Prev] ver=0.7-1 - [Curr] ver=0.8-1 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-base | -end of OR list, -[stunnel] action=Skip trust=prev installed=none src?=no - categories=All, Net - [Curr] ver=4.04-3 - depends=AND list is: -cygwin | -end of OR list, -openssl | -end of OR list, -[subversion] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.0.6-1 - [Curr] ver=1.1.1-1 - depends=AND list is: -cygwin | -end of OR list, -libaprutil0 | -end of OR list, -libapr0 | -end of OR list, -libdb4.2 | -end of OR list, -libneon24 | -end of OR list, -expat | -end of OR list, -libintl3 | -end of OR list, -[subversion-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.0.6-1 - [Curr] ver=1.1.1-1 - depends=AND list is: -subversion | -end of OR list, -[suite3270] action=Skip trust=prev installed=none src?=no - categories=All, Net - [Curr] ver=3.2.20-1 - depends=AND list is: -cygwin | -end of OR list, -[sunrpc] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=4.0-1 - [Curr] ver=4.0-2 - depends=AND list is: -cygwin | -end of OR list, -[SWI-Prolog] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Interpreters - [Curr] ver=5.2.6-1 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -libreadline5 | -end of OR list, -terminfo | -end of OR list, -[swig] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=1.3.16-1 - [Curr] ver=1.3.19-1 - depends=AND list is: -cygwin | -end of OR list, -[sysvinit] action=Skip trust=test installed=none src?=no - categories=All, System - [Prev] ver=2.84-3 - [Curr] ver=2.84-4 - depends=AND list is: -cygwin | -end of OR list, -cygrunsrv | -end of OR list, -[t1lib] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=5.0.2-1 - depends=AND list is: -cygwin | -end of OR list, -[t1lib-x11] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=5.0.2-1 - depends=AND list is: -cygwin | -end of OR list, -t1lib | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -[tar] action=1.13.25-5 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=1.13.25-3 - [Curr] ver=1.13.25-5 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -gzip | -end of OR list, -bzip2 | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -[tcl3270] action=Skip trust=prev installed=none src?=no - categories=All, Net - [Curr] ver=3.2.20-1 - depends=AND list is: -cygwin | -end of OR list, -suite3270 | -end of OR list, -tcltk | -end of OR list, -[tcltk] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=20030214-1 - [Curr] ver=20030901-1 -[tcm] action=Skip trust=prev installed=none src?=no - categories=All, Devel, Graphics - [Curr] ver=2.20-1 - depends=AND list is: -xorg-x11-bin | -end of OR list, -lesstif | -end of OR list, -[tcp_wrappers] action=Skip trust=prev installed=none src?=no - categories=All, Net - [Curr] ver=7.6-1 - depends=AND list is: -cygwin | -end of OR list, -[tcsh] action=Skip trust=test installed=none src?=no - categories=All, Shells - [Prev] ver=6.13.00-1 - [Curr] ver=6.13.00-2 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -terminfo | -end of OR list, -[termcap] action=20021106-2 trust=curr installed=none src?=no - categories=All, Base, Libs - [Prev] ver=20020930-1 - [Curr] ver=20021106-2 - depends=AND list is: -cygwin | -end of OR list, -[terminfo] action=5.4_20041009-1 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=5.3_20030726-1 - [Curr] ver=5.4_20041009-1 -[tetex] action=Skip trust=test installed=none src?=no - categories=All, Publishing, Text - [Prev] ver=2.0.2-14 - [Curr] ver=2.0.2-15 - depends=AND list is: -tetex-bin | -end of OR list, -tetex-tiny | -end of OR list, -[tetex-base] action=Skip trust=test installed=none src?=no - categories=All, Publishing, Text - [Prev] ver=2.0.2-14 - [Curr] ver=2.0.2-15 - depends=AND list is: -tetex-bin | -end of OR list, -[tetex-bin] action=Skip trust=test installed=none src?=no - categories=All, Publishing, Text - [Prev] ver=2.0.2-14 - [Curr] ver=2.0.2-15 - depends=AND list is: -bash | -end of OR list, -clear | -end of OR list, -cygutils | -end of OR list, -cygwin | -end of OR list, -ed | -end of OR list, -diffutils | -end of OR list, -fileutils | -end of OR list, -findutils | -end of OR list, -gawk | -end of OR list, -grep | -end of OR list, -libjpeg62 | -end of OR list, -libkpathsea3 | -end of OR list, -libncurses6 | -end of OR list, -libncurses7 | -end of OR list, -libpng12 | -end of OR list, -libtiff4 | -end of OR list, -perl | -end of OR list, -sed | -end of OR list, -sh-utils | -end of OR list, -textutils | -end of OR list, -termcap | -end of OR list, -zlib | -end of OR list, -_update-info-dir | -end of OR list, -[tetex-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel, Libs - [Prev] ver=2.0.2-14 - [Curr] ver=2.0.2-15 - depends=AND list is: -cygwin | -end of OR list, -libkpathsea3 | -end of OR list, -[tetex-doc] action=Skip trust=test installed=none src?=no - categories=All, Doc - [Prev] ver=2.0.2-14 - [Curr] ver=2.0.2-15 - depends=AND list is: -cygwin | -end of OR list, -[tetex-extra] action=Skip trust=test installed=none src?=no - categories=All, Publishing, Text - [Prev] ver=2.0.2-14 - [Curr] ver=2.0.2-15 - depends=AND list is: -tetex-bin | -end of OR list, -tetex-base | -end of OR list, -[tetex-tiny] action=Skip trust=test installed=none src?=no - categories=All, Publishing, Text - [Prev] ver=2.0.2-14 - [Curr] ver=2.0.2-15 - depends=AND list is: -tetex-bin | -end of OR list, -[tetex-x11] action=Skip trust=test installed=none src?=no - categories=All, Publishing, Text - [Prev] ver=2.0.2-14 - [Curr] ver=2.0.2-15 - depends=AND list is: -cygwin | -end of OR list, -XFree86-base | -end of OR list, -xorg-x11-base | -end of OR list, -ghostscript-x11 | -end of OR list, -[texinfo] action=4.2-4 trust=curr installed=none src?=no - categories=All, Doc, Text - [Prev] ver=4.2-3 - [Curr] ver=4.2-4 - depends=AND list is: -cygwin | -end of OR list, -libintl1 | -end of OR list, -libgettextpo0 | -end of OR list, -[TeXmacs] action=Skip trust=prev installed=none src?=no - categories=All, Editors, Math - [Curr] ver=1.0.4-4 - depends=AND list is: -ghostscript-base | -end of OR list, -ghostscript-x11 | -end of OR list, -guile | -end of OR list, -guile-devel | -end of OR list, -guile-doc | -end of OR list, -libguile12 | -end of OR list, -tetex-bin | -end of OR list, -tetex-base | -end of OR list, -tetex-extra | -end of OR list, -tetex-devel | -end of OR list, -xorg-x11-base | -end of OR list, -transfig | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -XFree86-lib-compat | -end of OR list, -[textutils] action=2.0.21-1 trust=curr installed=none src?=no - categories=All, Base - [Curr] ver=2.0.21-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libintl1 | -end of OR list, -[tidy] action=Skip trust=test installed=none src?=no - categories=All, Text, Web - [Prev] ver=030201-1 - [Curr] ver=030901-1 - depends=AND list is: -cygwin | -end of OR list, -[tiff] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=3.6.0-5 - [Curr] ver=3.7.0beta2-1 - depends=AND list is: -ash | -end of OR list, -cygwin | -end of OR list, -libtiff5 | -end of OR list, -libtiff4 | -end of OR list, -libjpeg62 | -end of OR list, -zlib | -end of OR list, -libtiff-devel | -end of OR list, -[time] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=1.7-1 - depends=AND list is: -cygwin | -end of OR list, -_update-info-dir | -end of OR list, -[tin] action=Skip trust=test installed=none src?=no - categories=All, Mail, Net - [Prev] ver=1.6.2-1 - [Curr] ver=1.6.2-3 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -terminfo | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -[transfig] action=Skip trust=prev installed=none src?=no - categories=All, X11 - [Curr] ver=3.2.4-2 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-base | -end of OR list, -libpng | -end of OR list, -ghostscript | -end of OR list, -[ttcp] action=Skip trust=prev installed=none src?=no - categories=All, Net - [Curr] ver=19980512-1 - depends=AND list is: -cygwin | -end of OR list, -[tzcode] action=Skip trust=test installed=none src?=no - categories=All, Libs, System - [Prev] ver=2003e-1 - [Curr] ver=2004d-1 - depends=AND list is: -cygwin | -end of OR list, -gawk | -end of OR list, -pdksh | -end of OR list, -[ucl] action=Skip trust=prev installed=none src?=no - categories=All, Libs - [Curr] ver=1.01-1 - depends=AND list is: -cygwin | -end of OR list, -[unison] action=Skip trust=test installed=none src?=no - categories=All, Utils - [Curr] ver=2.10.2-3 - depends=AND list is: -cygwin | -end of OR list, - [Prev] ver=2.9.20-1 -[units] action=Skip trust=prev installed=none src?=no - categories=All, Utils - [Curr] ver=1.77-1 - depends=AND list is: -cygwin | -end of OR list, -libreadline5 | -end of OR list, -[unzip] action=Skip trust=test installed=none src?=no - categories=All, Archive - [Prev] ver=5.50-2 - [Curr] ver=5.50-5 - depends=AND list is: -cygwin | -end of OR list, -[upx] action=Skip trust=test installed=none src?=no - categories=All, Utils - [Prev] ver=1.21-1 - [Curr] ver=1.24-1 - depends=AND list is: -cygwin | -end of OR list, -[uw-imap] action=Skip trust=test installed=none src?=no - categories=All, Mail - [Prev] ver=2002e-2 - [Curr] ver=2002e-3 - depends=AND list is: -cygwin | -end of OR list, -[uw-imap-imapd] action=Skip trust=test installed=none src?=no - categories=All, Mail - [Prev] ver=2002e-2 - [Curr] ver=2002e-3 - depends=AND list is: -uw-imap | -end of OR list, -openssl | -end of OR list, -[uw-imap-util] action=Skip trust=test installed=none src?=no - categories=All, Mail - [Prev] ver=2002e-2 - [Curr] ver=2002e-3 - depends=AND list is: -uw-imap | -end of OR list, -openssl | -end of OR list, -[vim] action=Skip trust=test installed=none src?=no - categories=All, Editors - [Prev] ver=6.2.098-1 - [Curr] ver=6.3-1 - depends=AND list is: -cygwin | -end of OR list, -terminfo | -end of OR list, -libncurses7 | -end of OR list, -libiconv2 | -end of OR list, -[w32api] action=Skip trust=test installed=none src?=no - categories=All, Libs - [Prev] ver=2.5-1 - [Curr] ver=3.1-1 -[wget] action=Skip trust=test installed=none src?=no - categories=All, Web - [Prev] ver=1.9-1 - [Curr] ver=1.9.1-1 - depends=AND list is: -openssl | -end of OR list, -libintl2 | -end of OR list, -libiconv2 | -end of OR list, -ash | -end of OR list, -cygwin | -end of OR list, -[which] action=1.5-2 trust=curr installed=none src?=no - categories=All, Base - [Prev] ver=1.5-1 - [Curr] ver=1.5-2 - depends=AND list is: -cygwin | -end of OR list, -[whois] action=Skip trust=test installed=none src?=no - categories=All, Net - [Curr] ver=4.6.14-1 - depends=AND list is: -cygwin | -end of OR list, - [Prev] ver=4.6.7-1 -[WindowMaker] action=Skip trust=prev installed=none src?=no - categories=All, X11 - [Curr] ver=0.90.0-1 - depends=AND list is: -xorg-x11-base | -end of OR list, -jpeg | -end of OR list, -tiff | -end of OR list, -libpng | -end of OR list, -libungif | -end of OR list, -[WordNet] action=Skip trust=prev installed=none src?=no - categories=All, Text, Utils - [Curr] ver=2.0-1 - depends=AND list is: -cygwin | -end of OR list, -tcltk | -end of OR list, -[wtf] action=Skip trust=test installed=none src?=no - categories=All, Doc, Text - [Prev] ver=0.0.4-3 - [Curr] ver=0.0.4-6 - depends=AND list is: -cygwin | -end of OR list, -[X-start-menu-icons] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=1.0.3-1 - [Curr] ver=1.0.3-2 - depends=AND list is: -cygwin | -end of OR list, -bash | -end of OR list, -cygutils | -end of OR list, -findutils | -end of OR list, -textutils | -end of OR list, -xorg-x11-bin | -end of OR list, -xorg-x11-xwin | -end of OR list, -X-startup-scripts | -end of OR list, -[X-startup-scripts] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Curr] ver=1.0.10-2 - depends=AND list is: -cygwin | -end of OR list, -bash | -end of OR list, -xorg-x11-base | -end of OR list, -xorg-x11-bin | -end of OR list, -xorg-x11-xwin | -end of OR list, -xterm | -end of OR list, - [Prev] ver=1.0.9-1 -[x2x] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=1.30-1 - [Curr] ver=1.30-2 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-xwin | -end of OR list, -xorg-x11-bin | -end of OR list, -[x3270] action=Skip trust=prev installed=none src?=no - categories=All, Net - [Curr] ver=3.2.20-1 - depends=AND list is: -cygwin | -end of OR list, -suite3270 | -end of OR list, -xorg-x11-base | -end of OR list, -[Xaw3d] action=Skip trust=prev installed=none src?=no - categories=All, X11 - [Curr] ver=1.5D-5 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-bin | -end of OR list, -[xemacs] action=Skip trust=unknown installed=none src?=no - categories=All, Editors, Interpreters - [Prev] ver=21.4.14-2 - [Curr] ver=21.4.15-1 - depends=AND list is: -crypt | -end of OR list, -cygwin | -end of OR list, -expat | -end of OR list, -lesstif | -end of OR list, -libdb4.1 | -end of OR list, -libfontconfig1 | -end of OR list, -libfreetype26 | -end of OR list, -libiconv2 | -end of OR list, -libintl2 | -end of OR list, -libjpeg62 | -end of OR list, -libncurses7 | -end of OR list, -libopenldap2 | -end of OR list, -libpng12 | -end of OR list, -libtiff4 | -end of OR list, -minires | -end of OR list, -openssl | -end of OR list, -postgresql | -end of OR list, -xorg-x11-bin | -end of OR list, -zlib | -end of OR list, - [Test] ver=21.5.16-1 -[xemacs-emacs-common] action=Skip trust=unknown installed=none src?=no - categories=All, Editors - [Prev] ver=21.4.14-2 - [Curr] ver=21.4.15-1 - depends=AND list is: -cygwin | -end of OR list, -xemacs | -end of OR list, - [Test] ver=21.5.16-1 -[xemacs-mule-sumo] action=Skip trust=test installed=none src?=no - categories=All, Editors - [Prev] ver=2004-02-02-1 - [Curr] ver=2004-08-18-1 - depends=AND list is: -cygwin | -end of OR list, -xemacs | -end of OR list, -[xemacs-sumo] action=Skip trust=test installed=none src?=no - categories=All, Editors - [Prev] ver=2004-02-02-1 - [Curr] ver=2004-08-18-1 - depends=AND list is: -cygwin | -end of OR list, -xemacs | -end of OR list, -[xemacs-tags] action=Skip trust=unknown installed=none src?=no - categories=All, Editors - [Prev] ver=21.4.14-2 - [Curr] ver=21.4.15-1 - depends=AND list is: -cygwin | -end of OR list, -xemacs | -end of OR list, - [Test] ver=21.5.16-1 -[xerces-c] action=Skip trust=test installed=none src?=no - categories=All, Doc - [Prev] ver=2.4.0-4 - [Curr] ver=2.5.0-1 - depends=AND list is: -libxerces-c25 | -end of OR list, -[xerces-c-devel] action=Skip trust=test installed=none src?=no - categories=All, Devel - [Prev] ver=2.4.0-4 - [Curr] ver=2.5.0-1 -[xerces-c-doc] action=Skip trust=test installed=none src?=no - categories=All, Doc - [Prev] ver=2.4.0-4 - [Curr] ver=2.5.0-1 -[xfig] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=3.2.4-5 - [Curr] ver=3.2.4-6 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-bin | -end of OR list, -zlib | -end of OR list, -jpeg | -end of OR list, -libpng | -end of OR list, -Xaw3d | -end of OR list, -transfig | -end of OR list, -xfig-lib | -end of OR list, -ghostscript-x11 | -end of OR list, -tar | -end of OR list, -[xfig-bin] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=3.2.4-3 -[xfig-doc] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=3.2.4-2 -[xfig-etc] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=3.2.4-4 -[xfig-lib] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=3.2.4-5 - [Curr] ver=3.2.4-6 - depends=AND list is: -xfig | -end of OR list, -[xfig-man] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=3.2.4-2 -[XFree86-base] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-11 - depends=AND list is: -xorg-x11-base | -end of OR list, -[XFree86-bin] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-21 - depends=AND list is: -xorg-x11-bin | -end of OR list, -[XFree86-bin-icons] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-7 - depends=AND list is: -X-start-menu-icons | -end of OR list, -[XFree86-doc] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-2 -[XFree86-etc] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-12 - depends=AND list is: -xorg-x11-etc | -end of OR list, -[XFree86-f100] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-2 - depends=AND list is: -xorg-x11-f100 | -end of OR list, -[XFree86-fcyr] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-2 - depends=AND list is: -xorg-x11-fcyr | -end of OR list, -[XFree86-fenc] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-2 - depends=AND list is: -xorg-x11-fenc | -end of OR list, -[XFree86-fnts] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-2 - depends=AND list is: -xorg-x11-fnts | -end of OR list, -[XFree86-fscl] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-2 - depends=AND list is: -xorg-x11-fscl | -end of OR list, -[XFree86-fsrv] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-9 - depends=AND list is: -xorg-x11-fsrv | -end of OR list, -[XFree86-html] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-10 - depends=AND list is: -xorg-x11-man-pages-html | -end of OR list, -[XFree86-jdoc] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-2 -[XFree86-lib] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-3 - depends=AND list is: -xorg-x11-libs-data | -end of OR list, -[XFree86-lib-compat] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=4.3.0-1 - [Curr] ver=4.3.0-2 - depends=AND list is: -xorg-x11-base | -end of OR list, -[XFree86-man] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-10 - depends=AND list is: -xorg-x11-man-pages | -end of OR list, -[XFree86-nest] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-8 - depends=AND list is: -xorg-x11-nest | -end of OR list, -[XFree86-prog] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-21 - depends=AND list is: -xorg-x11-devel | -end of OR list, -[XFree86-prt] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-6 -[XFree86-ps] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-2 -[XFree86-startup-scripts] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-1 - depends=AND list is: -X-startup-scripts | -end of OR list, -[XFree86-vfb] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-8 - depends=AND list is: -xorg-x11-vfb | -end of OR list, -[XFree86-xserv] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-68 - depends=AND list is: -xorg-x11-xwin | -end of OR list, -[XFree86-xwinclip] action=Skip trust=prev installed=none src?=no - categories=All, ZZZRemovedPackages - [Curr] ver=4.3.0-3 -[xgraph] action=Skip trust=prev installed=none src?=no - categories=All, X11 - [Curr] ver=12.1-1 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-base | -end of OR list, -[xinetd] action=Skip trust=prev installed=none src?=no - categories=All, Net - [Curr] ver=2.3.9-1 - depends=AND list is: -cygwin | -end of OR list, -inetutils | -end of OR list, -sharutils | -end of OR list, -bash | -end of OR list, -[XmHTML] action=Skip trust=prev installed=none src?=no - categories=All, Libs, Web, X11 - [Curr] ver=1.1.7-1 - depends=AND list is: -cygwin | -end of OR list, -expat | -end of OR list, -lesstif | -end of OR list, -libfontconfig1 | -end of OR list, -libfreetype26 | -end of OR list, -libjpeg62 | -end of OR list, -libpng12 | -end of OR list, -xorg-x11-bin | -end of OR list, -zlib | -end of OR list, -[xmlto] action=Skip trust=test installed=none src?=no - categories=All, Doc, Text - [Prev] ver=0.0.17-1 - [Curr] ver=0.0.18-1 - depends=AND list is: -cygwin | -end of OR list, -cygutils | -end of OR list, -bash | -end of OR list, -libxslt | -end of OR list, -docbook-xsl | -end of OR list, -[xorg-x11-base] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.7.0.0-8 - [Curr] ver=6.8.1.0-1 - depends=AND list is: -cygwin | -end of OR list, -ash | -end of OR list, -pcre | -end of OR list, -xorg-x11-bin | -end of OR list, -xorg-x11-bin-dlls | -end of OR list, -xorg-x11-etc | -end of OR list, -xorg-x11-libs-data | -end of OR list, -xorg-x11-fenc | -end of OR list, -xorg-x11-fnts | -end of OR list, -xorg-x11-xwin | -end of OR list, -[xorg-x11-bin] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.8.1.0-1 - [Curr] ver=6.8.1.0-2 - depends=AND list is: -xorg-x11-base | -end of OR list, -xorg-x11-bin-lndir | -end of OR list, -expat | -end of OR list, -freetype2 | -end of OR list, -fontconfig | -end of OR list, -libXft | -end of OR list, -libXft1 | -end of OR list, -libncurses7 | -end of OR list, -termcap | -end of OR list, -terminfo | -end of OR list, -zlib | -end of OR list, -gettext | -end of OR list, -libintl | -end of OR list, -libintl1 | -end of OR list, -[xorg-x11-bin-dlls] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.7.0.0-5 - [Curr] ver=6.8.1.0-1 - depends=AND list is: -xorg-x11-base | -end of OR list, -expat | -end of OR list, -freetype2 | -end of OR list, -fontconfig | -end of OR list, -libXft | -end of OR list, -libXft1 | -end of OR list, -libncurses7 | -end of OR list, -termcap | -end of OR list, -terminfo | -end of OR list, -zlib | -end of OR list, -gettext | -end of OR list, -libintl | -end of OR list, -libintl1 | -end of OR list, -[xorg-x11-bin-lndir] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.7.0.0-2 - [Curr] ver=6.8.1.0-1 - depends=AND list is: -cygwin | -end of OR list, -[xorg-x11-devel] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.7.0.0-4 - [Curr] ver=6.8.1.0-1 - depends=AND list is: -xorg-x11-base | -end of OR list, -expat | -end of OR list, -freetype2 | -end of OR list, -fontconfig | -end of OR list, -libfreetype2-devel | -end of OR list, -libfontconfig-devel | -end of OR list, -libXft | -end of OR list, -libXft-devel | -end of OR list, -[xorg-x11-etc] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.7.0.0-3 - [Curr] ver=6.8.1.0-1 - depends=AND list is: -xorg-x11-base | -end of OR list, -xorg-x11-bin | -end of OR list, -expat | -end of OR list, -[xorg-x11-f100] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.8.1.0-2 - [Curr] ver=6.8.1.0-3 - depends=AND list is: -xorg-x11-base | -end of OR list, -expat | -end of OR list, -[xorg-x11-fcyr] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.8.1.0-1 - [Curr] ver=6.8.1.0-2 - depends=AND list is: -xorg-x11-base | -end of OR list, -expat | -end of OR list, -[xorg-x11-fenc] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.8.1.0-1 - [Curr] ver=6.8.1.0-2 - depends=AND list is: -xorg-x11-base | -end of OR list, -expat | -end of OR list, -[xorg-x11-fnts] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.8.1.0-2 - [Curr] ver=6.8.1.0-3 - depends=AND list is: -xorg-x11-base | -end of OR list, -expat | -end of OR list, -[xorg-x11-fscl] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.8.1.0-1 - [Curr] ver=6.8.1.0-2 - depends=AND list is: -xorg-x11-base | -end of OR list, -expat | -end of OR list, -[xorg-x11-fsrv] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.7.0.0-1 - [Curr] ver=6.8.1.0-1 - depends=AND list is: -xorg-x11-base | -end of OR list, -expat | -end of OR list, -[xorg-x11-libs-data] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.7.0.0-3 - [Curr] ver=6.8.1.0-1 - depends=AND list is: -xorg-x11-base | -end of OR list, -expat | -end of OR list, -tar | -end of OR list, -[xorg-x11-man-pages] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.7.0.0-2 - [Curr] ver=6.8.1.0-1 - depends=AND list is: -cygwin | -end of OR list, -[xorg-x11-man-pages-html] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.7.0.0-2 - [Curr] ver=6.8.1.0-1 - depends=AND list is: -cygwin | -end of OR list, -[xorg-x11-nest] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.7.0.0-2 - [Curr] ver=6.8.1.0-1 - depends=AND list is: -xorg-x11-base | -end of OR list, -expat | -end of OR list, -[xorg-x11-vfb] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.7.0.0-2 - [Curr] ver=6.8.1.0-1 - depends=AND list is: -xorg-x11-base | -end of OR list, -expat | -end of OR list, -[xorg-x11-xwin] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.8.1.0-4 - [Curr] ver=6.8.1.0-5 - depends=AND list is: -xorg-x11-base | -end of OR list, -cygwin | -end of OR list, -zlib | -end of OR list, -libfreetype26 | -end of OR list, -[xorg-x11-xwin-gl] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=6.8.1.0-4 - [Curr] ver=6.8.1.0-5 - depends=AND list is: -xorg-x11-base | -end of OR list, -cygwin | -end of OR list, -zlib | -end of OR list, -libfreetype26 | -end of OR list, -[xpdf] action=Skip trust=prev installed=none src?=no - categories=All, Doc, X11 - [Curr] ver=3.00-1 - depends=AND list is: -cygwin | -end of OR list, -expat | -end of OR list, -lesstif | -end of OR list, -libfontconfig1 | -end of OR list, -libfreetype26 | -end of OR list, -libXft2 | -end of OR list, -t1lib | -end of OR list, -xorg-x11-base | -end of OR list, -zlib | -end of OR list, -[xpm-nox] action=Skip trust=test installed=none src?=no - categories=All, Graphics, Libs - [Prev] ver=4.2.0-1 - [Curr] ver=4.2.0-4 - depends=AND list is: -cygwin | -end of OR list, -[xterm] action=Skip trust=test installed=none src?=no - categories=All, X11 - [Prev] ver=185-4 - [Curr] ver=196-1 - depends=AND list is: -cygwin | -end of OR list, -bash | -end of OR list, -expat | -end of OR list, -libfontconfig1 | -end of OR list, -libfreetype26 | -end of OR list, -libXft2 | -end of OR list, -terminfo | -end of OR list, -xorg-x11-base | -end of OR list, -zlib | -end of OR list, -[xwinclip] action=Skip trust=prev installed=none src?=no - categories=All, X11 - [Curr] ver=1.2.0-1 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-bin | -end of OR list, -xorg-x11-xwin | -end of OR list, -[xwinwm] action=Skip trust=prev installed=none src?=no - categories=All, X11 - [Curr] ver=0.0.5-1 - depends=AND list is: -cygwin | -end of OR list, -xorg-x11-base | -end of OR list, -xorg-x11-xwin | -end of OR list, -[zip] action=Skip trust=test installed=none src?=no - categories=All, Archive - [Prev] ver=2.3-5 - [Curr] ver=2.3-6 - depends=AND list is: -cygwin | -end of OR list, -[zlib] action=1.2.2-1 trust=curr installed=none src?=no - categories=All, Base, Libs - [Prev] ver=1.2.1-2 - [Curr] ver=1.2.2-1 - depends=AND list is: -cygwin | -end of OR list, -[zsh] action=Skip trust=test installed=none src?=no - categories=All, Shells - [Prev] ver=4.2.0-1 - [Curr] ver=4.2.0-2 - depends=AND list is: -cygwin | -end of OR list, -libncurses7 | -end of OR list, -[_update-info-dir] action=00230-1 trust=curr installed=none src?=no - categories=All, _PostInstallLast - [Curr] ver=00230-1 - depends=AND list is: -texinfo | -end of OR list, -ash | -end of OR list, -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/ash/ash-20040127-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ash/ash-20040127-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,49,170) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/ash/ash-20040127-1.tar.bz2 (47258 bytes). -2004/11/18 14:40:48 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ash/ash-20040127-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/base-files/base-files-3.1-4.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/base-files/base-files-3.1-4.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,94,178) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/base-files/base-files-3.1-4.tar.bz2 (34476 bytes). -2004/11/18 14:40:48 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/base-files/base-files-3.1-4.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/base-passwd/base-passwd-2.1-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/base-passwd/base-passwd-2.1-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,231,214) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/base-passwd/base-passwd-2.1-1.tar.bz2 (480 bytes). -2004/11/18 14:40:48 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/base-passwd/base-passwd-2.1-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/bash/bash-2.05b-16.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bash/bash-2.05b-16.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,175,125) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/bash/bash-2.05b-16.tar.bz2 (400957 bytes). -2004/11/18 14:40:52 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bash/bash-2.05b-16.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/bzip2/bzip2-1.0.2-6.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bzip2/bzip2-1.0.2-6.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,244,122) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/bzip2/bzip2-1.0.2-6.tar.bz2 (214151 bytes). -2004/11/18 14:40:54 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bzip2/bzip2-1.0.2-6.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/cygutils/cygutils-1.2.5-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygutils/cygutils-1.2.5-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,99,83) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/cygutils/cygutils-1.2.5-1.tar.bz2 (165150 bytes). -2004/11/18 14:40:56 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygutils/cygutils-1.2.5-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/cygwin/cygwin-1.5.12-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygwin/cygwin-1.5.12-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,103,33) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/cygwin/cygwin-1.5.12-1.tar.bz2 (1187032 bytes). -2004/11/18 14:41:05 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygwin/cygwin-1.5.12-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/cygwin-doc/cygwin-doc-1.3-7.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygwin-doc/cygwin-doc-1.3-7.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,84,128) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/cygwin-doc/cygwin-doc-1.3-7.tar.bz2 (870735 bytes). -2004/11/18 14:41:10 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/cygwin-doc/cygwin-doc-1.3-7.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/diffutils/diffutils-2.8.7-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/diffutils/diffutils-2.8.7-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,245,218) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/diffutils/diffutils-2.8.7-1.tar.bz2 (242417 bytes). -2004/11/18 14:41:12 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/diffutils/diffutils-2.8.7-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/editrights/editrights-1.01-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/editrights/editrights-1.01-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,178,134) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/editrights/editrights-1.01-1.tar.bz2 (28452 bytes). -2004/11/18 14:41:13 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/editrights/editrights-1.01-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/fileutils/fileutils-4.1-2.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/fileutils/fileutils-4.1-2.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,144,68) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/fileutils/fileutils-4.1-2.tar.bz2 (412910 bytes). -2004/11/18 14:41:15 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/fileutils/fileutils-4.1-2.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/findutils/findutils-4.1.7-4.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/findutils/findutils-4.1.7-4.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,70,57) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/findutils/findutils-4.1.7-4.tar.bz2 (107664 bytes). -2004/11/18 14:41:16 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/findutils/findutils-4.1.7-4.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/gawk/gawk-3.1.4-3.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gawk/gawk-3.1.4-3.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,93,192) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/gawk/gawk-3.1.4-3.tar.bz2 (598403 bytes). -2004/11/18 14:41:21 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gawk/gawk-3.1.4-3.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/gdbm/gdbm-1.8.3-7.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/gdbm-1.8.3-7.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,96,205) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/gdbm/gdbm-1.8.3-7.tar.bz2 (44881 bytes). -2004/11/18 14:41:22 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/gdbm-1.8.3-7.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/grep/grep-2.5-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/grep/grep-2.5-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,48,182) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/grep/grep-2.5-1.tar.bz2 (112224 bytes). -2004/11/18 14:41:22 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/grep/grep-2.5-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/groff/groff-1.18.1-2.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/groff/groff-1.18.1-2.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,32,194) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/groff/groff-1.18.1-2.tar.bz2 (2038272 bytes). -2004/11/18 14:41:38 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/groff/groff-1.18.1-2.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/gzip/gzip-1.3.5-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gzip/gzip-1.3.5-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,157,94) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/gzip/gzip-1.3.5-1.tar.bz2 (55079 bytes). -2004/11/18 14:41:38 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gzip/gzip-1.3.5-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/less/less-381-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/less/less-381-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,190,224) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/less/less-381-1.tar.bz2 (79922 bytes). -2004/11/18 14:41:39 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/less/less-381-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/bzip2/libbz2_1/libbz2_1-1.0.2-6.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bzip2/libbz2_1/libbz2_1-1.0.2-6.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,116,76) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/bzip2/libbz2_1/libbz2_1-1.0.2-6.tar.bz2 (24861 bytes). -2004/11/18 14:41:39 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/bzip2/libbz2_1/libbz2_1-1.0.2-6.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/libiconv/libcharset1/libcharset1-1.9.2-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libcharset1/libcharset1-1.9.2-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,37,248) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/libiconv/libcharset1/libcharset1-1.9.2-1.tar.bz2 (6519 bytes). -2004/11/18 14:41:39 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libcharset1/libcharset1-1.9.2-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/gdbm/libgdbm/libgdbm-1.8.0-5.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm/libgdbm-1.8.0-5.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,138,92) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/gdbm/libgdbm/libgdbm-1.8.0-5.tar.bz2 (9856 bytes). -2004/11/18 14:41:39 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm/libgdbm-1.8.0-5.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/gdbm/libgdbm-devel/libgdbm-devel-1.8.3-7.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm-devel/libgdbm-devel-1.8.3-7.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,114,132) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/gdbm/libgdbm-devel/libgdbm-devel-1.8.3-7.tar.bz2 (35406 bytes). -2004/11/18 14:41:39 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm-devel/libgdbm-devel-1.8.3-7.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/gdbm/libgdbm3/libgdbm3-1.8.3-3.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm3/libgdbm3-1.8.3-3.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,248,67) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/gdbm/libgdbm3/libgdbm3-1.8.3-3.tar.bz2 (16315 bytes). -2004/11/18 14:41:40 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm3/libgdbm3-1.8.3-3.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/gdbm/libgdbm4/libgdbm4-1.8.3-7.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm4/libgdbm4-1.8.3-7.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,250,248) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/gdbm/libgdbm4/libgdbm4-1.8.3-7.tar.bz2 (17087 bytes). -2004/11/18 14:41:40 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gdbm/libgdbm4/libgdbm4-1.8.3-7.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/gettext/libgettextpo0/libgettextpo0-0.14.1-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libgettextpo0/libgettextpo0-0.14.1-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,42,17) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/gettext/libgettextpo0/libgettextpo0-0.14.1-1.tar.bz2 (112347 bytes). -2004/11/18 14:41:41 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libgettextpo0/libgettextpo0-0.14.1-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/libiconv/libiconv-1.9.2-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libiconv-1.9.2-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,56,40) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/libiconv/libiconv-1.9.2-1.tar.bz2 (773888 bytes). -2004/11/18 14:41:46 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libiconv-1.9.2-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/libiconv/libiconv2/libiconv2-1.9.2-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libiconv2/libiconv2-1.9.2-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,136,192) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/libiconv/libiconv2/libiconv2-1.9.2-1.tar.bz2 (695525 bytes). -2004/11/18 14:41:51 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/libiconv/libiconv2/libiconv2-1.9.2-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/gettext/libintl1/libintl1-0.10.40-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl1/libintl1-0.10.40-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,155,20) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/gettext/libintl1/libintl1-0.10.40-1.tar.bz2 (11120 bytes). -2004/11/18 14:41:51 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl1/libintl1-0.10.40-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/gettext/libintl2/libintl2-0.12.1-3.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl2/libintl2-0.12.1-3.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,77,177) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/gettext/libintl2/libintl2-0.12.1-3.tar.bz2 (19495 bytes). -2004/11/18 14:41:52 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl2/libintl2-0.12.1-3.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/gettext/libintl3/libintl3-0.14.1-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl3/libintl3-0.14.1-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,208,195) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/gettext/libintl3/libintl3-0.14.1-1.tar.bz2 (21623 bytes). -2004/11/18 14:41:52 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/gettext/libintl3/libintl3-0.14.1-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/ncurses/libncurses5/libncurses5-5.2-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses5/libncurses5-5.2-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,79,205) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/ncurses/libncurses5/libncurses5-5.2-1.tar.bz2 (181942 bytes). -2004/11/18 14:41:53 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses5/libncurses5-5.2-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/ncurses/libncurses6/libncurses6-5.2-8.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses6/libncurses6-5.2-8.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,241,163) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/ncurses/libncurses6/libncurses6-5.2-8.tar.bz2 (190693 bytes). -2004/11/18 14:41:54 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses6/libncurses6-5.2-8.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/ncurses/libncurses7/libncurses7-5.3-4.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses7/libncurses7-5.3-4.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,161,193) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/ncurses/libncurses7/libncurses7-5.3-4.tar.bz2 (142898 bytes). -2004/11/18 14:41:55 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses7/libncurses7-5.3-4.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/ncurses/libncurses8/libncurses8-5.4-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses8/libncurses8-5.4-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,68,198) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/ncurses/libncurses8/libncurses8-5.4-1.tar.bz2 (161315 bytes). -2004/11/18 14:41:57 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/libncurses8/libncurses8-5.4-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/pcre/libpcre/libpcre-4.1-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/pcre/libpcre/libpcre-4.1-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,93,103) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/pcre/libpcre/libpcre-4.1-1.tar.bz2 (40203 bytes). -2004/11/18 14:41:57 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/pcre/libpcre/libpcre-4.1-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/pcre/libpcre0/libpcre0-4.5-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/pcre/libpcre0/libpcre0-4.5-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,24,106) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/pcre/libpcre0/libpcre0-4.5-1.tar.bz2 (31905 bytes). -2004/11/18 14:41:57 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/pcre/libpcre0/libpcre0-4.5-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/popt/libpopt0/libpopt0-1.6.4-4.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/popt/libpopt0/libpopt0-1.6.4-4.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,103,219) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/popt/libpopt0/libpopt0-1.6.4-4.tar.bz2 (11627 bytes). -2004/11/18 14:41:58 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/popt/libpopt0/libpopt0-1.6.4-4.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/readline/libreadline4/libreadline4-4.1-2.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline4/libreadline4-4.1-2.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,229,174) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/readline/libreadline4/libreadline4-4.1-2.tar.bz2 (55864 bytes). -2004/11/18 14:41:58 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline4/libreadline4-4.1-2.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/readline/libreadline5/libreadline5-4.3-5.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline5/libreadline5-4.3-5.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,151,152) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/readline/libreadline5/libreadline5-4.3-5.tar.bz2 (77996 bytes). -2004/11/18 14:41:58 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline5/libreadline5-4.3-5.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/readline/libreadline6/libreadline6-5.0-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline6/libreadline6-5.0-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,41,193) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/readline/libreadline6/libreadline6-5.0-1.tar.bz2 (74081 bytes). -2004/11/18 14:41:59 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/libreadline6/libreadline6-5.0-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/login/login-1.9-7.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/login/login-1.9-7.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,80,218) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/login/login-1.9-7.tar.bz2 (13590 bytes). -2004/11/18 14:41:59 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/login/login-1.9-7.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/man/man-1.5o-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/man/man-1.5o-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,55,118) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/man/man-1.5o-1.tar.bz2 (129449 bytes). -2004/11/18 14:42:00 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/man/man-1.5o-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/mktemp/mktemp-1.5-3.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/mktemp/mktemp-1.5-3.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,81,139) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/mktemp/mktemp-1.5-3.tar.bz2 (14018 bytes). -2004/11/18 14:42:00 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/mktemp/mktemp-1.5-3.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/ncurses/ncurses-5.4-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/ncurses-5.4-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,185,33) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/ncurses/ncurses-5.4-1.tar.bz2 (303677 bytes). -2004/11/18 14:42:02 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/ncurses/ncurses-5.4-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/readline/readline-5.0-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/readline-5.0-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,58,217) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/readline/readline-5.0-1.tar.bz2 (220109 bytes). -2004/11/18 14:42:03 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/readline/readline-5.0-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/sed/sed-4.1.2-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/sed/sed-4.1.2-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,171,227) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/sed/sed-4.1.2-1.tar.bz2 (113438 bytes). -2004/11/18 14:42:04 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/sed/sed-4.1.2-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/sh-utils/sh-utils-2.0.15-4.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/sh-utils/sh-utils-2.0.15-4.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,153,222) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/sh-utils/sh-utils-2.0.15-4.tar.bz2 (463402 bytes). -2004/11/18 14:42:07 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/sh-utils/sh-utils-2.0.15-4.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/tar/tar-1.13.25-5.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/tar/tar-1.13.25-5.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,125,98) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/tar/tar-1.13.25-5.tar.bz2 (288171 bytes). -2004/11/18 14:42:10 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/tar/tar-1.13.25-5.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/termcap/termcap-20021106-2.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/termcap/termcap-20021106-2.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,37,56) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/termcap/termcap-20021106-2.tar.bz2 (19149 bytes). -2004/11/18 14:42:10 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/termcap/termcap-20021106-2.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/terminfo/terminfo-5.4_20041009-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/terminfo/terminfo-5.4_20041009-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,81,170) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/terminfo/terminfo-5.4_20041009-1.tar.bz2 (194430 bytes). -2004/11/18 14:42:11 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/terminfo/terminfo-5.4_20041009-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/texinfo/texinfo-4.2-4.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/texinfo/texinfo-4.2-4.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,217,239) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/texinfo/texinfo-4.2-4.tar.bz2 (611194 bytes). -2004/11/18 14:42:15 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/texinfo/texinfo-4.2-4.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/textutils/textutils-2.0.21-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/textutils/textutils-2.0.21-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,210,39) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/textutils/textutils-2.0.21-1.tar.bz2 (507314 bytes). -2004/11/18 14:42:18 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/textutils/textutils-2.0.21-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/which/which-1.5-2.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/which/which-1.5-2.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,157,164) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/which/which-1.5-2.tar.bz2 (5875 bytes). -2004/11/18 14:42:19 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/which/which-1.5-2.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/zlib/zlib-1.2.2-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/zlib/zlib-1.2.2-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,246,11) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/zlib/zlib-1.2.2-1.tar.bz2 (76371 bytes). -2004/11/18 14:42:19 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/zlib/zlib-1.2.2-1.tar.bz2 -get_url_to_file ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/release/_update-info-dir/_update-info-dir-00230-1.tar.bz2 D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/_update-info-dir/_update-info-dir-00230-1.tar.bz2.tmp -ftp > 226 File send OK. -ftp > 227 Entering Passive Mode (129,143,116,10,73,3) -ftp > 150 Opening BINARY mode data connection for /pub/Mirrors/sources.redhat.com/cygwin/release/_update-info-dir/_update-info-dir-00230-1.tar.bz2 (373 bytes). -2004/11/18 14:42:19 Downloaded D:\Downloads\Cygwin/ftp%3a%2f%2fftp-stud.fht-esslingen.de%2fpub%2fMirrors%2fsources.redhat.com%2fcygwin/release/_update-info-dir/_update-info-dir-00230-1.tar.bz2 -2004/11/18 14:42:19 mbox note: Download Complete -2004/11/18 14:42:21 Ending cygwin install diff --git a/tools/cygwin/cygwin_setup.exe b/tools/cygwin/cygwin_setup.exe deleted file mode 100755 index 5beb4a06..00000000 Binary files a/tools/cygwin/cygwin_setup.exe and /dev/null differ diff --git a/tools/cygwin/setup.exe b/tools/cygwin/setup.exe deleted file mode 100755 index eced52c0..00000000 Binary files a/tools/cygwin/setup.exe and /dev/null differ diff --git a/tools/cygwin1.dll b/tools/cygwin1.dll deleted file mode 100755 index 78210c95..00000000 Binary files a/tools/cygwin1.dll and /dev/null differ diff --git a/tools/jay b/tools/jay deleted file mode 100755 index 0f8cc4ab..00000000 Binary files a/tools/jay and /dev/null differ diff --git a/tools/jay.cygwin32 b/tools/jay.cygwin32 deleted file mode 100755 index b43a0f79..00000000 Binary files a/tools/jay.cygwin32 and /dev/null differ diff --git a/tools/jay.darwin b/tools/jay.darwin deleted file mode 100755 index 94584508..00000000 Binary files a/tools/jay.darwin and /dev/null differ diff --git a/tools/old/Makefile b/tools/old/Makefile deleted file mode 100755 index 5218406a..00000000 --- a/tools/old/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -JAVAC = javac -classpath .: - -all: JavaLexer.class - $(JAVAC) *.java - -pars: JavaLexer.class - $(JAVAC) JavaCompiler.java - -JavaLexer.class: JavaParser.java JavaLexer.java - $(JAVAC) JavaLexer.java - -JavaParser.class: JavaParser.java - $(JAVAC) JavaParser.java - -JavaParser.java: JavaParser.jay - ./jay -v JavaParser.jay < skeleton > JavaParser.java - -JavaLexer.java: JavaLexer.lex.java - mv JavaLexer.lex.java JavaLexer.java - -JavaLexer.lex.java: JavaLexer.lex - java -classpath .:JLex.jar JLex.Main JavaLexer.lex - -clean: - rm *.class - rm JavaLexer.java - rm JavaParser.java - rm y.output diff --git a/tools/old/Makefile.cygwin b/tools/old/Makefile.cygwin deleted file mode 100755 index 7a4b25af..00000000 --- a/tools/old/Makefile.cygwin +++ /dev/null @@ -1,22 +0,0 @@ -JAVAC = javac -classpath .; - -MyCompiler.class: MyCompiler.java JavaParser.java - $(JAVAC) MyCompiler.java - -JavaParser.class: JavaParser.java - $(JAVAC) JavaParser.java - -JavaLexer.class: JavaLexer.java - $(JAVAC) JavaLexer.java - -JavaParser.java: JavaParser.jay JavaLexer.java - jay.cygwin32 -v JavaParser.jay < skeleton > JavaParser.java - -JavaLexer.java: JavaLexer.lex.java - copy JavaLexer.lex.java JavaLexer.java - -JavaLexer.lex.java: JavaLexer.lex - java -classpath .;JLex.jar JLex.Main JavaLexer.lex - -clean: - del *.class JavaLexer.java JavaParser.java JavaLexer.lex.java \ No newline at end of file diff --git a/tools/old/go.bat b/tools/old/go.bat deleted file mode 100755 index dc3fb685..00000000 --- a/tools/old/go.bat +++ /dev/null @@ -1 +0,0 @@ -nmake -f Makefile.cygwin \ No newline at end of file diff --git a/tools/skeleton b/tools/skeleton deleted file mode 100755 index 10eb1996..00000000 --- a/tools/skeleton +++ /dev/null @@ -1,279 +0,0 @@ -# jay skeleton - -# character in column 1 determines outcome... -# # is a comment -# . is copied -# t is copied as //t if -t is set -# other lines are interpreted to call jay procedures - -.// created by jay 0.7 (c) 1998 Axel.Schreiner@informatik.uni-osnabrueck.de -. - prolog ## %{ ... %} prior to the first %% - -.// %token constants -. //{ //ergaenzt PL 23.01.01 wieder entfernt 21.12.01 - tokens public static final int -. -. /** thrown for irrecoverable syntax errors and stack overflow. -. */ -. public static class yyException extends java.lang.Exception { -. public Token token; -. public yyException (String message, Token token) { -. super(message); -. this.token=token; -. } -. } -. -. /** must be implemented by a scanner object to supply input to the parser. -. */ -. public interface yyInput { -. /** move on to next token. -. @return false if positioned beyond tokens. -. @throws IOException on input error. -. */ -. boolean advance () throws java.io.IOException; -. /** classifies current token. -. Should not be called if advance() returned false. -. @return current %token or single character. -. */ -. int token (); -. /** associated with current token. -. Should not be called if advance() returned false. -. @return value for token(). -. */ -. Object value (); -. } -. -. /** simplified error message. -. @see yyerror -. */ -. public void yyerror (String message) { -. yyerror(message, null); -. } -. -. /** (syntax) error message. -. Can be overwritten to control message format. -. @param message text to be displayed. -. @param expected Menge of acceptable tokens, if available. -. */ -. public String yyerror (String message, String[] expected) { -. if (expected != null && expected.length > 0) { -. System.err.print(message+", expecting"); -. message+=", expecting"; -. for (int n = 0; n < expected.length; ++ n){ -. System.err.print(" "+expected[n]); -. message+=" "+expected[n];} -. System.err.println(); -. return message; -. } else{ -. System.err.println(message); -. return message;} -. } -. -. /** debugging support, requires the package jay.yydebug. -. Set to null to suppress debugging messages. -. */ -t protected jay.yydebug.yyDebug yydebug; -. - debug ## tables for debugging support -. -. /** index-checked interface to yyName[]. -. @param token single character or %token value. -. @return token name or [illegal] or [unknown]. -. */ -t public static final String yyname (int token) { -t if (token < 0 || token > yyName.length) return "[illegal]"; -t String name; -t if ((name = yyName[token]) != null) return name; -t return "[unknown]"; -t } -. -. /** computes list of expected tokens on error by tracing the tables. -. @param state for which to compute the list. -. @return list of token names. -. */ -. protected String[] yyExpecting (int state) { -. // yyCheck durch yyCheckInit.yyCheck; ersetzt PL 25.1.01 -. int token, n, len = 0; -. boolean[] ok = new boolean[yyName.length]; -. -. if ((n = yySindex[state]) != 0) -. for (token = n < 0 ? -n : 0; -. token < yyName.length && n+token < yyTable.length; ++ token) -. if (yyCheckInit.yyCheck[n+token] == token && !ok[token] && yyName[token] != null) { -. ++ len; -. ok[token] = true; -. } -. if ((n = yyRindex[state]) != 0) -. for (token = n < 0 ? -n : 0; -. token < yyName.length && n+token < yyTable.length; ++ token) -. if (yyCheckInit.yyCheck[n+token] == token && !ok[token] && yyName[token] != null) { -. ++ len; -. ok[token] = true; -. } -. -. String result[] = new String[len]; -. for (n = token = 0; n < len; ++ token) -. if (ok[token]) result[n++] = yyName[token]; -. return result; -. } -. -. /** the generated parser, with debugging messages. -. Maintains a state and a value stack, currently with fixed maximum size. -. @param yyLex scanner. -. @param yydebug debug message writer implementing yyDebug, or null. -. @return result of the last reduction, if any. -. @throws yyException on irrecoverable parse error. -. */ -. public Object yyparse (yyInput yyLex, Object yydebug) -. throws java.io.IOException, yyException { -t this.yydebug = (jay.yydebug.yyDebug)yydebug; -. return yyparse(yyLex); -. } -. -. /** initial size and increment of the state/value stack [default 256]. -. This is not final so that it can be overwritten outside of invocations -. of yyparse(). -. */ -. protected int yyMax; -. -. /** executed at the beginning of a reduce action. -. Used as $$ = yyDefault($1), prior to the user-specified action, if any. -. Can be overwritten to provide deep copy, etc. -. @param first value for $1, or null. -. @return first. -. */ -. protected Object yyDefault (Object first) { -. return first; -. } -. -. /** the generated parser. -. Maintains a state and a value stack, currently with fixed maximum size. -. @param yyLex scanner. -. @return result of the last reduction, if any. -. @throws yyException on irrecoverable parse error. -. */ -. public Object yyparse (yyInput yyLex) -. throws java.io.IOException, yyException { -. // yyCheck durch yyCheckInit.yyCheck; ersetzt PL 23.1.01 -. yyCheckInit.yyCheckInit(); // initial yyCheck eingefuegt PL 25.1.01 -. if (yyMax <= 0) yyMax = 256; // initial size -. int yyState = 0, yyStates[] = new int[yyMax]; // state stack -. Object yyVal = null, yyVals[] = new Object[yyMax]; // value stack -. int yyToken = -1; // current input -. int yyErrorFlag = 0; // #tks to shift -. Scanner yyScanner = (Scanner)yyLex; -. String yyErrorString = "irrecoverable syntax error"; -. - local ## %{ ... %} after the first %% - -. yyLoop: for (int yyTop = 0;; ++ yyTop) { -. if (yyTop >= yyStates.length) { // dynamically increase -. int[] i = new int[yyStates.length+yyMax]; -. System.arraycopy(yyStates, 0, i, 0, yyStates.length); -. yyStates = i; -. Object[] o = new Object[yyVals.length+yyMax]; -. System.arraycopy(yyVals, 0, o, 0, yyVals.length); -. yyVals = o; -. } -. yyStates[yyTop] = yyState; -. yyVals[yyTop] = yyVal; -t if (yydebug != null) yydebug.push(yyState, yyVal); -. -. yyDiscarded: for (;;) { // discarding a token does not change stack -. int yyN; -. if ((yyN = yyDefRed[yyState]) == 0) { // else [default] reduce (yyN) -. if (yyToken < 0) { -. yyToken = yyLex.advance() ? yyLex.token() : 0; -t if (yydebug != null) -t yydebug.lex(yyState, yyToken, yyname(yyToken), yyLex.value()); -. } -. if ((yyN = yySindex[yyState]) != 0 && (yyN += yyToken) >= 0 -. && yyN < yyTable.length && yyCheckInit.yyCheck[yyN] == yyToken) { -t if (yydebug != null) -t yydebug.shift(yyState, yyTable[yyN], yyErrorFlag-1); -. yyState = yyTable[yyN]; // shift to yyN -. yyVal = yyLex.value(); -. yyToken = -1; -. if (yyErrorFlag > 0) -- yyErrorFlag; -. continue yyLoop; -. } -. if ((yyN = yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0 -. && yyN < yyTable.length && yyCheckInit.yyCheck[yyN] == yyToken) -. yyN = yyTable[yyN]; // reduce (yyN) -. else -. switch (yyErrorFlag) { -. -. case 0: -. yyErrorString=yyerror("syntax error", yyExpecting(yyState)); -t if (yydebug != null) yydebug.error("syntax error"); -. -. case 1: case 2: -. yyErrorFlag = 3; -. do { -. if ((yyN = yySindex[yyStates[yyTop]]) != 0 -. && (yyN += yyErrorCode) >= 0 && yyN < yyTable.length -. && yyCheckInit.yyCheck[yyN] == yyErrorCode) { -t if (yydebug != null) -t yydebug.shift(yyStates[yyTop], yyTable[yyN], 3); -. yyState = yyTable[yyN]; -. yyVal = yyLex.value(); -. continue yyLoop; -. } -t if (yydebug != null) yydebug.pop(yyStates[yyTop]); -. } while (-- yyTop >= 0); -t if (yydebug != null) yydebug.reject(); -. throw new yyException(yyErrorString, yyScanner.token); -. -. case 3: -. if (yyToken == 0) { -t if (yydebug != null) yydebug.reject(); -. throw new yyException(yyErrorString+"at end-of-file", yyScanner.token); -. } -t if (yydebug != null) -t yydebug.discard(yyState, yyToken, yyname(yyToken), -t yyLex.value()); -. yyToken = -1; -. continue yyDiscarded; // leave stack alone -. } -. } -. int yyV = yyTop + 1-yyLen[yyN]; -t if (yydebug != null) -t yydebug.reduce(yyState, yyStates[yyV-1], yyN, yyRule[yyN], yyLen[yyN]); -. yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]); -. switch (yyN) { - - actions ## code from the actions within the grammar - -. } -. yyTop -= yyLen[yyN]; -. yyState = yyStates[yyTop]; -. int yyM = yyLhs[yyN]; -. if (yyState == 0 && yyM == 0) { -t if (yydebug != null) yydebug.shift(0, yyFinal); -. yyState = yyFinal; -. if (yyToken < 0) { -. yyToken = yyLex.advance() ? yyLex.token() : 0; -t if (yydebug != null) -t yydebug.lex(yyState, yyToken,yyname(yyToken), yyLex.value()); -. } -. if (yyToken == 0) { -t if (yydebug != null) yydebug.accept(yyVal); -. return yyVal; -. } -. continue yyLoop; -. } -. if ((yyN = yyGindex[yyM]) != 0 && (yyN += yyState) >= 0 -. && yyN < yyTable.length && yyCheckInit.yyCheck[yyN] == yyState) -. yyState = yyTable[yyN]; -. else -. yyState = yyDgoto[yyM]; -t if (yydebug != null) yydebug.shift(yyStates[yyTop], yyState); -. continue yyLoop; -. } -. } -. } -. - tables ## tables for rules, default reduction, and action calls -. - epilog ## text following second %% diff --git a/tools/tools.iml b/tools/tools.iml deleted file mode 100644 index 8021953e..00000000 --- a/tools/tools.iml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file