Move o.e.dltk.python.core to Java 8.

Bump BREE, enable save actions and etc.


Change-Id: Ie7c124c282edb4d116e22e39db8749125310e8b0
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/plugins/org.eclipse.dltk.python.core/.classpath b/plugins/org.eclipse.dltk.python.core/.classpath
index ce73933..eca7bdb 100644
--- a/plugins/org.eclipse.dltk.python.core/.classpath
+++ b/plugins/org.eclipse.dltk.python.core/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/plugins/org.eclipse.dltk.python.core/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.dltk.python.core/.settings/org.eclipse.jdt.core.prefs
index 613b1b7..a698e59 100644
--- a/plugins/org.eclipse.dltk.python.core/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/org.eclipse.dltk.python.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,12 @@
-#Mon Jul 21 22:30:13 NOVST 2008
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+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.4
+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=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
+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/plugins/org.eclipse.dltk.python.core/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.dltk.python.core/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..43df84b
--- /dev/null
+++ b/plugins/org.eclipse.dltk.python.core/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,59 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=true
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=true
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/org.eclipse.dltk.python.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.dltk.python.core/META-INF/MANIFEST.MF
index d222870..5fc979f 100644
--- a/plugins/org.eclipse.dltk.python.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.dltk.python.core/META-INF/MANIFEST.MF
@@ -10,7 +10,6 @@
  org.eclipse.dltk.core;bundle-version="0.0.0",
  org.eclipse.core.resources,
  org.antlr.runtime;bundle-version="[3.0.0,3.1.0)"
-Eclipse-AutoStart: true
 Import-Package: org.eclipse.core.resources
 Export-Package: org.eclipse.dltk.python.core,
  org.eclipse.dltk.python.internal.core.evaluation;x-friends:="org.eclipse.dltk.python.tests",
@@ -21,5 +20,5 @@
  org.eclipse.dltk.python.parser,
  org.eclipse.dltk.python.parser.ast,
  org.eclipse.dltk.python.parser.ast.expressions
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/core/PythonContentDescriber.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/core/PythonContentDescriber.java
index fce03c0..29f0b23 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/core/PythonContentDescriber.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/core/PythonContentDescriber.java
@@ -10,16 +10,19 @@
 
 public class PythonContentDescriber implements ITextContentDescriber {
 
+	@Override
 	public int describe(Reader contents, IContentDescription description)
 			throws IOException {
 		return INDETERMINATE;
 	}
 
+	@Override
 	public int describe(InputStream contents, IContentDescription description)
 			throws IOException {
 		return INDETERMINATE;
 	}
 
+	@Override
 	public QualifiedName[] getSupportedOptions() {
 		return null;
 	}
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/core/PythonLanguageToolkit.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/core/PythonLanguageToolkit.java
index ff26608..c17623e 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/core/PythonLanguageToolkit.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/core/PythonLanguageToolkit.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.core;
 
@@ -22,6 +21,7 @@
 	public PythonLanguageToolkit() {
 	}
 
+	@Override
 	public boolean languageSupportZIPBuildpath() {
 		return true;
 	}
@@ -29,6 +29,7 @@
 	public boolean validateSourcePackage(IPath path) {
 		File file = new File(path.toOSString());
 		String members[] = file.list(new FilenameFilter() {
+			@Override
 			public boolean accept(File dir, String name) {
 				if (name.toLowerCase().equals("__init__.py")) {
 					return true;
@@ -42,6 +43,7 @@
 		return false;
 	}
 
+	@Override
 	public String getNatureId() {
 		return PythonNature.NATURE_ID;
 	}
@@ -50,14 +52,17 @@
 		return sInstance;
 	}
 
+	@Override
 	public String getLanguageName() {
 		return "Python";
 	}
 
+	@Override
 	public String getLanguageContentType() {
 		return "org.eclipse.dltk.pythonContentType";
 	}
-	
+
+	@Override
 	public String getPreferenceQualifier() {
 		return PythonPlugin.PLUGIN_ID;
 	}
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/core/PythonPlugin.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/core/PythonPlugin.java
index 65c7c43..b666991 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/core/PythonPlugin.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/core/PythonPlugin.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.core;
 
@@ -21,7 +20,7 @@
 
 	//The shared instance.
 	private static PythonPlugin plugin;
-	
+
 	/**
 	 * The constructor.
 	 */
@@ -32,6 +31,7 @@
 	/**
 	 * This method is called upon plug-in activation
 	 */
+	@Override
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
 	}
@@ -39,6 +39,7 @@
 	/**
 	 * This method is called when the plug-in is stopped
 	 */
+	@Override
 	public void stop(BundleContext context) throws Exception {
 		super.stop(context);
 		plugin = null;
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/PythonCorePreferenceInitializer.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/PythonCorePreferenceInitializer.java
index d0aee6f..32c3501 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/PythonCorePreferenceInitializer.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/PythonCorePreferenceInitializer.java
@@ -9,6 +9,7 @@
 public class PythonCorePreferenceInitializer extends
 		AbstractPreferenceInitializer {
 
+	@Override
 	public void initializeDefaultPreferences() {
 		Preferences store = PythonPlugin.getDefault().getPluginPreferences();
 		TaskTagUtils.initializeDefaultValues(store);
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/codeassist/PythonAssistParser.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/codeassist/PythonAssistParser.java
index 3538595..8fbee3b 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/codeassist/PythonAssistParser.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/codeassist/PythonAssistParser.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.core.codeassist;
 
@@ -32,6 +31,7 @@
 		parser = DLTKLanguageManager.getSourceParser(PythonNature.NATURE_ID);
 	}
 
+	@Override
 	public ASTNode getAssistNodeParent() {
 		return assistNodeParent;
 	}
@@ -70,10 +70,12 @@
 		return elements;
 	}
 
+	@Override
 	public void setSource(ModuleDeclaration unit) {
 		this.module = unit;
 	}
 
+	@Override
 	public ModuleDeclaration parse(IModuleSource sourceUnit) {
 		ModuleDeclaration module = (ModuleDeclaration) this.parser.parse(sourceUnit, null);
 		module.rebuild();
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/codeassist/PythonSelectionEngine.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/codeassist/PythonSelectionEngine.java
index 9957135..36d5286 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/codeassist/PythonSelectionEngine.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/codeassist/PythonSelectionEngine.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.core.codeassist;
 
@@ -31,7 +30,7 @@
 
 	private AssistParser parser = new AssistParser(new PythonSelectionParser());
 
-	private List selectionElements = new ArrayList();
+	private List<IModelElement> selectionElements = new ArrayList<>();
 
 	// private IDLTKLanguageToolkit toolkit;
 
@@ -45,6 +44,7 @@
 		// nameEnvironment);
 	}
 
+	@Override
 	public IModelElement[] select(IModuleSource sourceUnit,
 			int selectionSourceStart, int selectionSourceEnd) {
 
@@ -69,7 +69,7 @@
 			System.out.println('"');
 		}
 		try {
-			ModuleDeclaration parsedUnit = (ModuleDeclaration) this.parser
+			ModuleDeclaration parsedUnit = this.parser
 					.parse(sourceUnit);
 			if (parsedUnit != null) {
 				try {
@@ -109,7 +109,7 @@
 			}
 		}
 
-		return (IModelElement[]) selectionElements
+		return selectionElements
 				.toArray(new IModelElement[selectionElements.size()]);
 	}
 
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/codeassist/PythonSelectionParser.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/codeassist/PythonSelectionParser.java
index 1f0b155..6676841 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/codeassist/PythonSelectionParser.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/codeassist/PythonSelectionParser.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.core.codeassist;
 
@@ -15,15 +14,18 @@
 public class PythonSelectionParser extends PythonAssistParser {
 	private final boolean VERBOSE = true;
 
+	@Override
 	public void handleNotInElement(ASTNode node, int position) {
 	}
 
+	@Override
 	public void parseBlockStatements(ASTNode node, ASTNode inNode, int position) {
 		if( VERBOSE ) {
 			System.out.println(node);
 		}
 	}
 
+	@Override
 	public ModuleDeclaration getModule() {
 		return null;
 	}
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/PythonASTFindVisitor.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/PythonASTFindVisitor.java
index 318efba..35b68b1 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/PythonASTFindVisitor.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/PythonASTFindVisitor.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.core.evaluation;
 
@@ -82,6 +81,7 @@
 		return this.fParentsMap;
 	}
 
+	@Override
 	public boolean visit(Expression expression) throws Exception {
 
 		this.putChild(expression);
@@ -136,6 +136,7 @@
 		return true;
 	}
 
+	@Override
 	public boolean visit(MethodDeclaration method) throws Exception {
 		this.innerCount++;
 		if (this.innerCount > 1) {
@@ -152,6 +153,7 @@
 		return true;
 	}
 
+	@Override
 	public boolean visit(Statement statement) throws Exception {
 		if (statement instanceof Argument) {
 			this.putPrevChild(statement);
@@ -195,6 +197,7 @@
 		return true;
 	}
 
+	@Override
 	public boolean visit(ModuleDeclaration declaration) throws Exception {
 		this.innerCount++;
 		if (this.innerCount > 1) {
@@ -207,6 +210,7 @@
 		return true;
 	}
 
+	@Override
 	public boolean visit(TypeDeclaration typeDeclaration) throws Exception {
 		this.innerCount++;
 		if (this.innerCount > 1) {
@@ -224,6 +228,7 @@
 		return true;
 	}
 
+	@Override
 	public boolean endvisit(Expression s) throws Exception {
 		// if( s instanceof Assignment ) {
 		this.fParents.remove(s);
@@ -232,18 +237,21 @@
 		return true;
 	}
 
+	@Override
 	public boolean endvisit(MethodDeclaration method) throws Exception {
 		this.innerCount--;
 		this.fParents.remove(method);
 		return true;
 	}
 
+	@Override
 	public boolean endvisit(ModuleDeclaration declaration) throws Exception {
 		this.innerCount--;
 		this.fParents.remove(declaration);
 		return true;
 	}
 
+	@Override
 	public boolean endvisit(Statement statement) throws Exception {
 		// if( !( statement instanceof Block ) ) {
 		this.fParents.remove(statement);
@@ -251,6 +259,7 @@
 		return true;
 	}
 
+	@Override
 	public boolean endvisit(TypeDeclaration typeDeclaration) throws Exception {
 		this.innerCount--;
 		this.fParents.remove(typeDeclaration);
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/PythonASTLevelVisitor.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/PythonASTLevelVisitor.java
index 5acbbf8..4875afe 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/PythonASTLevelVisitor.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/PythonASTLevelVisitor.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.core.evaluation;
 
@@ -29,9 +28,9 @@
 
 /**
  * Return all nodes on selected AST level. Return only Assignment and Method elements.
- * 
+ *
  * @author haiodo
- * 
+ *
  */
 
 public class PythonASTLevelVisitor extends ASTVisitor
@@ -51,7 +50,8 @@
 		return this.fAppropriateNodes;
 	}
 
-	
+
+	@Override
 	public boolean visit( Expression expression ) throws Exception {
 
 		if( !first ) {
@@ -69,7 +69,8 @@
 		return true;
 	}
 
-	
+
+	@Override
 	public boolean visit( Statement statement ) throws Exception {
 
 		// Not adding arguments here.
@@ -113,7 +114,8 @@
 		return true;
 	}
 
-	
+
+	@Override
 	public boolean visit( MethodDeclaration method ) throws Exception {
 
 		this.count++;
@@ -130,7 +132,8 @@
 		return true;
 	}
 
-	
+
+	@Override
 	public boolean visit( ModuleDeclaration declaration ) throws Exception {
 
 		this.count++;
@@ -140,7 +143,8 @@
 		return true;
 	}
 
-	
+
+	@Override
 	public boolean visit( TypeDeclaration typeDeclaration ) throws Exception {
 
 		this.count++;
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/types/ImportedCallType.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/types/ImportedCallType.java
index b35827e..3825649 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/types/ImportedCallType.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/types/ImportedCallType.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.core.evaluation.types;
 
@@ -13,22 +12,24 @@
 import org.eclipse.dltk.ti.types.IEvaluatedType;
 
 public class ImportedCallType implements IEvaluatedType
-{	
+{
 	private IModelElement fModelElement = null;
 	public ImportedCallType( IModelElement element ) {
 
 		this.fModelElement = element;
 	}
-	
+
 	public IModelElement getElement() {
 		return this.fModelElement;
 	}
 
+	@Override
 	public String getTypeName()
-	{				
+	{
 		return "imported call type";
 	}
 
+	@Override
 	public boolean subtypeOf(IEvaluatedType type) {
 		// TODO Auto-generated method stub
 		return false;
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/types/ImportedType.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/types/ImportedType.java
index 2004a43..1da92be 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/types/ImportedType.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/types/ImportedType.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.core.evaluation.types;
 
@@ -21,12 +20,13 @@
 		this.fType = type;
 		this.fModule = module;
 	}
-	
-	
+
+
+	@Override
 	public boolean equals( Object obj ) {
 
 		if( obj instanceof ImportedType ) {
-			ImportedType o2 = (ImportedType)obj;			
+			ImportedType o2 = (ImportedType)obj;
 			if( this.fModule != null && this.fModule.equals( o2.getModule() ) ) {
 				if( this.fType != null && this.fType.equals( o2.getType() ) ) {
 					return true;
@@ -42,9 +42,10 @@
 		return this.fType;
 	}
 
+	@Override
 	public String getTypeName()
 	{
-		if( this.fType != null && this.fModule != null ) { 
+		if( this.fType != null && this.fModule != null ) {
 			return this.fType.getTypeName();
 		}
 		else {
@@ -53,6 +54,7 @@
 	}
 
 
+	@Override
 	public boolean subtypeOf(IEvaluatedType type) {
 		// TODO Auto-generated method stub
 		return false;
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/types/ModuleType.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/types/ModuleType.java
index 8be6e1c..dd7eab8 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/types/ModuleType.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/evaluation/types/ModuleType.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.core.evaluation.types;
 
@@ -14,15 +13,16 @@
 public class ModuleType implements IEvaluatedType
 {
 	private String fModule = null;
-	
+
 	public ModuleType( String module ) {
 		this.fModule = module;
 	}
-	
+
 	public String getModule() {
 		return this.fModule;
 	}
 
+	@Override
 	public String getTypeName( ) {
 		if( this.fModule != null ) {
 			return "module:" + this.fModule;
@@ -32,6 +32,7 @@
 		}
 	}
 
+	@Override
 	public boolean subtypeOf(IEvaluatedType type) {
 		// TODO Auto-generated method stub
 		return false;
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonScriptFilteringReader.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonScriptFilteringReader.java
index 6c919a2..964d257 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonScriptFilteringReader.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonScriptFilteringReader.java
@@ -1,18 +1,11 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
-/*
- * Created on 21.05.2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Script - Code Style - Code Templates
- */
 package org.eclipse.dltk.python.internal.core.parser;
 
 import java.io.IOException;
@@ -20,7 +13,7 @@
 
 /**
  * @author kor
- * 
+ *
  * TODO To change the template for this generated type comment go to Window -
  * Preferences - Script - Code Style - Code Templates
  */
@@ -65,6 +58,7 @@
 		this.position = 0;
 	}
 
+	@Override
 	public void reset() throws IOException {
 		position = 0;
 	}
@@ -148,6 +142,7 @@
 		}
 	}
 
+	@Override
 	public int read() throws IOException {
 		if (ready()) {
 			c = content[position];
@@ -221,13 +216,16 @@
 		}
 	}
 
+	@Override
 	public boolean ready() throws IOException {
 		return position < content.length;
 	}
 
+	@Override
 	public void close() throws IOException {
 	}
 
+	@Override
 	public int read(char[] pArg0, int off, int length) throws IOException {
 		int code = 0;
 		int e = off + length;
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonSourceElementParser.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonSourceElementParser.java
index 8984074..3a92402 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonSourceElementParser.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonSourceElementParser.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.core.parser;
 
@@ -16,16 +15,12 @@
 
 public class PythonSourceElementParser extends AbstractSourceElementParser {
 
-	/*
-	 * @see org.eclipse.dltk.core.AbstractSourceElementParser#createVisitor()
-	 */
+	@Override
 	protected SourceElementRequestVisitor createVisitor() {
 		return new PythonSourceElementRequestor(getRequestor());
 	}
 
-	/*
-	 * @see org.eclipse.dltk.core.AbstractSourceElementParser#getNatureId()
-	 */
+	@Override
 	protected String getNatureId() {
 		return PythonNature.NATURE_ID;
 	}
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonSourceParser.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonSourceParser.java
index 0a64509..f51e3f1 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonSourceParser.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonSourceParser.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.core.parser;
 
@@ -39,6 +38,7 @@
 			super(lexer);
 		}
 
+		@Override
 		public Token nextToken() {
 			startPos = getCharPositionInLine();
 			return super.nextToken();
@@ -47,8 +47,9 @@
 
 	/**
 	 * Parses selected context to module declaration using python parser.
-	 * 
+	 *
 	 */
+	@Override
 	public IModuleDeclaration parse(IModuleSource input,
 			IProblemReporter reporter) {// throws
 		this.problemReporter = reporter;
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonSourceParserFactory.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonSourceParserFactory.java
index 6cf04f6..9e827ba 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonSourceParserFactory.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonSourceParserFactory.java
@@ -8,9 +8,7 @@
  */
 public class PythonSourceParserFactory implements ISourceParserFactory {
 
-	/*
-	 * @see org.eclipse.dltk.ast.parser.ISourceParserFactory#createSourceParser()
-	 */
+	@Override
 	public ISourceParser createSourceParser() {
 		return new PythonSourceParser();
 	}
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonTodoParserType.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonTodoParserType.java
index d7f795b..9363a38 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonTodoParserType.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/PythonTodoParserType.java
@@ -8,6 +8,7 @@
 
 public class PythonTodoParserType extends AbstractTodoTaskBuildParticipantType {
 
+	@Override
 	protected ITodoTaskPreferences getPreferences(IScriptProject project) {
 		return new TodoTaskPreferencesOnPreferenceLookupDelegate(
 				PythonPlugin.PLUGIN_ID, project);
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/visitors/PythonSourceElementRequestor.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/visitors/PythonSourceElementRequestor.java
index 8906950..6ba6422 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/visitors/PythonSourceElementRequestor.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/visitors/PythonSourceElementRequestor.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.core.parser.visitors;
 
@@ -90,6 +89,7 @@
 			return this.fToNode;
 		}
 
+		@Override
 		public boolean equals(Object obj) {
 
 			if (obj instanceof TypeField) {
@@ -100,6 +100,7 @@
 			return super.equals(obj);
 		}
 
+		@Override
 		public String toString() {
 
 			return this.fName;
@@ -179,7 +180,7 @@
 			Statement val) {
 		// for module static of class static variables.
 
-		if (canAddVariables((ASTNode) this.fNodes.peek(), var.getName())) {
+		if (canAddVariables(this.fNodes.peek(), var.getName())) {
 			ISourceElementRequestor.FieldInfo info = new ISourceElementRequestor.FieldInfo();
 			info.modifiers = Modifiers.AccStatic;
 			info.name = var.getName();
@@ -222,8 +223,8 @@
 								.sourceStart(), var.sourceEnd(),
 								initialValueStart, initialValueEnd);
 						String initialString = this.makeValue(right);
-						ASTNode method = (ASTNode) this.fNodes.pop();
-						ASTNode toClass = (ASTNode) this.fNodes.peek();
+						ASTNode method = this.fNodes.pop();
+						ASTNode toClass = this.fNodes.peek();
 						this.fNodes.push(method);
 						if (toClass instanceof TypeDeclaration) {
 							List decorators = ((MethodDeclaration) method)
@@ -284,6 +285,7 @@
 		}
 	}
 
+	@Override
 	public boolean visit(Expression expression) throws Exception {
 
 		if (expression instanceof Assignment) {
@@ -320,10 +322,12 @@
 		return true;
 	}
 
+	@Override
 	public boolean endvisit(Expression expression) throws Exception {
 		return true;
 	}
 
+	@Override
 	protected void onEndVisitMethod(MethodDeclaration method) {
 
 		if (fNotAddedFields.size() >= 1) {
@@ -352,6 +356,7 @@
 		}
 	}
 
+	@Override
 	public boolean visit(Statement statement) throws Exception {
 
 		if (statement instanceof PythonImportStatement) {
@@ -426,10 +431,12 @@
 		}
 	}
 
+	@Override
 	public boolean endvisit(Statement s) throws Exception {
 		return true;
 	}
 
+	@Override
 	public boolean visit(MethodDeclaration method) throws Exception {
 		this.fNodes.push(method);
 		List/* < Argument > */args = method.getArguments();
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/visitors/PythonVersionReportVisitor.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/visitors/PythonVersionReportVisitor.java
index 8a25f3a..b539dbd 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/visitors/PythonVersionReportVisitor.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parser/visitors/PythonVersionReportVisitor.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.core.parser.visitors;
 
@@ -24,9 +23,9 @@
 
 /**
  * Used to detect used python version.
- * 
+ *
  * @author haiodo
- * 
+ *
  */
 public class PythonVersionReportVisitor extends ASTVisitor {
 
@@ -47,7 +46,7 @@
 
 	/**
 	 * Removed ^= Added //= In term added //.
-	 * 
+	 *
 	 */
 	public static final int VERSION_22x = 0x0202;
 
@@ -67,7 +66,7 @@
 
 	/**
 	 * Construct version detect visitor.
-	 * 
+	 *
 	 * TODO: Add reporting handler here.
 	 */
 	public PythonVersionReportVisitor(int version) {
@@ -76,7 +75,7 @@
 
 	/**
 	 * Return requred Python version by selected AST None.
-	 * 
+	 *
 	 * @return
 	 */
 	public int getRequredVersion() {
@@ -106,6 +105,7 @@
 		return "Python version not determined.";
 	}
 
+	@Override
 	public boolean visit(Expression expression) throws Exception {
 		if (expression instanceof NotStrictAssignment) {
 			switch (expression.getKind()) {
@@ -144,6 +144,7 @@
 		return true;
 	}
 
+	@Override
 	public boolean visit(MethodDeclaration s) throws Exception {
 		List decorators = s.getDecorators();
 		if (decorators != null && decorators.size() > 0) {
@@ -164,6 +165,7 @@
 		}
 	}
 
+	@Override
 	public boolean visit(Statement statement) throws Exception {
 
 		if (statement instanceof PythonYieldStatement) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/PythonTokenStream.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/PythonTokenStream.java
index a2d2317..e398657 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/PythonTokenStream.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/PythonTokenStream.java
@@ -24,6 +24,7 @@
 		push(FIRST_CHAR_POSITION);
 	}
 
+	@Override
 	public Token nextToken() {
 		if (tokenBuffer.size() > 0) {
 			Token t = (Token) tokenBuffer.firstElement();
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3Lexer.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3Lexer.java
index 14ee293..b26fce9 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3Lexer.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3Lexer.java
@@ -3,10 +3,18 @@
 	package org.eclipse.dltk.python.internal.core.parsers;
 
 
-import org.antlr.runtime.*;
-import java.util.Stack;
-import java.util.List;
-import java.util.ArrayList;
+import org.antlr.runtime.BaseRecognizer;
+import org.antlr.runtime.CharStream;
+import org.antlr.runtime.ClassicToken;
+import org.antlr.runtime.DFA;
+import org.antlr.runtime.EarlyExitException;
+import org.antlr.runtime.FailedPredicateException;
+import org.antlr.runtime.IntStream;
+import org.antlr.runtime.Lexer;
+import org.antlr.runtime.MismatchedSetException;
+import org.antlr.runtime.NoViableAltException;
+import org.antlr.runtime.RecognitionException;
+import org.antlr.runtime.Token;
 
 public class python_v3Lexer extends Lexer {
     public static final int SLASHEQUAL=20;
@@ -114,14 +122,17 @@
      */
     public int implicitLineJoiningLevel = 0;
     public int startPos=-1;
-    public void emitErrorMessage(String msg) {
+
+	@Override
+	public void emitErrorMessage(String msg) {
     }
 
-    public python_v3Lexer() {;} 
+    public python_v3Lexer() {;}
     public python_v3Lexer(CharStream input) {
         super(input);
     }
-    public String getGrammarFileName() { return "/home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g"; }
+    @Override
+	public String getGrammarFileName() { return "/home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g"; }
 
     // $ANTLR start T68
     public final void mT68() throws RecognitionException {
@@ -130,7 +141,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:21:5: ( 'def' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:21:7: 'def'
             {
-            match("def"); 
+            match("def");
 
 
             }
@@ -149,7 +160,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:22:5: ( 'print' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:22:7: 'print'
             {
-            match("print"); 
+            match("print");
 
 
             }
@@ -168,7 +179,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:23:5: ( 'del' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:23:7: 'del'
             {
-            match("del"); 
+            match("del");
 
 
             }
@@ -187,7 +198,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:24:5: ( 'pass' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:24:7: 'pass'
             {
-            match("pass"); 
+            match("pass");
 
 
             }
@@ -206,7 +217,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:25:5: ( 'break' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:25:7: 'break'
             {
-            match("break"); 
+            match("break");
 
 
             }
@@ -225,7 +236,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:26:5: ( 'continue' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:26:7: 'continue'
             {
-            match("continue"); 
+            match("continue");
 
 
             }
@@ -244,7 +255,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:27:5: ( 'return' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:27:7: 'return'
             {
-            match("return"); 
+            match("return");
 
 
             }
@@ -263,7 +274,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:28:5: ( 'yield' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:28:7: 'yield'
             {
-            match("yield"); 
+            match("yield");
 
 
             }
@@ -282,7 +293,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:29:5: ( 'raise' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:29:7: 'raise'
             {
-            match("raise"); 
+            match("raise");
 
 
             }
@@ -301,7 +312,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:30:5: ( 'import' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:30:7: 'import'
             {
-            match("import"); 
+            match("import");
 
 
             }
@@ -320,7 +331,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:31:5: ( 'from' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:31:7: 'from'
             {
-            match("from"); 
+            match("from");
 
 
             }
@@ -339,7 +350,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:32:5: ( 'as' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:32:7: 'as'
             {
-            match("as"); 
+            match("as");
 
 
             }
@@ -358,7 +369,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:33:5: ( 'global' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:33:7: 'global'
             {
-            match("global"); 
+            match("global");
 
 
             }
@@ -377,7 +388,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:34:5: ( 'exec' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:34:7: 'exec'
             {
-            match("exec"); 
+            match("exec");
 
 
             }
@@ -396,7 +407,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:35:5: ( 'in' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:35:7: 'in'
             {
-            match("in"); 
+            match("in");
 
 
             }
@@ -415,7 +426,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:36:5: ( 'assert' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:36:7: 'assert'
             {
-            match("assert"); 
+            match("assert");
 
 
             }
@@ -434,7 +445,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:37:5: ( 'if' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:37:7: 'if'
             {
-            match("if"); 
+            match("if");
 
 
             }
@@ -453,7 +464,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:38:5: ( 'elif' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:38:7: 'elif'
             {
-            match("elif"); 
+            match("elif");
 
 
             }
@@ -472,7 +483,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:39:5: ( 'else' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:39:7: 'else'
             {
-            match("else"); 
+            match("else");
 
 
             }
@@ -491,7 +502,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:40:5: ( 'while' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:40:7: 'while'
             {
-            match("while"); 
+            match("while");
 
 
             }
@@ -510,7 +521,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:41:5: ( 'for' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:41:7: 'for'
             {
-            match("for"); 
+            match("for");
 
 
             }
@@ -529,7 +540,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:42:5: ( 'try' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:42:7: 'try'
             {
-            match("try"); 
+            match("try");
 
 
             }
@@ -548,7 +559,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:43:5: ( 'except' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:43:7: 'except'
             {
-            match("except"); 
+            match("except");
 
 
             }
@@ -567,7 +578,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:44:5: ( 'finally' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:44:7: 'finally'
             {
-            match("finally"); 
+            match("finally");
 
 
             }
@@ -586,7 +597,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:45:5: ( 'or' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:45:7: 'or'
             {
-            match("or"); 
+            match("or");
 
 
             }
@@ -605,7 +616,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:46:5: ( 'and' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:46:7: 'and'
             {
-            match("and"); 
+            match("and");
 
 
             }
@@ -624,7 +635,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:47:5: ( 'not' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:47:7: 'not'
             {
-            match("not"); 
+            match("not");
 
 
             }
@@ -643,7 +654,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:48:5: ( 'is' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:48:7: 'is'
             {
-            match("is"); 
+            match("is");
 
 
             }
@@ -662,7 +673,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:49:5: ( 'lambda' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:49:7: 'lambda'
             {
-            match("lambda"); 
+            match("lambda");
 
 
             }
@@ -681,7 +692,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:50:5: ( 'with' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:50:7: 'with'
             {
-            match("with"); 
+            match("with");
 
 
             }
@@ -700,7 +711,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:51:5: ( 'class' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:51:7: 'class'
             {
-            match("class"); 
+            match("class");
 
 
             }
@@ -719,7 +730,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1672:8: ( '(' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1672:10: '('
             {
-            match('('); 
+            match('(');
             implicitLineJoiningLevel++;
 
             }
@@ -738,7 +749,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1674:8: ( ')' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1674:10: ')'
             {
-            match(')'); 
+            match(')');
             implicitLineJoiningLevel--;
 
             }
@@ -757,7 +768,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1676:8: ( '[' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1676:10: '['
             {
-            match('['); 
+            match('[');
             implicitLineJoiningLevel++;
 
             }
@@ -776,7 +787,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1678:8: ( ']' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1678:10: ']'
             {
-            match(']'); 
+            match(']');
             implicitLineJoiningLevel--;
 
             }
@@ -795,7 +806,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1680:8: ( ':' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1680:10: ':'
             {
-            match(':'); 
+            match(':');
 
             }
 
@@ -813,7 +824,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1682:7: ( ',' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1682:9: ','
             {
-            match(','); 
+            match(',');
 
             }
 
@@ -831,7 +842,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1684:6: ( ';' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1684:8: ';'
             {
-            match(';'); 
+            match(';');
 
             }
 
@@ -849,7 +860,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1686:6: ( '+' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1686:8: '+'
             {
-            match('+'); 
+            match('+');
 
             }
 
@@ -867,7 +878,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1688:7: ( '-' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1688:9: '-'
             {
-            match('-'); 
+            match('-');
 
             }
 
@@ -885,7 +896,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1690:6: ( '*' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1690:8: '*'
             {
-            match('*'); 
+            match('*');
 
             }
 
@@ -903,7 +914,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1692:7: ( '/' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1692:9: '/'
             {
-            match('/'); 
+            match('/');
 
             }
 
@@ -921,7 +932,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1694:6: ( '|' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1694:8: '|'
             {
-            match('|'); 
+            match('|');
 
             }
 
@@ -939,7 +950,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1696:7: ( '&' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1696:9: '&'
             {
-            match('&'); 
+            match('&');
 
             }
 
@@ -957,7 +968,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1698:6: ( '<' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1698:8: '<'
             {
-            match('<'); 
+            match('<');
 
             }
 
@@ -975,7 +986,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1700:9: ( '>' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1700:11: '>'
             {
-            match('>'); 
+            match('>');
 
             }
 
@@ -993,7 +1004,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1702:8: ( '=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1702:10: '='
             {
-            match('='); 
+            match('=');
 
             }
 
@@ -1011,7 +1022,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1704:9: ( '%' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1704:11: '%'
             {
-            match('%'); 
+            match('%');
 
             }
 
@@ -1029,7 +1040,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1706:11: ( '`' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1706:13: '`'
             {
-            match('`'); 
+            match('`');
 
             }
 
@@ -1047,7 +1058,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1708:8: ( '{' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1708:10: '{'
             {
-            match('{'); 
+            match('{');
             implicitLineJoiningLevel++;
 
             }
@@ -1066,7 +1077,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1710:8: ( '}' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1710:10: '}'
             {
-            match('}'); 
+            match('}');
             implicitLineJoiningLevel--;
 
             }
@@ -1085,7 +1096,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1712:12: ( '^' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1712:14: '^'
             {
-            match('^'); 
+            match('^');
 
             }
 
@@ -1103,7 +1114,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1714:7: ( '~' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1714:9: '~'
             {
-            match('~'); 
+            match('~');
 
             }
 
@@ -1121,7 +1132,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1716:7: ( '==' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1716:9: '=='
             {
-            match("=="); 
+            match("==");
 
 
             }
@@ -1140,7 +1151,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1718:10: ( '!=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1718:12: '!='
             {
-            match("!="); 
+            match("!=");
 
 
             }
@@ -1159,7 +1170,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1720:13: ( '<>' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1720:15: '<>'
             {
-            match("<>"); 
+            match("<>");
 
 
             }
@@ -1178,7 +1189,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1722:11: ( '<=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1722:13: '<='
             {
-            match("<="); 
+            match("<=");
 
 
             }
@@ -1197,7 +1208,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1724:11: ( '<<' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1724:13: '<<'
             {
-            match("<<"); 
+            match("<<");
 
 
             }
@@ -1216,7 +1227,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1726:14: ( '>=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1726:16: '>='
             {
-            match(">="); 
+            match(">=");
 
 
             }
@@ -1235,7 +1246,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1728:12: ( '>>' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1728:14: '>>'
             {
-            match(">>"); 
+            match(">>");
 
 
             }
@@ -1254,7 +1265,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1730:11: ( '+=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1730:13: '+='
             {
-            match("+="); 
+            match("+=");
 
 
             }
@@ -1273,7 +1284,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1732:12: ( '-=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1732:14: '-='
             {
-            match("-="); 
+            match("-=");
 
 
             }
@@ -1292,7 +1303,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1734:12: ( '**' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1734:14: '**'
             {
-            match("**"); 
+            match("**");
 
 
             }
@@ -1311,7 +1322,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1736:11: ( '*=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1736:13: '*='
             {
-            match("*="); 
+            match("*=");
 
 
             }
@@ -1330,7 +1341,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1738:13: ( '//' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1738:15: '//'
             {
-            match("//"); 
+            match("//");
 
 
             }
@@ -1349,7 +1360,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1740:12: ( '/=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1740:14: '/='
             {
-            match("/="); 
+            match("/=");
 
 
             }
@@ -1368,7 +1379,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1742:11: ( '|=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1742:13: '|='
             {
-            match("|="); 
+            match("|=");
 
 
             }
@@ -1387,7 +1398,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1744:14: ( '%=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1744:16: '%='
             {
-            match("%="); 
+            match("%=");
 
 
             }
@@ -1406,7 +1417,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1746:12: ( '&=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1746:14: '&='
             {
-            match("&="); 
+            match("&=");
 
 
             }
@@ -1425,7 +1436,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1748:17: ( '^=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1748:19: '^='
             {
-            match("^="); 
+            match("^=");
 
 
             }
@@ -1444,7 +1455,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1750:16: ( '<<=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1750:18: '<<='
             {
-            match("<<="); 
+            match("<<=");
 
 
             }
@@ -1463,7 +1474,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1752:17: ( '>>=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1752:19: '>>='
             {
-            match(">>="); 
+            match(">>=");
 
 
             }
@@ -1482,7 +1493,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1754:17: ( '**=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1754:19: '**='
             {
-            match("**="); 
+            match("**=");
 
 
             }
@@ -1501,7 +1512,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1756:18: ( '//=' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1756:20: '//='
             {
-            match("//="); 
+            match("//=");
 
 
             }
@@ -1520,7 +1531,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1758:5: ( '.' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1758:7: '.'
             {
-            match('.'); 
+            match('.');
 
             }
 
@@ -1542,14 +1553,14 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1760:11: POINTFLOAT
                     {
-                    mPOINTFLOAT(); 
+                    mPOINTFLOAT();
 
                     }
                     break;
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1760:24: EXPONENTFLOAT
                     {
-                    mEXPONENTFLOAT(); 
+                    mEXPONENTFLOAT();
 
                     }
                     break;
@@ -1584,22 +1595,22 @@
                         case 1 :
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1765:4: DIGITS
                             {
-                            mDIGITS(); 
+                            mDIGITS();
 
                             }
                             break;
 
                     }
 
-                    mFRACTION(); 
+                    mFRACTION();
 
                     }
                     break;
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1765:23: DIGITS '.'
                     {
-                    mDIGITS(); 
-                    match('.'); 
+                    mDIGITS();
+                    match('.');
 
                     }
                     break;
@@ -1619,8 +1630,8 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1768:2: ( '.' DIGITS )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1768:4: '.' DIGITS
             {
-            match('.'); 
-            mDIGITS(); 
+            match('.');
+            mDIGITS();
 
             }
 
@@ -1645,21 +1656,21 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1771:5: DIGITS
                     {
-                    mDIGITS(); 
+                    mDIGITS();
 
                     }
                     break;
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1771:14: POINTFLOAT
                     {
-                    mPOINTFLOAT(); 
+                    mPOINTFLOAT();
 
                     }
                     break;
 
             }
 
-            mExponent(); 
+            mExponent();
 
             }
 
@@ -1677,7 +1688,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1774:5: ( INT ( 'l' | 'L' ) )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1774:9: INT ( 'l' | 'L' )
             {
-            mINT(); 
+            mINT();
             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                 input.consume();
 
@@ -1741,7 +1752,7 @@
 
             }
 
-            mDIGITS(); 
+            mDIGITS();
 
             }
 
@@ -1781,7 +1792,7 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1783:9: '0' ( 'x' | 'X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ( 'l' | 'L' )?
                     {
-                    match('0'); 
+                    match('0');
                     if ( input.LA(1)=='X'||input.LA(1)=='x' ) {
                         input.consume();
 
@@ -1864,7 +1875,7 @@
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1786:9: '0' ( DIGITS )*
                     {
-                    match('0'); 
+                    match('0');
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1786:13: ( DIGITS )*
                     loop8:
                     do {
@@ -1880,7 +1891,7 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1786:13: DIGITS
                     	    {
-                    	    mDIGITS(); 
+                    	    mDIGITS();
 
                     	    }
                     	    break;
@@ -1896,7 +1907,7 @@
                 case 3 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1787:9: '1' .. '9' ( DIGITS )*
                     {
-                    matchRange('1','9'); 
+                    matchRange('1','9');
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1787:18: ( DIGITS )*
                     loop9:
                     do {
@@ -1912,7 +1923,7 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1787:18: DIGITS
                     	    {
-                    	    mDIGITS(); 
+                    	    mDIGITS();
 
                     	    }
                     	    break;
@@ -1945,7 +1956,7 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1791:9: INT ( 'j' | 'J' )
                     {
-                    mINT(); 
+                    mINT();
                     if ( input.LA(1)=='J'||input.LA(1)=='j' ) {
                         input.consume();
 
@@ -1962,7 +1973,7 @@
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1792:9: FLOAT ( 'j' | 'J' )
                     {
-                    mFLOAT(); 
+                    mFLOAT();
                     if ( input.LA(1)=='J'||input.LA(1)=='j' ) {
                         input.consume();
 
@@ -2007,7 +2018,7 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1796:12: '0' .. '9'
             	    {
-            	    matchRange('0','9'); 
+            	    matchRange('0','9');
 
             	    }
             	    break;
@@ -2119,21 +2130,21 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1806:10: 'r'
                     {
-                    match('r'); 
+                    match('r');
 
                     }
                     break;
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1806:14: 'u'
                     {
-                    match('u'); 
+                    match('u');
 
                     }
                     break;
                 case 3 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1806:18: 'ur'
                     {
-                    match("ur"); 
+                    match("ur");
 
 
                     }
@@ -2199,7 +2210,7 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1807:13: '\\'\\'\\'' ( options {greedy=false; } : . )* '\\'\\'\\''
                     {
-                    match("\'\'\'"); 
+                    match("\'\'\'");
 
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1807:22: ( options {greedy=false; } : . )*
                     loop15:
@@ -2237,7 +2248,7 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1807:47: .
                     	    {
-                    	    matchAny(); 
+                    	    matchAny();
 
                     	    }
                     	    break;
@@ -2247,7 +2258,7 @@
                         }
                     } while (true);
 
-                    match("\'\'\'"); 
+                    match("\'\'\'");
 
 
                     }
@@ -2255,7 +2266,7 @@
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1808:13: '\"\"\"' ( options {greedy=false; } : . )* '\"\"\"'
                     {
-                    match("\"\"\""); 
+                    match("\"\"\"");
 
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1808:19: ( options {greedy=false; } : . )*
                     loop16:
@@ -2293,7 +2304,7 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1808:44: .
                     	    {
-                    	    matchAny(); 
+                    	    matchAny();
 
                     	    }
                     	    break;
@@ -2303,7 +2314,7 @@
                         }
                     } while (true);
 
-                    match("\"\"\""); 
+                    match("\"\"\"");
 
 
                     }
@@ -2311,7 +2322,7 @@
                 case 3 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1809:13: '\"' ( ESC | ~ ( '\\\\' | '\\n' | '\"' ) )* '\"'
                     {
-                    match('\"'); 
+                    match('\"');
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1809:17: ( ESC | ~ ( '\\\\' | '\\n' | '\"' ) )*
                     loop17:
                     do {
@@ -2330,7 +2341,7 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1809:18: ESC
                     	    {
-                    	    mESC(); 
+                    	    mESC();
 
                     	    }
                     	    break;
@@ -2356,14 +2367,14 @@
                         }
                     } while (true);
 
-                    match('\"'); 
+                    match('\"');
 
                     }
                     break;
                 case 4 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1810:13: '\\'' ( ESC | ~ ( '\\\\' | '\\n' | '\\'' ) )* '\\''
                     {
-                    match('\''); 
+                    match('\'');
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1810:18: ( ESC | ~ ( '\\\\' | '\\n' | '\\'' ) )*
                     loop18:
                     do {
@@ -2382,7 +2393,7 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1810:19: ESC
                     	    {
-                    	    mESC(); 
+                    	    mESC();
 
                     	    }
                     	    break;
@@ -2408,7 +2419,7 @@
                         }
                     } while (true);
 
-                    match('\''); 
+                    match('\'');
 
                     }
                     break;
@@ -2431,8 +2442,8 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1815:2: ( '\\\\' . )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1815:4: '\\\\' .
             {
-            match('\\'); 
-            matchAny(); 
+            match('\\');
+            matchAny();
 
             }
 
@@ -2449,7 +2460,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1820:2: ( '\\\\' ( '\\r' )? '\\n' ( ' ' | '\\t' )* )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1820:4: '\\\\' ( '\\r' )? '\\n' ( ' ' | '\\t' )*
             {
-            match('\\'); 
+            match('\\');
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1820:9: ( '\\r' )?
             int alt20=2;
             int LA20_0 = input.LA(1);
@@ -2461,14 +2472,14 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1820:10: '\\r'
                     {
-                    match('\r'); 
+                    match('\r');
 
                     }
                     break;
 
             }
 
-            match('\n'); 
+            match('\n');
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1820:22: ( ' ' | '\\t' )*
             loop21:
             do {
@@ -2505,7 +2516,7 @@
 
 
             		 //fModule.acceptLine(getColumn());
-            		 /*newline();*/ channel=HIDDEN; 
+            		 /*newline();*/ channel=HIDDEN;
 
             }
 
@@ -2703,16 +2714,16 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1839:14: ' '
                     	    {
-                    	    match(' '); 
-                    	     spaces++; 
+                    	    match(' ');
+                    	     spaces++;
 
                     	    }
                     	    break;
                     	case 2 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1840:12: '\\t'
                     	    {
-                    	    match('\t'); 
-                    	     spaces += 8; spaces -= (spaces % 8); 
+                    	    match('\t');
+                    	     spaces += 8; spaces -= (spaces % 8);
 
                     	    }
                     	    break;
@@ -2735,7 +2746,7 @@
                                 String s = new String(indentation);
                                 Token tok = new ClassicToken(LEADING_WS,new String(indentation));
                                 emit(tok);
-                            
+
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1853:10: ( ( '\\r' )? '\\n' )*
                     loop26:
                     do {
@@ -2762,14 +2773,14 @@
                     	        case 1 :
                     	            // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1853:13: '\\r'
                     	            {
-                    	            match('\r'); 
+                    	            match('\r');
 
                     	            }
                     	            break;
 
                     	    }
 
-                    	    match('\n'); 
+                    	    match('\n');
                     	    if (token!=null) token.setChannel(99); else channel=HIDDEN;
 
                     	    }
@@ -2847,7 +2858,7 @@
                         }
                     } while (true);
 
-                    match('#'); 
+                    match('#');
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1891:40: (~ '\\n' )*
                     loop29:
                     do {
@@ -2898,7 +2909,7 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1891:49: '\\n'
                     	    {
-                    	    match('\n'); 
+                    	    match('\n');
 
                     	    }
                     	    break;
@@ -2921,7 +2932,7 @@
                     if ( !(startPos>0) ) {
                         throw new FailedPredicateException(input, "COMMENT", "startPos>0");
                     }
-                    match('#'); 
+                    match('#');
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1892:27: (~ '\\n' )*
                     loop31:
                     do {
@@ -2975,7 +2986,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1908:12: ( '@' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1909:2: '@'
             {
-            match('@'); 
+            match('@');
 
             }
 
@@ -3020,14 +3031,14 @@
             	        case 1 :
             	            // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1916:11: '\\r'
             	            {
-            	            match('\r'); 
+            	            match('\r');
 
             	            }
             	            break;
 
             	    }
 
-            	    match('\n'); 
+            	    match('\n');
 
             	    }
             	    break;
@@ -3043,7 +3054,7 @@
 
             if ( startPos==0 || implicitLineJoiningLevel>0 )
                         channel=HIDDEN;
-                    
+
 
             }
 
@@ -3054,7 +3065,8 @@
     }
     // $ANTLR end NEWLINE
 
-    public void mTokens() throws RecognitionException {
+    @Override
+	public void mTokens() throws RecognitionException {
         // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:8: ( T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | T87 | T88 | T89 | T90 | T91 | T92 | T93 | T94 | T95 | T96 | T97 | T98 | LPAREN | RPAREN | LBRACK | RBRACK | COLON | COMMA | SEMI | PLUS | MINUS | STAR | SLASH | VBAR | AMPER | LESS | GREATER | ASSIGN | PERCENT | BACKQUOTE | LCURLY | RCURLY | CIRCUMFLEX | TILDE | EQUAL | NOTEQUAL | ALT_NOTEQUAL | LESSEQUAL | LEFTSHIFT | GREATEREQUAL | RIGHTSHIFT | PLUSEQUAL | MINUSEQUAL | DOUBLESTAR | STAREQUAL | DOUBLESLASH | SLASHEQUAL | VBAREQUAL | PERCENTEQUAL | AMPEREQUAL | CIRCUMFLEXEQUAL | LEFTSHIFTEQUAL | RIGHTSHIFTEQUAL | DOUBLESTAREQUAL | DOUBLESLASHEQUAL | DOT | FLOAT | POINTFLOAT | FRACTION | EXPONENTFLOAT | LONGINT | INT | COMPLEX | NAME | STRING | CONTINUED_LINE | WS | LEADING_WS | COMMENT | DECORATOR_S | NEWLINE )
         int alt35=90;
         alt35 = dfa35.predict(input);
@@ -3062,630 +3074,630 @@
             case 1 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:10: T68
                 {
-                mT68(); 
+                mT68();
 
                 }
                 break;
             case 2 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:14: T69
                 {
-                mT69(); 
+                mT69();
 
                 }
                 break;
             case 3 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:18: T70
                 {
-                mT70(); 
+                mT70();
 
                 }
                 break;
             case 4 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:22: T71
                 {
-                mT71(); 
+                mT71();
 
                 }
                 break;
             case 5 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:26: T72
                 {
-                mT72(); 
+                mT72();
 
                 }
                 break;
             case 6 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:30: T73
                 {
-                mT73(); 
+                mT73();
 
                 }
                 break;
             case 7 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:34: T74
                 {
-                mT74(); 
+                mT74();
 
                 }
                 break;
             case 8 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:38: T75
                 {
-                mT75(); 
+                mT75();
 
                 }
                 break;
             case 9 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:42: T76
                 {
-                mT76(); 
+                mT76();
 
                 }
                 break;
             case 10 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:46: T77
                 {
-                mT77(); 
+                mT77();
 
                 }
                 break;
             case 11 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:50: T78
                 {
-                mT78(); 
+                mT78();
 
                 }
                 break;
             case 12 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:54: T79
                 {
-                mT79(); 
+                mT79();
 
                 }
                 break;
             case 13 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:58: T80
                 {
-                mT80(); 
+                mT80();
 
                 }
                 break;
             case 14 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:62: T81
                 {
-                mT81(); 
+                mT81();
 
                 }
                 break;
             case 15 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:66: T82
                 {
-                mT82(); 
+                mT82();
 
                 }
                 break;
             case 16 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:70: T83
                 {
-                mT83(); 
+                mT83();
 
                 }
                 break;
             case 17 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:74: T84
                 {
-                mT84(); 
+                mT84();
 
                 }
                 break;
             case 18 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:78: T85
                 {
-                mT85(); 
+                mT85();
 
                 }
                 break;
             case 19 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:82: T86
                 {
-                mT86(); 
+                mT86();
 
                 }
                 break;
             case 20 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:86: T87
                 {
-                mT87(); 
+                mT87();
 
                 }
                 break;
             case 21 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:90: T88
                 {
-                mT88(); 
+                mT88();
 
                 }
                 break;
             case 22 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:94: T89
                 {
-                mT89(); 
+                mT89();
 
                 }
                 break;
             case 23 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:98: T90
                 {
-                mT90(); 
+                mT90();
 
                 }
                 break;
             case 24 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:102: T91
                 {
-                mT91(); 
+                mT91();
 
                 }
                 break;
             case 25 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:106: T92
                 {
-                mT92(); 
+                mT92();
 
                 }
                 break;
             case 26 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:110: T93
                 {
-                mT93(); 
+                mT93();
 
                 }
                 break;
             case 27 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:114: T94
                 {
-                mT94(); 
+                mT94();
 
                 }
                 break;
             case 28 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:118: T95
                 {
-                mT95(); 
+                mT95();
 
                 }
                 break;
             case 29 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:122: T96
                 {
-                mT96(); 
+                mT96();
 
                 }
                 break;
             case 30 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:126: T97
                 {
-                mT97(); 
+                mT97();
 
                 }
                 break;
             case 31 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:130: T98
                 {
-                mT98(); 
+                mT98();
 
                 }
                 break;
             case 32 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:134: LPAREN
                 {
-                mLPAREN(); 
+                mLPAREN();
 
                 }
                 break;
             case 33 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:141: RPAREN
                 {
-                mRPAREN(); 
+                mRPAREN();
 
                 }
                 break;
             case 34 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:148: LBRACK
                 {
-                mLBRACK(); 
+                mLBRACK();
 
                 }
                 break;
             case 35 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:155: RBRACK
                 {
-                mRBRACK(); 
+                mRBRACK();
 
                 }
                 break;
             case 36 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:162: COLON
                 {
-                mCOLON(); 
+                mCOLON();
 
                 }
                 break;
             case 37 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:168: COMMA
                 {
-                mCOMMA(); 
+                mCOMMA();
 
                 }
                 break;
             case 38 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:174: SEMI
                 {
-                mSEMI(); 
+                mSEMI();
 
                 }
                 break;
             case 39 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:179: PLUS
                 {
-                mPLUS(); 
+                mPLUS();
 
                 }
                 break;
             case 40 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:184: MINUS
                 {
-                mMINUS(); 
+                mMINUS();
 
                 }
                 break;
             case 41 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:190: STAR
                 {
-                mSTAR(); 
+                mSTAR();
 
                 }
                 break;
             case 42 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:195: SLASH
                 {
-                mSLASH(); 
+                mSLASH();
 
                 }
                 break;
             case 43 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:201: VBAR
                 {
-                mVBAR(); 
+                mVBAR();
 
                 }
                 break;
             case 44 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:206: AMPER
                 {
-                mAMPER(); 
+                mAMPER();
 
                 }
                 break;
             case 45 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:212: LESS
                 {
-                mLESS(); 
+                mLESS();
 
                 }
                 break;
             case 46 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:217: GREATER
                 {
-                mGREATER(); 
+                mGREATER();
 
                 }
                 break;
             case 47 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:225: ASSIGN
                 {
-                mASSIGN(); 
+                mASSIGN();
 
                 }
                 break;
             case 48 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:232: PERCENT
                 {
-                mPERCENT(); 
+                mPERCENT();
 
                 }
                 break;
             case 49 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:240: BACKQUOTE
                 {
-                mBACKQUOTE(); 
+                mBACKQUOTE();
 
                 }
                 break;
             case 50 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:250: LCURLY
                 {
-                mLCURLY(); 
+                mLCURLY();
 
                 }
                 break;
             case 51 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:257: RCURLY
                 {
-                mRCURLY(); 
+                mRCURLY();
 
                 }
                 break;
             case 52 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:264: CIRCUMFLEX
                 {
-                mCIRCUMFLEX(); 
+                mCIRCUMFLEX();
 
                 }
                 break;
             case 53 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:275: TILDE
                 {
-                mTILDE(); 
+                mTILDE();
 
                 }
                 break;
             case 54 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:281: EQUAL
                 {
-                mEQUAL(); 
+                mEQUAL();
 
                 }
                 break;
             case 55 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:287: NOTEQUAL
                 {
-                mNOTEQUAL(); 
+                mNOTEQUAL();
 
                 }
                 break;
             case 56 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:296: ALT_NOTEQUAL
                 {
-                mALT_NOTEQUAL(); 
+                mALT_NOTEQUAL();
 
                 }
                 break;
             case 57 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:309: LESSEQUAL
                 {
-                mLESSEQUAL(); 
+                mLESSEQUAL();
 
                 }
                 break;
             case 58 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:319: LEFTSHIFT
                 {
-                mLEFTSHIFT(); 
+                mLEFTSHIFT();
 
                 }
                 break;
             case 59 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:329: GREATEREQUAL
                 {
-                mGREATEREQUAL(); 
+                mGREATEREQUAL();
 
                 }
                 break;
             case 60 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:342: RIGHTSHIFT
                 {
-                mRIGHTSHIFT(); 
+                mRIGHTSHIFT();
 
                 }
                 break;
             case 61 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:353: PLUSEQUAL
                 {
-                mPLUSEQUAL(); 
+                mPLUSEQUAL();
 
                 }
                 break;
             case 62 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:363: MINUSEQUAL
                 {
-                mMINUSEQUAL(); 
+                mMINUSEQUAL();
 
                 }
                 break;
             case 63 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:374: DOUBLESTAR
                 {
-                mDOUBLESTAR(); 
+                mDOUBLESTAR();
 
                 }
                 break;
             case 64 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:385: STAREQUAL
                 {
-                mSTAREQUAL(); 
+                mSTAREQUAL();
 
                 }
                 break;
             case 65 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:395: DOUBLESLASH
                 {
-                mDOUBLESLASH(); 
+                mDOUBLESLASH();
 
                 }
                 break;
             case 66 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:407: SLASHEQUAL
                 {
-                mSLASHEQUAL(); 
+                mSLASHEQUAL();
 
                 }
                 break;
             case 67 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:418: VBAREQUAL
                 {
-                mVBAREQUAL(); 
+                mVBAREQUAL();
 
                 }
                 break;
             case 68 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:428: PERCENTEQUAL
                 {
-                mPERCENTEQUAL(); 
+                mPERCENTEQUAL();
 
                 }
                 break;
             case 69 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:441: AMPEREQUAL
                 {
-                mAMPEREQUAL(); 
+                mAMPEREQUAL();
 
                 }
                 break;
             case 70 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:452: CIRCUMFLEXEQUAL
                 {
-                mCIRCUMFLEXEQUAL(); 
+                mCIRCUMFLEXEQUAL();
 
                 }
                 break;
             case 71 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:468: LEFTSHIFTEQUAL
                 {
-                mLEFTSHIFTEQUAL(); 
+                mLEFTSHIFTEQUAL();
 
                 }
                 break;
             case 72 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:483: RIGHTSHIFTEQUAL
                 {
-                mRIGHTSHIFTEQUAL(); 
+                mRIGHTSHIFTEQUAL();
 
                 }
                 break;
             case 73 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:499: DOUBLESTAREQUAL
                 {
-                mDOUBLESTAREQUAL(); 
+                mDOUBLESTAREQUAL();
 
                 }
                 break;
             case 74 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:515: DOUBLESLASHEQUAL
                 {
-                mDOUBLESLASHEQUAL(); 
+                mDOUBLESLASHEQUAL();
 
                 }
                 break;
             case 75 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:532: DOT
                 {
-                mDOT(); 
+                mDOT();
 
                 }
                 break;
             case 76 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:536: FLOAT
                 {
-                mFLOAT(); 
+                mFLOAT();
 
                 }
                 break;
             case 77 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:542: POINTFLOAT
                 {
-                mPOINTFLOAT(); 
+                mPOINTFLOAT();
 
                 }
                 break;
             case 78 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:553: FRACTION
                 {
-                mFRACTION(); 
+                mFRACTION();
 
                 }
                 break;
             case 79 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:562: EXPONENTFLOAT
                 {
-                mEXPONENTFLOAT(); 
+                mEXPONENTFLOAT();
 
                 }
                 break;
             case 80 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:576: LONGINT
                 {
-                mLONGINT(); 
+                mLONGINT();
 
                 }
                 break;
             case 81 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:584: INT
                 {
-                mINT(); 
+                mINT();
 
                 }
                 break;
             case 82 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:588: COMPLEX
                 {
-                mCOMPLEX(); 
+                mCOMPLEX();
 
                 }
                 break;
             case 83 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:596: NAME
                 {
-                mNAME(); 
+                mNAME();
 
                 }
                 break;
             case 84 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:601: STRING
                 {
-                mSTRING(); 
+                mSTRING();
 
                 }
                 break;
             case 85 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:608: CONTINUED_LINE
                 {
-                mCONTINUED_LINE(); 
+                mCONTINUED_LINE();
 
                 }
                 break;
             case 86 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:623: WS
                 {
-                mWS(); 
+                mWS();
 
                 }
                 break;
             case 87 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:626: LEADING_WS
                 {
-                mLEADING_WS(); 
+                mLEADING_WS();
 
                 }
                 break;
             case 88 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:637: COMMENT
                 {
-                mCOMMENT(); 
+                mCOMMENT();
 
                 }
                 break;
             case 89 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:645: DECORATOR_S
                 {
-                mDECORATOR_S(); 
+                mDECORATOR_S();
 
                 }
                 break;
             case 90 :
                 // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1:657: NEWLINE
                 {
-                mNEWLINE(); 
+                mNEWLINE();
 
                 }
                 break;
@@ -3752,7 +3764,8 @@
             this.special = DFA1_special;
             this.transition = DFA1_transition;
         }
-        public String getDescription() {
+        @Override
+		public String getDescription() {
             return "1760:1: FLOAT : ( POINTFLOAT | EXPONENTFLOAT );";
         }
     }
@@ -3805,7 +3818,8 @@
             this.special = DFA3_special;
             this.transition = DFA3_transition;
         }
-        public String getDescription() {
+        @Override
+		public String getDescription() {
             return "1764:1: POINTFLOAT : ( ( DIGITS )? FRACTION | DIGITS '.' );";
         }
     }
@@ -3857,7 +3871,8 @@
             this.special = DFA4_special;
             this.transition = DFA4_transition;
         }
-        public String getDescription() {
+        @Override
+		public String getDescription() {
             return "1771:4: ( DIGITS | POINTFLOAT )";
         }
     }
@@ -3916,7 +3931,8 @@
             this.special = DFA11_special;
             this.transition = DFA11_transition;
         }
-        public String getDescription() {
+        @Override
+		public String getDescription() {
             return "1790:1: COMPLEX : ( INT ( 'j' | 'J' ) | FLOAT ( 'j' | 'J' ) );";
         }
     }
@@ -3969,16 +3985,18 @@
             this.special = DFA32_special;
             this.transition = DFA32_transition;
         }
-        public String getDescription() {
+        @Override
+		public String getDescription() {
             return "1867:1: COMMENT : ({...}? => ( ' ' | '\\t' )* '#' (~ '\\n' )* ( '\\n' )+ | {...}? => '#' (~ '\\n' )* );";
         }
-        public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
+        @Override
+		public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
         	int _s = s;
             switch ( s ) {
-                    case 0 : 
+                    case 0 :
                         int LA32_2 = input.LA(1);
 
-                         
+
                         int index32_2 = input.index();
                         input.rewind();
                         s = -1;
@@ -3988,14 +4006,14 @@
 
                         else s = 4;
 
-                         
+
                         input.seek(index32_2);
                         if ( s>=0 ) return s;
                         break;
-                    case 1 : 
+                    case 1 :
                         int LA32_0 = input.LA(1);
 
-                         
+
                         int index32_0 = input.index();
                         input.rewind();
                         s = -1;
@@ -4003,14 +4021,14 @@
 
                         else if ( (LA32_0=='#') && ((startPos==0||startPos>0))) {s = 2;}
 
-                         
+
                         input.seek(index32_0);
                         if ( s>=0 ) return s;
                         break;
-                    case 2 : 
+                    case 2 :
                         int LA32_3 = input.LA(1);
 
-                         
+
                         int index32_3 = input.index();
                         input.rewind();
                         s = -1;
@@ -4020,7 +4038,7 @@
 
                         else s = 4;
 
-                         
+
                         input.seek(index32_3);
                         if ( s>=0 ) return s;
                         break;
@@ -4382,16 +4400,18 @@
             this.special = DFA35_special;
             this.transition = DFA35_transition;
         }
-        public String getDescription() {
+        @Override
+		public String getDescription() {
             return "1:1: Tokens : ( T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | T87 | T88 | T89 | T90 | T91 | T92 | T93 | T94 | T95 | T96 | T97 | T98 | LPAREN | RPAREN | LBRACK | RBRACK | COLON | COMMA | SEMI | PLUS | MINUS | STAR | SLASH | VBAR | AMPER | LESS | GREATER | ASSIGN | PERCENT | BACKQUOTE | LCURLY | RCURLY | CIRCUMFLEX | TILDE | EQUAL | NOTEQUAL | ALT_NOTEQUAL | LESSEQUAL | LEFTSHIFT | GREATEREQUAL | RIGHTSHIFT | PLUSEQUAL | MINUSEQUAL | DOUBLESTAR | STAREQUAL | DOUBLESLASH | SLASHEQUAL | VBAREQUAL | PERCENTEQUAL | AMPEREQUAL | CIRCUMFLEXEQUAL | LEFTSHIFTEQUAL | RIGHTSHIFTEQUAL | DOUBLESTAREQUAL | DOUBLESLASHEQUAL | DOT | FLOAT | POINTFLOAT | FRACTION | EXPONENTFLOAT | LONGINT | INT | COMPLEX | NAME | STRING | CONTINUED_LINE | WS | LEADING_WS | COMMENT | DECORATOR_S | NEWLINE );";
         }
-        public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
+        @Override
+		public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
         	int _s = s;
             switch ( s ) {
-                    case 0 : 
+                    case 0 :
                         int LA35_48 = input.LA(1);
 
-                         
+
                         int index35_48 = input.index();
                         input.rewind();
                         s = -1;
@@ -4405,14 +4425,14 @@
 
                         else s = 120;
 
-                         
+
                         input.seek(index35_48);
                         if ( s>=0 ) return s;
                         break;
-                    case 1 : 
+                    case 1 :
                         int LA35_47 = input.LA(1);
 
-                         
+
                         int index35_47 = input.index();
                         input.rewind();
                         s = -1;
@@ -4426,14 +4446,14 @@
 
                         else s = 118;
 
-                         
+
                         input.seek(index35_47);
                         if ( s>=0 ) return s;
                         break;
-                    case 2 : 
+                    case 2 :
                         int LA35_0 = input.LA(1);
 
-                         
+
                         int index35_0 = input.index();
                         input.rewind();
                         s = -1;
@@ -4539,14 +4559,14 @@
 
                         else if ( (LA35_0=='\n'||LA35_0=='\r') ) {s = 51;}
 
-                         
+
                         input.seek(index35_0);
                         if ( s>=0 ) return s;
                         break;
-                    case 3 : 
+                    case 3 :
                         int LA35_118 = input.LA(1);
 
-                         
+
                         int index35_118 = input.index();
                         input.rewind();
                         s = -1;
@@ -4554,14 +4574,14 @@
 
                         else if ( (((startPos==0&&implicitLineJoiningLevel>0)||startPos==0)) ) {s = 117;}
 
-                         
+
                         input.seek(index35_118);
                         if ( s>=0 ) return s;
                         break;
-                    case 4 : 
+                    case 4 :
                         int LA35_120 = input.LA(1);
 
-                         
+
                         int index35_120 = input.index();
                         input.rewind();
                         s = -1;
@@ -4569,7 +4589,7 @@
 
                         else if ( (((startPos==0&&implicitLineJoiningLevel>0)||startPos==0)) ) {s = 117;}
 
-                         
+
                         input.seek(index35_120);
                         if ( s>=0 ) return s;
                         break;
@@ -4580,6 +4600,6 @@
             throw nvae;
         }
     }
- 
+
 
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3Parser.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3Parser.java
index cc7b964..79d4c95 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3Parser.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3Parser.java
@@ -6,6 +6,14 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.antlr.runtime.BitSet;
+import org.antlr.runtime.CommonToken;
+import org.antlr.runtime.EarlyExitException;
+import org.antlr.runtime.NoViableAltException;
+import org.antlr.runtime.Parser;
+import org.antlr.runtime.RecognitionException;
+import org.antlr.runtime.Token;
+import org.antlr.runtime.TokenStream;
 import org.eclipse.dltk.ast.DLTKToken;
 import org.eclipse.dltk.ast.declarations.Decorator;
 import org.eclipse.dltk.ast.declarations.MethodDeclaration;
@@ -17,7 +25,6 @@
 import org.eclipse.dltk.ast.references.VariableReference;
 import org.eclipse.dltk.ast.statements.Block;
 import org.eclipse.dltk.ast.statements.Statement;
-import org.eclipse.dltk.compiler.problem.IProblemReporter;
 import org.eclipse.dltk.python.parser.ast.PythonArgument;
 import org.eclipse.dltk.python.parser.ast.PythonAssertStatement;
 import org.eclipse.dltk.python.parser.ast.PythonClassDeclaration;
@@ -29,6 +36,7 @@
 import org.eclipse.dltk.python.parser.ast.PythonRaiseStatement;
 import org.eclipse.dltk.python.parser.ast.PythonTryStatement;
 import org.eclipse.dltk.python.parser.ast.PythonWhileStatement;
+import org.eclipse.dltk.python.parser.ast.PythonWithStatement;
 import org.eclipse.dltk.python.parser.ast.PythonYieldStatement;
 import org.eclipse.dltk.python.parser.ast.expressions.Assignment;
 import org.eclipse.dltk.python.parser.ast.expressions.BinaryExpression;
@@ -59,13 +67,6 @@
 import org.eclipse.dltk.python.parser.ast.statements.IfStatement;
 import org.eclipse.dltk.python.parser.ast.statements.ReturnStatement;
 import org.eclipse.dltk.python.parser.ast.statements.TryFinallyStatement;
-import org.eclipse.dltk.python.parser.ast.PythonWithStatement;
-
-
-import org.antlr.runtime.*;
-import java.util.Stack;
-import java.util.List;
-import java.util.ArrayList;
 
 public class python_v3Parser extends Parser {
     public static final String[] tokenNames = new String[] {
@@ -140,25 +141,30 @@
         public python_v3Parser(TokenStream input) {
             super(input);
         }
-        
 
-    public String[] getTokenNames() { return tokenNames; }
-    public String getGrammarFileName() { return "/home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g"; }
+
+    @Override
+	public String[] getTokenNames() { return tokenNames; }
+    @Override
+	public String getGrammarFileName() { return "/home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g"; }
 
 
     public DLTKPythonErrorReporter reporter;
-    	
+
     public ModuleDeclaration decl;
-    	
+
     public int length;
     public DLTKTokenConverter converter;
     DLTKToken toDLTK(Token token) {
     	return converter.convert(token);
     }
-    public void emitErrorMessage(String msg) {
+
+	@Override
+	public void emitErrorMessage(String msg) {
     	reporter.reportMessage(msg);
     }
-    public void reportError(RecognitionException e) {
+    @Override
+	public void reportError(RecognitionException e) {
     	if( reporter != null ) {
     		reporter.reportError(e);
     	}
@@ -199,7 +205,7 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:136:7: NEWLINE
             	    {
-            	    match(input,NEWLINE,FOLLOW_NEWLINE_in_file_input101); 
+            	    match(input,NEWLINE,FOLLOW_NEWLINE_in_file_input101);
 
             	    }
             	    break;
@@ -210,8 +216,8 @@
             	    s=stmt();
             	    _fsp--;
 
-            	     
-            	        				//statements.addAll( s );     
+
+            	        				//statements.addAll( s );
             	        				if( s != null ) {
             	        					Iterator i = s.iterator();
             	        					while( i.hasNext() ) {
@@ -221,7 +227,7 @@
             	        						}
             	        					}
             	        				}
-            	        			
+
 
             	    }
             	    break;
@@ -231,7 +237,7 @@
                 }
             } while (true);
 
-            match(input,EOF,FOLLOW_EOF_in_file_input157); 
+            match(input,EOF,FOLLOW_EOF_in_file_input157);
 
             }
 
@@ -273,8 +279,8 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:163:49: (dec= DECORATOR_S dottedName= dot_name (lp0= LPAREN arguments= arglist rp0= RPAREN )? NEWLINE )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:164:2: dec= DECORATOR_S dottedName= dot_name (lp0= LPAREN arguments= arglist rp0= RPAREN )? NEWLINE
             {
-            dec=(Token)input.LT(1);
-            match(input,DECORATOR_S,FOLLOW_DECORATOR_S_in_decorator185); 
+            dec=input.LT(1);
+            match(input,DECORATOR_S,FOLLOW_DECORATOR_S_in_decorator185);
             pushFollow(FOLLOW_dot_name_in_decorator192);
             dottedName=dot_name();
             _fsp--;
@@ -290,17 +296,17 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:167:4: lp0= LPAREN arguments= arglist rp0= RPAREN
                     {
-                    lp0=(Token)input.LT(1);
-                    match(input,LPAREN,FOLLOW_LPAREN_in_decorator204); 
+                    lp0=input.LT(1);
+                    match(input,LPAREN,FOLLOW_LPAREN_in_decorator204);
                     pushFollow(FOLLOW_arglist_in_decorator213);
                     arguments=arglist();
                     _fsp--;
 
-                    rp0=(Token)input.LT(1);
-                    match(input,RPAREN,FOLLOW_RPAREN_in_decorator221); 
+                    rp0=input.LT(1);
+                    match(input,RPAREN,FOLLOW_RPAREN_in_decorator221);
 
                     				decorator = new PythonFunctionDecorator( toDLTK( dottedName), toDLTK(dec), toDLTK(rp0), arguments );
-                    			
+
 
                     }
                     break;
@@ -311,8 +317,8 @@
             		if( decorator == null ) {
             			decorator = new PythonFunctionDecorator( toDLTK( dottedName ), toDLTK(dec) );
             		}
-            	
-            match(input,NEWLINE,FOLLOW_NEWLINE_in_decorator237); 
+
+            match(input,NEWLINE,FOLLOW_NEWLINE_in_decorator237);
 
             }
 
@@ -373,7 +379,7 @@
             	    			if( dec != null ) {
             	    				decorators.add( dec );
             	    			}
-            	    		
+
 
             	    }
             	    break;
@@ -449,37 +455,37 @@
 
             }
 
-            w=(Token)input.LT(1);
-            match(input,68,FOLLOW_68_in_funcdef306); 
-            tu=(Token)input.LT(1);
-            match(input,NAME,FOLLOW_NAME_in_funcdef314); 
+            w=input.LT(1);
+            match(input,68,FOLLOW_68_in_funcdef306);
+            tu=input.LT(1);
+            match(input,NAME,FOLLOW_NAME_in_funcdef314);
 
             		methodDeclaration = new MethodDeclaration( toDLTK( w ), toDLTK( tu ) );
             		if( decorators != null ) {
             			methodDeclaration.setDecorators( decorators );
             		}
             		//this.fParameters.clear();
-            		
+
             		List params = new ArrayList();
-            		
+
             		//Block body;
-               	
+
             pushFollow(FOLLOW_parameters_in_funcdef320);
             parameters( params );
             _fsp--;
 
 
-            		methodDeclaration.acceptArguments( params ); 
-            	
-            e=(Token)input.LT(1);
-            match(input,COLON,FOLLOW_COLON_in_funcdef338); 
+            		methodDeclaration.acceptArguments( params );
+
+            e=input.LT(1);
+            match(input,COLON,FOLLOW_COLON_in_funcdef338);
             pushFollow(FOLLOW_suite_in_funcdef352);
             body=suite();
             _fsp--;
 
 
             		methodDeclaration.acceptBody( body );
-            	
+
 
             }
 
@@ -511,7 +517,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:224:26: ( LPAREN ( varargslist[ params ] )? RPAREN )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:225:2: LPAREN ( varargslist[ params ] )? RPAREN
             {
-            match(input,LPAREN,FOLLOW_LPAREN_in_parameters374); 
+            match(input,LPAREN,FOLLOW_LPAREN_in_parameters374);
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:226:2: ( varargslist[ params ] )?
             int alt5=2;
             int LA5_0 = input.LA(1);
@@ -533,7 +539,7 @@
 
             }
 
-            match(input,RPAREN,FOLLOW_RPAREN_in_parameters386); 
+            match(input,RPAREN,FOLLOW_RPAREN_in_parameters386);
 
             }
 
@@ -624,7 +630,7 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:234:28: COMMA defparameter[ params ]
                     	    {
-                    	    match(input,COMMA,FOLLOW_COMMA_in_varargslist414); 
+                    	    match(input,COMMA,FOLLOW_COMMA_in_varargslist414);
                     	    pushFollow(FOLLOW_defparameter_in_varargslist419);
                     	    defparameter( params );
                     	    _fsp--;
@@ -649,7 +655,7 @@
                         case 1 :
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:237:10: COMMA ( STAR tu= NAME ( COMMA DOUBLESTAR t1= NAME )? | DOUBLESTAR t2= NAME )?
                             {
-                            match(input,COMMA,FOLLOW_COMMA_in_varargslist435); 
+                            match(input,COMMA,FOLLOW_COMMA_in_varargslist435);
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:238:14: ( STAR tu= NAME ( COMMA DOUBLESTAR t1= NAME )? | DOUBLESTAR t2= NAME )?
                             int alt8=3;
                             int LA8_0 = input.LA(1);
@@ -664,12 +670,12 @@
                                 case 1 :
                                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:238:16: STAR tu= NAME ( COMMA DOUBLESTAR t1= NAME )?
                                     {
-                                    match(input,STAR,FOLLOW_STAR_in_varargslist452); 
-                                    tu=(Token)input.LT(1);
-                                    match(input,NAME,FOLLOW_NAME_in_varargslist458); 
-                                     
-                                    				params.add( new PythonArgument( toDLTK( tu ) ) ); 
-                                    			
+                                    match(input,STAR,FOLLOW_STAR_in_varargslist452);
+                                    tu=input.LT(1);
+                                    match(input,NAME,FOLLOW_NAME_in_varargslist458);
+
+                                    				params.add( new PythonArgument( toDLTK( tu ) ) );
+
                                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:242:15: ( COMMA DOUBLESTAR t1= NAME )?
                                     int alt7=2;
                                     int LA7_0 = input.LA(1);
@@ -681,13 +687,13 @@
                                         case 1 :
                                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:242:16: COMMA DOUBLESTAR t1= NAME
                                             {
-                                            match(input,COMMA,FOLLOW_COMMA_in_varargslist493); 
-                                            match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_varargslist495); 
-                                            t1=(Token)input.LT(1);
-                                            match(input,NAME,FOLLOW_NAME_in_varargslist501); 
-                                            	
+                                            match(input,COMMA,FOLLOW_COMMA_in_varargslist493);
+                                            match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_varargslist495);
+                                            t1=input.LT(1);
+                                            match(input,NAME,FOLLOW_NAME_in_varargslist501);
+
                                             					params.add( new PythonArgument( toDLTK( t1 ) ) );
-                                            				
+
 
                                             }
                                             break;
@@ -700,12 +706,12 @@
                                 case 2 :
                                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:247:17: DOUBLESTAR t2= NAME
                                     {
-                                    match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_varargslist543); 
-                                    t2=(Token)input.LT(1);
-                                    match(input,NAME,FOLLOW_NAME_in_varargslist549); 
+                                    match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_varargslist543);
+                                    t2=input.LT(1);
+                                    match(input,NAME,FOLLOW_NAME_in_varargslist549);
 
                                                 				params.add( new PythonArgument( toDLTK( t2 ) ) );
-                                                			
+
 
                                     }
                                     break;
@@ -724,12 +730,12 @@
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:253:4: STAR m= NAME ( COMMA DOUBLESTAR m1= NAME )?
                     {
-                    match(input,STAR,FOLLOW_STAR_in_varargslist587); 
-                    m=(Token)input.LT(1);
-                    match(input,NAME,FOLLOW_NAME_in_varargslist593); 
-                     
+                    match(input,STAR,FOLLOW_STAR_in_varargslist587);
+                    m=input.LT(1);
+                    match(input,NAME,FOLLOW_NAME_in_varargslist593);
+
                     			params.add( new PythonArgument( toDLTK( m ) ) );
-                    		
+
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:257:2: ( COMMA DOUBLESTAR m1= NAME )?
                     int alt10=2;
                     int LA10_0 = input.LA(1);
@@ -741,13 +747,13 @@
                         case 1 :
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:257:3: COMMA DOUBLESTAR m1= NAME
                             {
-                            match(input,COMMA,FOLLOW_COMMA_in_varargslist602); 
-                            match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_varargslist607); 
-                            m1=(Token)input.LT(1);
-                            match(input,NAME,FOLLOW_NAME_in_varargslist613); 
+                            match(input,COMMA,FOLLOW_COMMA_in_varargslist602);
+                            match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_varargslist607);
+                            m1=input.LT(1);
+                            match(input,NAME,FOLLOW_NAME_in_varargslist613);
 
                             				params.add( new PythonArgument( toDLTK( m1 ) ) );
-                            			
+
 
                             }
                             break;
@@ -760,12 +766,12 @@
                 case 3 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:263:4: DOUBLESTAR m2= NAME
                     {
-                    match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_varargslist627); 
-                    m2=(Token)input.LT(1);
-                    match(input,NAME,FOLLOW_NAME_in_varargslist633); 
+                    match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_varargslist627);
+                    m2=input.LT(1);
+                    match(input,NAME,FOLLOW_NAME_in_varargslist633);
 
                     			params.add( new PythonArgument( toDLTK( m2 ) ) );
-                    		
+
 
                     }
                     break;
@@ -819,16 +825,16 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:272:3: ASSIGN initExpr= test
                     {
-                    match(input,ASSIGN,FOLLOW_ASSIGN_in_defparameter657); 
+                    match(input,ASSIGN,FOLLOW_ASSIGN_in_defparameter657);
                     pushFollow(FOLLOW_test_in_defparameter663);
                     initExpr=test();
                     _fsp--;
 
-                    					
+
                     			if( lastParam != null ) {
                     				lastParam.assign( initExpr );
-                    			}				
-                    		
+                    			}
+
 
                     }
                     break;
@@ -887,24 +893,24 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:284:6: tu= NAME
                     {
-                    tu=(Token)input.LT(1);
-                    match(input,NAME,FOLLOW_NAME_in_fpdef695); 
+                    tu=input.LT(1);
+                    match(input,NAME,FOLLOW_NAME_in_fpdef695);
 
                     			argument = new PythonArgument( toDLTK( tu ) );
                     			params.add( argument );
-                    		
+
 
                     }
                     break;
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:289:3: LPAREN fplist[params] RPAREN
                     {
-                    match(input,LPAREN,FOLLOW_LPAREN_in_fpdef706); 
+                    match(input,LPAREN,FOLLOW_LPAREN_in_fpdef706);
                     pushFollow(FOLLOW_fplist_in_fpdef708);
                     fplist(params);
                     _fsp--;
 
-                    match(input,RPAREN,FOLLOW_RPAREN_in_fpdef711); 
+                    match(input,RPAREN,FOLLOW_RPAREN_in_fpdef711);
 
                     }
                     break;
@@ -963,7 +969,7 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:296:3: COMMA fpdef[ params ]
             	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_fplist744); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_fplist744);
             	    pushFollow(FOLLOW_fpdef_in_fplist746);
             	    fpdef( params );
             	    _fsp--;
@@ -988,7 +994,7 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:298:3: COMMA
                     {
-                    match(input,COMMA,FOLLOW_COMMA_in_fplist755); 
+                    match(input,COMMA,FOLLOW_COMMA_in_fplist755);
 
                     }
                     break;
@@ -1051,7 +1057,7 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:309:3: SEMI small_stmt[ stmts ]
             	    {
-            	    match(input,SEMI,FOLLOW_SEMI_in_simple_stmt792); 
+            	    match(input,SEMI,FOLLOW_SEMI_in_simple_stmt792);
             	    pushFollow(FOLLOW_small_stmt_in_simple_stmt794);
             	    small_stmt( stmts );
             	    _fsp--;
@@ -1076,14 +1082,14 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:310:7: SEMI
                     {
-                    match(input,SEMI,FOLLOW_SEMI_in_simple_stmt804); 
+                    match(input,SEMI,FOLLOW_SEMI_in_simple_stmt804);
 
                     }
                     break;
 
             }
 
-            match(input,NEWLINE,FOLLOW_NEWLINE_in_simple_stmt809); 
+            match(input,NEWLINE,FOLLOW_NEWLINE_in_simple_stmt809);
 
             }
 
@@ -1142,12 +1148,12 @@
                     {
 
                     		List simpleStatements = new ArrayList();
-                    		
+
                     pushFollow(FOLLOW_simple_stmt_in_stmt830);
                     simple_stmt( simpleStatements );
                     _fsp--;
 
-                     statements.addAll( simpleStatements ); 
+                     statements.addAll( simpleStatements );
 
                     }
                     break;
@@ -1158,7 +1164,7 @@
                     compoundStatement=compound_stmt();
                     _fsp--;
 
-                     statements.add( compoundStatement ); 
+                     statements.add( compoundStatement );
 
                     }
                     break;
@@ -1299,7 +1305,7 @@
                     statement1=expr_stmt();
                     _fsp--;
 
-                     rstatement = statement1; 
+                     rstatement = statement1;
 
                     }
                     break;
@@ -1310,7 +1316,7 @@
                     statement2=print_stmt();
                     _fsp--;
 
-                     rstatement = statement2; 
+                     rstatement = statement2;
 
                     }
                     break;
@@ -1321,7 +1327,7 @@
                     statement3=del_stmt();
                     _fsp--;
 
-                     rstatement = statement3; 
+                     rstatement = statement3;
 
                     }
                     break;
@@ -1332,7 +1338,7 @@
                     statement4=pass_stmt();
                     _fsp--;
 
-                     rstatement = statement4; 
+                     rstatement = statement4;
 
                     }
                     break;
@@ -1343,7 +1349,7 @@
                     statement5=flow_stmt();
                     _fsp--;
 
-                     rstatement = statement5; 
+                     rstatement = statement5;
 
                     }
                     break;
@@ -1354,7 +1360,7 @@
                     statement6=import_stmt();
                     _fsp--;
 
-                     rstatement = statement6; 
+                     rstatement = statement6;
 
                     }
                     break;
@@ -1365,7 +1371,7 @@
                     statement7=global_stmt();
                     _fsp--;
 
-                     rstatement = statement7; 
+                     rstatement = statement7;
 
                     }
                     break;
@@ -1376,7 +1382,7 @@
                     statement8=exec_stmt();
                     _fsp--;
 
-                     rstatement = statement8; 
+                     rstatement = statement8;
 
                     }
                     break;
@@ -1387,7 +1393,7 @@
                     statement9=assert_stmt();
                     _fsp--;
 
-                     rstatement = statement9; 
+                     rstatement = statement9;
 
                     }
                     break;
@@ -1397,7 +1403,7 @@
 
             		if( rstatement != null )
             			stmts.add( rstatement );
-            	
+
 
             }
 
@@ -1443,7 +1449,7 @@
             exp0=testlist();
             _fsp--;
 
-             exp = exp0; 
+             exp = exp0;
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:346:2: (type= augassign right= testlist | (a= ASSIGN right= testlist )+ )?
             int alt21=3;
             int LA21_0 = input.LA(1);
@@ -1474,7 +1480,7 @@
                     				else {
                     					exp = new Assignment( exp, right );
                     				}
-                    		 	
+
 
                     }
                     break;
@@ -1497,8 +1503,8 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:360:4: a= ASSIGN right= testlist
                     	    {
-                    	    a=(Token)input.LT(1);
-                    	    match(input,ASSIGN,FOLLOW_ASSIGN_in_expr_stmt1038); 
+                    	    a=input.LT(1);
+                    	    match(input,ASSIGN,FOLLOW_ASSIGN_in_expr_stmt1038);
                     	    pushFollow(FOLLOW_testlist_in_expr_stmt1047);
                     	    right=testlist();
                     	    _fsp--;
@@ -1511,7 +1517,7 @@
                     	    				else {
                     	    					exp = new Assignment( exp, right );
                     	    				}
-                    	    			
+
 
                     	    }
                     	    break;
@@ -1534,7 +1540,7 @@
 
             			if( exp == null )
             				exp = new EmptyExpression();
-            		
+
 
             }
 
@@ -1639,120 +1645,120 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:380:2: PLUSEQUAL
                     {
-                    match(input,PLUSEQUAL,FOLLOW_PLUSEQUAL_in_augassign1080); 
+                    match(input,PLUSEQUAL,FOLLOW_PLUSEQUAL_in_augassign1080);
 
                     			type = Expression.E_PLUS_ASSIGN;
-                    		
+
 
                     }
                     break;
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:384:4: MINUSEQUAL
                     {
-                    match(input,MINUSEQUAL,FOLLOW_MINUSEQUAL_in_augassign1089); 
-                    					
-                    			type = Expression.E_MINUS_ASSIGN;		
-                    		
+                    match(input,MINUSEQUAL,FOLLOW_MINUSEQUAL_in_augassign1089);
+
+                    			type = Expression.E_MINUS_ASSIGN;
+
 
                     }
                     break;
                 case 3 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:388:4: STAREQUAL
                     {
-                    match(input,STAREQUAL,FOLLOW_STAREQUAL_in_augassign1099); 
+                    match(input,STAREQUAL,FOLLOW_STAREQUAL_in_augassign1099);
 
                     			type = Expression.E_MULT_ASSIGN;
-                    		
+
 
                     }
                     break;
                 case 4 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:392:4: SLASHEQUAL
                     {
-                    match(input,SLASHEQUAL,FOLLOW_SLASHEQUAL_in_augassign1108); 
+                    match(input,SLASHEQUAL,FOLLOW_SLASHEQUAL_in_augassign1108);
 
                     			type = Expression.E_DIV_ASSIGN;
-                    		
+
 
                     }
                     break;
                 case 5 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:396:4: PERCENTEQUAL
                     {
-                    match(input,PERCENTEQUAL,FOLLOW_PERCENTEQUAL_in_augassign1118); 
+                    match(input,PERCENTEQUAL,FOLLOW_PERCENTEQUAL_in_augassign1118);
 
                     			type = Expression.E_MOD_ASSIGN;
-                    		
+
 
                     }
                     break;
                 case 6 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:400:4: AMPEREQUAL
                     {
-                    match(input,AMPEREQUAL,FOLLOW_AMPEREQUAL_in_augassign1127); 
+                    match(input,AMPEREQUAL,FOLLOW_AMPEREQUAL_in_augassign1127);
 
                     			type = Expression.E_BAND_ASSIGN;
-                    		
+
 
                     }
                     break;
                 case 7 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:404:4: VBAREQUAL
                     {
-                    match(input,VBAREQUAL,FOLLOW_VBAREQUAL_in_augassign1136); 
+                    match(input,VBAREQUAL,FOLLOW_VBAREQUAL_in_augassign1136);
 
                     			type = Expression.E_BOR_ASSIGN;
-                    		
+
 
                     }
                     break;
                 case 8 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:408:4: CIRCUMFLEXEQUAL
                     {
-                    match(input,CIRCUMFLEXEQUAL,FOLLOW_CIRCUMFLEXEQUAL_in_augassign1145); 
+                    match(input,CIRCUMFLEXEQUAL,FOLLOW_CIRCUMFLEXEQUAL_in_augassign1145);
 
                     			type = Expression.E_BXOR_ASSIGN;
-                    		
+
 
                     }
                     break;
                 case 9 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:412:4: LEFTSHIFTEQUAL
                     {
-                    match(input,LEFTSHIFTEQUAL,FOLLOW_LEFTSHIFTEQUAL_in_augassign1154); 
+                    match(input,LEFTSHIFTEQUAL,FOLLOW_LEFTSHIFTEQUAL_in_augassign1154);
 
                     			type = Expression.E_SL_ASSIGN;
-                    		
+
 
                     }
                     break;
                 case 10 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:416:4: RIGHTSHIFTEQUAL
                     {
-                    match(input,RIGHTSHIFTEQUAL,FOLLOW_RIGHTSHIFTEQUAL_in_augassign1163); 
+                    match(input,RIGHTSHIFTEQUAL,FOLLOW_RIGHTSHIFTEQUAL_in_augassign1163);
 
                     			type = Expression.E_SR_ASSIGN;
-                    		
+
 
                     }
                     break;
                 case 11 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:420:4: DOUBLESTAREQUAL
                     {
-                    match(input,DOUBLESTAREQUAL,FOLLOW_DOUBLESTAREQUAL_in_augassign1172); 
+                    match(input,DOUBLESTAREQUAL,FOLLOW_DOUBLESTAREQUAL_in_augassign1172);
 
                     			type = Expression.E_DOUBLESTAR_ASSIGN;
-                    		
+
 
                     }
                     break;
                 case 12 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:424:4: DOUBLESLASHEQUAL
                     {
-                    match(input,DOUBLESLASHEQUAL,FOLLOW_DOUBLESLASHEQUAL_in_augassign1181); 
+                    match(input,DOUBLESLASHEQUAL,FOLLOW_DOUBLESLASHEQUAL_in_augassign1181);
 
                     			type = Expression.E_DOUBLEDIV_ASSIGN;
-                    		
+
 
                     }
                     break;
@@ -1792,8 +1798,8 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:430:50: (tu= 'print' (ex= testlist | RIGHTSHIFT ex= testlist )? )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:432:9: tu= 'print' (ex= testlist | RIGHTSHIFT ex= testlist )?
             {
-            tu=(Token)input.LT(1);
-            match(input,69,FOLLOW_69_in_print_stmt1215); 
+            tu=input.LT(1);
+            match(input,69,FOLLOW_69_in_print_stmt1215);
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:433:2: (ex= testlist | RIGHTSHIFT ex= testlist )?
             int alt23=3;
             int LA23_0 = input.LA(1);
@@ -1818,7 +1824,7 @@
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:435:12: RIGHTSHIFT ex= testlist
                     {
-                    match(input,RIGHTSHIFT,FOLLOW_RIGHTSHIFT_in_print_stmt1239); 
+                    match(input,RIGHTSHIFT,FOLLOW_RIGHTSHIFT_in_print_stmt1239);
                     pushFollow(FOLLOW_testlist_in_print_stmt1255);
                     ex=testlist();
                     _fsp--;
@@ -1834,7 +1840,7 @@
             		if( ex != null ) {
             			statement.setEnd(ex.sourceEnd());
             		}
-            	
+
 
             }
 
@@ -1872,15 +1878,15 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:447:48: (sa= 'del' tu= exprlist )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:448:2: sa= 'del' tu= exprlist
             {
-            sa=(Token)input.LT(1);
-            match(input,70,FOLLOW_70_in_del_stmt1286); 
+            sa=input.LT(1);
+            match(input,70,FOLLOW_70_in_del_stmt1286);
             pushFollow(FOLLOW_exprlist_in_del_stmt1294);
             tu=exprlist();
             _fsp--;
 
 
             		statement = new PythonDelStatement( toDLTK( sa ), tu );
-            	
+
 
             }
 
@@ -1916,11 +1922,11 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:456:48: (tu= 'pass' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:457:2: tu= 'pass'
             {
-            tu=(Token)input.LT(1);
-            match(input,71,FOLLOW_71_in_pass_stmt1317); 
+            tu=input.LT(1);
+            match(input,71,FOLLOW_71_in_pass_stmt1317);
 
             		statement = new EmptyStatement( toDLTK( tu ) );
-            	
+
 
             }
 
@@ -2005,7 +2011,7 @@
                     statement0=break_stmt();
                     _fsp--;
 
-                     statement = statement0; 
+                     statement = statement0;
 
                     }
                     break;
@@ -2016,7 +2022,7 @@
                     statement1=continue_stmt();
                     _fsp--;
 
-                     statement = statement1; 
+                     statement = statement1;
 
                     }
                     break;
@@ -2027,7 +2033,7 @@
                     statement2=return_stmt();
                     _fsp--;
 
-                     statement = statement2; 
+                     statement = statement2;
 
                     }
                     break;
@@ -2038,7 +2044,7 @@
                     statement3=raise_stmt();
                     _fsp--;
 
-                     statement = statement3; 
+                     statement = statement3;
 
                     }
                     break;
@@ -2049,7 +2055,7 @@
                     statement4=yield_stmt();
                     _fsp--;
 
-                     statement = statement4; 
+                     statement = statement4;
 
                     }
                     break;
@@ -2087,11 +2093,11 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:472:50: (ta= 'break' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:473:2: ta= 'break'
             {
-            ta=(Token)input.LT(1);
-            match(input,72,FOLLOW_72_in_break_stmt1405); 
+            ta=input.LT(1);
+            match(input,72,FOLLOW_72_in_break_stmt1405);
 
             			statement = new BreakStatement( toDLTK( ta ), null, toDLTK(ta) );
-            		
+
 
             }
 
@@ -2127,11 +2133,11 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:479:53: (ta= 'continue' )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:480:2: ta= 'continue'
             {
-            ta=(Token)input.LT(1);
-            match(input,73,FOLLOW_73_in_continue_stmt1429); 
+            ta=input.LT(1);
+            match(input,73,FOLLOW_73_in_continue_stmt1429);
 
             			statement = new ContinueStatement( toDLTK( ta ), null, toDLTK(ta) );
-            		
+
 
             }
 
@@ -2169,8 +2175,8 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:486:51: (ra= 'return' (tu= testlist )? )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:487:2: ra= 'return' (tu= testlist )?
             {
-            ra=(Token)input.LT(1);
-            match(input,74,FOLLOW_74_in_return_stmt1454); 
+            ra=input.LT(1);
+            match(input,74,FOLLOW_74_in_return_stmt1454);
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:488:3: (tu= testlist )?
             int alt25=2;
             int LA25_0 = input.LA(1);
@@ -2199,7 +2205,7 @@
             				end = tu.sourceEnd();
             			}
             			statement = new ReturnStatement( toDLTK( ra ), tu , end );
-            		
+
 
             }
 
@@ -2237,15 +2243,15 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:500:61: (tu= 'yield' r= testlist )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:501:2: tu= 'yield' r= testlist
             {
-            tu=(Token)input.LT(1);
-            match(input,75,FOLLOW_75_in_yield_stmt1493); 
+            tu=input.LT(1);
+            match(input,75,FOLLOW_75_in_yield_stmt1493);
             pushFollow(FOLLOW_testlist_in_yield_stmt1500);
             r=testlist();
             _fsp--;
 
 
             		statement = new PythonYieldStatement( toDLTK( tu ), r );
-            	
+
 
             }
 
@@ -2287,12 +2293,12 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:508:61: (tu= 'raise' (e1= test ( COMMA e2= test ( COMMA e3= test )? )? )? )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:509:2: tu= 'raise' (e1= test ( COMMA e2= test ( COMMA e3= test )? )? )?
             {
-            tu=(Token)input.LT(1);
-            match(input,76,FOLLOW_76_in_raise_stmt1522); 
+            tu=input.LT(1);
+            match(input,76,FOLLOW_76_in_raise_stmt1522);
 
             		statement = new PythonRaiseStatement( toDLTK( tu ) );
             		int end = -1;
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:514:2: (e1= test ( COMMA e2= test ( COMMA e3= test )? )? )?
             int alt28=2;
             int LA28_0 = input.LA(1);
@@ -2313,7 +2319,7 @@
                     			if( e1 != null && e1.sourceEnd() > end ) {
                     				end = e1.sourceEnd();
                     			}
-                    		
+
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:522:3: ( COMMA e2= test ( COMMA e3= test )? )?
                     int alt27=2;
                     int LA27_0 = input.LA(1);
@@ -2325,7 +2331,7 @@
                         case 1 :
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:522:5: COMMA e2= test ( COMMA e3= test )?
                             {
-                            match(input,COMMA,FOLLOW_COMMA_in_raise_stmt1547); 
+                            match(input,COMMA,FOLLOW_COMMA_in_raise_stmt1547);
                             pushFollow(FOLLOW_test_in_raise_stmt1556);
                             e2=test();
                             _fsp--;
@@ -2335,7 +2341,7 @@
                             				if( e2 != null && e2.sourceEnd() > end ) {
                             					end = e2.sourceEnd();
                             				}
-                            			
+
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:530:4: ( COMMA e3= test )?
                             int alt26=2;
                             int LA26_0 = input.LA(1);
@@ -2347,7 +2353,7 @@
                                 case 1 :
                                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:530:6: COMMA e3= test
                                     {
-                                    match(input,COMMA,FOLLOW_COMMA_in_raise_stmt1569); 
+                                    match(input,COMMA,FOLLOW_COMMA_in_raise_stmt1569);
                                     pushFollow(FOLLOW_test_in_raise_stmt1579);
                                     e3=test();
                                     _fsp--;
@@ -2357,7 +2363,7 @@
                                     		   			if( e3 != null && e3.sourceEnd() > end ) {
                                     						end = e3.sourceEnd();
                                     					}
-                                    		   		
+
 
                                     }
                                     break;
@@ -2420,10 +2426,10 @@
                 		Expression impExpr;
                 		String impName;
                 		String impName2;
-                		//Token moduleName;		
-                		
-                		PythonTestListExpression importNames = new PythonTestListExpression();    		
-                	
+                		//Token moduleName;
+
+                		PythonTestListExpression importNames = new PythonTestListExpression();
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:554:6: ( (tu= 'import' expr0= module_imp ( COMMA expr0= module_imp )* ) | r= 'from' moduleName= dot_name 'import' ( (expr0= module_imp ( COMMA expr0= module_imp )* ) | ( STAR ) ) )
             int alt32=2;
             int LA32_0 = input.LA(1);
@@ -2447,12 +2453,12 @@
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:555:7: (tu= 'import' expr0= module_imp ( COMMA expr0= module_imp )* )
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:556:8: tu= 'import' expr0= module_imp ( COMMA expr0= module_imp )*
                     {
-                    tu=(Token)input.LT(1);
-                    match(input,77,FOLLOW_77_in_import_stmt1696); 
-                    	    	
+                    tu=input.LT(1);
+                    match(input,77,FOLLOW_77_in_import_stmt1696);
+
                         				statement = new PythonImportStatement( toDLTK( tu ), importNames );
                         				//Expression expr0 = null;
-                        			
+
                     pushFollow(FOLLOW_module_imp_in_import_stmt1718);
                     expr0=module_imp();
                     _fsp--;
@@ -2464,7 +2470,7 @@
                         					if( expr0.sourceEnd() > statement.sourceEnd() ) {
                         						statement.setEnd( expr0.sourceEnd() );
                         					}
-                        				
+
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:571:8: ( COMMA expr0= module_imp )*
                     loop29:
                     do {
@@ -2480,7 +2486,7 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:571:10: COMMA expr0= module_imp
                     	    {
-                    	    match(input,COMMA,FOLLOW_COMMA_in_import_stmt1747); 
+                    	    match(input,COMMA,FOLLOW_COMMA_in_import_stmt1747);
                     	    pushFollow(FOLLOW_module_imp_in_import_stmt1761);
                     	    expr0=module_imp();
                     	    _fsp--;
@@ -2491,7 +2497,7 @@
                     	        					if( expr0.sourceEnd() > statement.sourceEnd() ) {
                     	        						statement.setEnd( expr0.sourceEnd() );
                     	        					}
-                    	        				
+
 
                     	    }
                     	    break;
@@ -2510,13 +2516,13 @@
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:583:3: r= 'from' moduleName= dot_name 'import' ( (expr0= module_imp ( COMMA expr0= module_imp )* ) | ( STAR ) )
                     {
-                    r=(Token)input.LT(1);
-                    match(input,78,FOLLOW_78_in_import_stmt1797); 
+                    r=input.LT(1);
+                    match(input,78,FOLLOW_78_in_import_stmt1797);
                     pushFollow(FOLLOW_dot_name_in_import_stmt1805);
                     moduleName=dot_name();
                     _fsp--;
 
-                    match(input,77,FOLLOW_77_in_import_stmt1812); 
+                    match(input,77,FOLLOW_77_in_import_stmt1812);
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:587:3: ( (expr0= module_imp ( COMMA expr0= module_imp )* ) | ( STAR ) )
                     int alt31=2;
                     int LA31_0 = input.LA(1);
@@ -2544,7 +2550,7 @@
                             						//moduleName.setColumn(moduleName.getColumn()-1);
                                     				statement = new PythonImportFromStatement( toDLTK( r ), new VariableReference( toDLTK( moduleName ) ), importNames );
                                     				//Expression expr0 = null;
-                                    			
+
                             pushFollow(FOLLOW_module_imp_in_import_stmt1852);
                             expr0=module_imp();
                             _fsp--;
@@ -2556,7 +2562,7 @@
                                 						if( expr0.sourceEnd() > statement.sourceEnd() ) {
                                 							statement.setEnd( expr0.sourceEnd() );
                                 						}
-                                					
+
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:603:9: ( COMMA expr0= module_imp )*
                             loop30:
                             do {
@@ -2572,7 +2578,7 @@
                             	case 1 :
                             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:603:11: COMMA expr0= module_imp
                             	    {
-                            	    match(input,COMMA,FOLLOW_COMMA_in_import_stmt1875); 
+                            	    match(input,COMMA,FOLLOW_COMMA_in_import_stmt1875);
                             	    pushFollow(FOLLOW_module_imp_in_import_stmt1890);
                             	    expr0=module_imp();
                             	    _fsp--;
@@ -2583,7 +2589,7 @@
                             	        							if( expr0.sourceEnd() > statement.sourceEnd() ) {
                             	        								statement.setEnd( expr0.sourceEnd() );
                             	        							}
-                            	        						
+
 
                             	    }
                             	    break;
@@ -2605,11 +2611,11 @@
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:615:8: ( STAR )
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:616:5: STAR
                             {
-                            match(input,STAR,FOLLOW_STAR_in_import_stmt1947); 
+                            match(input,STAR,FOLLOW_STAR_in_import_stmt1947);
 
                             					//moduleName.setColumn(moduleName.getColumn()-1);
                             					statement = new PythonImportFromStatement( toDLTK( r ), new VariableReference( toDLTK( moduleName ) ), new PythonAllImportExpression( ) );
-                            				
+
 
                             }
 
@@ -2661,14 +2667,14 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:626:43: (n= NAME ( DOT n2= NAME )+ )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:627:2: n= NAME ( DOT n2= NAME )+
             {
-            		
+
             		String value = "";
-            	
-            n=(Token)input.LT(1);
-            match(input,NAME,FOLLOW_NAME_in_dotted_name1997); 
+
+            n=input.LT(1);
+            match(input,NAME,FOLLOW_NAME_in_dotted_name1997);
 
             		value += n.getText();
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:634:2: ( DOT n2= NAME )+
             int cnt33=0;
             loop33:
@@ -2685,12 +2691,12 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:635:3: DOT n2= NAME
             	    {
-            	    match(input,DOT,FOLLOW_DOT_in_dotted_name2007); 
-            	    n2=(Token)input.LT(1);
-            	    match(input,NAME,FOLLOW_NAME_in_dotted_name2014); 
+            	    match(input,DOT,FOLLOW_DOT_in_dotted_name2007);
+            	    n2=input.LT(1);
+            	    match(input,NAME,FOLLOW_NAME_in_dotted_name2014);
 
             	    			value += "." + n2.getText();
-            	    		
+
 
             	    }
             	    break;
@@ -2708,7 +2714,7 @@
             		token = new CommonToken( n );
             		token.setText( value );
             		//token.setColumn( n.getColumn() );
-            	
+
 
             }
 
@@ -2782,7 +2788,7 @@
 
 
                     	    		token = moduleName1;
-                    	    	
+
 
                     }
 
@@ -2795,11 +2801,11 @@
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:656:2: (moduleName2= NAME )
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:657:3: moduleName2= NAME
                     {
-                    moduleName2=(Token)input.LT(1);
-                    match(input,NAME,FOLLOW_NAME_in_dot_name2069); 
+                    moduleName2=input.LT(1);
+                    match(input,NAME,FOLLOW_NAME_in_dot_name2069);
 
                     			token = moduleName2;
-                    		
+
 
                     }
 
@@ -2808,7 +2814,7 @@
                     			//int column = token.getColumn();
                     			//token.setColumn( column -1 );
                     		}
-                    	
+
 
                     }
                     break;
@@ -2854,7 +2860,7 @@
 
 
             		expr = new PythonImportExpression( toDLTK( impName ) );
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:674:2: ( 'as' as= NAME )?
             int alt35=2;
             int LA35_0 = input.LA(1);
@@ -2866,12 +2872,12 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:675:3: 'as' as= NAME
                     {
-                    match(input,79,FOLLOW_79_in_module_imp2111); 
-                    as=(Token)input.LT(1);
-                    match(input,NAME,FOLLOW_NAME_in_module_imp2118); 
+                    match(input,79,FOLLOW_79_in_module_imp2111);
+                    as=input.LT(1);
+                    match(input,NAME,FOLLOW_NAME_in_module_imp2118);
 
                     				expr = new PythonImportAsExpression( toDLTK( impName ), toDLTK( as ) );
-                    			
+
 
                     }
                     break;
@@ -2911,8 +2917,8 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:684:51: ( 'global' NAME ( COMMA NAME )* )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:685:3: 'global' NAME ( COMMA NAME )*
             {
-            match(input,80,FOLLOW_80_in_global_stmt2145); 
-            match(input,NAME,FOLLOW_NAME_in_global_stmt2147); 
+            match(input,80,FOLLOW_80_in_global_stmt2145);
+            match(input,NAME,FOLLOW_NAME_in_global_stmt2147);
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:685:17: ( COMMA NAME )*
             loop36:
             do {
@@ -2928,8 +2934,8 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:685:18: COMMA NAME
             	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_global_stmt2150); 
-            	    match(input,NAME,FOLLOW_NAME_in_global_stmt2152); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_global_stmt2150);
+            	    match(input,NAME,FOLLOW_NAME_in_global_stmt2152);
 
             	    }
             	    break;
@@ -2976,13 +2982,13 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:689:49: (e= 'exec' ex= expr ( 'in' ex= test ( COMMA ex= test )? )? )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:690:2: e= 'exec' ex= expr ( 'in' ex= test ( COMMA ex= test )? )?
             {
-            e=(Token)input.LT(1);
-            match(input,81,FOLLOW_81_in_exec_stmt2177); 
+            e=input.LT(1);
+            match(input,81,FOLLOW_81_in_exec_stmt2177);
             pushFollow(FOLLOW_expr_in_exec_stmt2183);
             ex=expr();
             _fsp--;
 
-             statement = new ExecStatement(this.converter.convert(e), ex); 
+             statement = new ExecStatement(this.converter.convert(e), ex);
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:691:2: ( 'in' ex= test ( COMMA ex= test )? )?
             int alt38=2;
             int LA38_0 = input.LA(1);
@@ -2994,12 +3000,12 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:691:3: 'in' ex= test ( COMMA ex= test )?
                     {
-                    match(input,82,FOLLOW_82_in_exec_stmt2190); 
+                    match(input,82,FOLLOW_82_in_exec_stmt2190);
                     pushFollow(FOLLOW_test_in_exec_stmt2199);
                     ex=test();
                     _fsp--;
 
-                     ((ExecStatement)statement).acceptIn(ex); 
+                     ((ExecStatement)statement).acceptIn(ex);
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:693:3: ( COMMA ex= test )?
                     int alt37=2;
                     int LA37_0 = input.LA(1);
@@ -3011,12 +3017,12 @@
                         case 1 :
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:693:4: COMMA ex= test
                             {
-                            match(input,COMMA,FOLLOW_COMMA_in_exec_stmt2207); 
+                            match(input,COMMA,FOLLOW_COMMA_in_exec_stmt2207);
                             pushFollow(FOLLOW_test_in_exec_stmt2213);
                             ex=test();
                             _fsp--;
 
-                             ((ExecStatement)statement).acceptIn2(ex); 
+                             ((ExecStatement)statement).acceptIn2(ex);
 
                             }
                             break;
@@ -3068,8 +3074,8 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:697:63: (tu= 'assert' exp1= test ( COMMA exp2= test )? )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:698:2: tu= 'assert' exp1= test ( COMMA exp2= test )?
             {
-            tu=(Token)input.LT(1);
-            match(input,83,FOLLOW_83_in_assert_stmt2240); 
+            tu=input.LT(1);
+            match(input,83,FOLLOW_83_in_assert_stmt2240);
             pushFollow(FOLLOW_test_in_assert_stmt2247);
             exp1=test();
             _fsp--;
@@ -3085,7 +3091,7 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:700:4: COMMA exp2= test
                     {
-                    match(input,COMMA,FOLLOW_COMMA_in_assert_stmt2253); 
+                    match(input,COMMA,FOLLOW_COMMA_in_assert_stmt2253);
                     pushFollow(FOLLOW_test_in_assert_stmt2259);
                     exp2=test();
                     _fsp--;
@@ -3098,7 +3104,7 @@
 
 
             			statement = new PythonAssertStatement( toDLTK( tu ), exp1, exp2 );
-            		
+
 
             }
 
@@ -3198,7 +3204,7 @@
                     statement0=if_stmt();
                     _fsp--;
 
-                     statement = statement0; 
+                     statement = statement0;
 
                     }
                     break;
@@ -3209,7 +3215,7 @@
                     statement1=while_stmt();
                     _fsp--;
 
-                     statement = statement1; 
+                     statement = statement1;
 
                     }
                     break;
@@ -3220,7 +3226,7 @@
                     statement2=for_stmt();
                     _fsp--;
 
-                     statement = statement2; 
+                     statement = statement2;
 
                     }
                     break;
@@ -3231,7 +3237,7 @@
                     statement3=try_stmt();
                     _fsp--;
 
-                     statement = statement3; 
+                     statement = statement3;
 
                     }
                     break;
@@ -3242,7 +3248,7 @@
                     statement4=funcdef();
                     _fsp--;
 
-                     statement = statement4; 
+                     statement = statement4;
 
                     }
                     break;
@@ -3253,7 +3259,7 @@
                     statement5=classdef();
                     _fsp--;
 
-                     statement = statement5; 
+                     statement = statement5;
 
                     }
                     break;
@@ -3264,7 +3270,7 @@
                     statement6=with_stmt();
                     _fsp--;
 
-                    statement = statement6; 
+                    statement = statement6;
 
                     }
                     break;
@@ -3307,26 +3313,26 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:717:49: (is= 'if' mn= test COLON body= suite (z= 'elif' mn= test COLON body= suite )* ( 'else' COLON body= suite )? )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:718:3: is= 'if' mn= test COLON body= suite (z= 'elif' mn= test COLON body= suite )* ( 'else' COLON body= suite )?
             {
-            is=(Token)input.LT(1);
-            match(input,84,FOLLOW_84_in_if_stmt2371); 
+            is=input.LT(1);
+            match(input,84,FOLLOW_84_in_if_stmt2371);
             pushFollow(FOLLOW_test_in_if_stmt2380);
             mn=test();
             _fsp--;
 
-            match(input,COLON,FOLLOW_COLON_in_if_stmt2384); 
+            match(input,COLON,FOLLOW_COLON_in_if_stmt2384);
             pushFollow(FOLLOW_suite_in_if_stmt2393);
             body=suite();
             _fsp--;
 
-             
+
             			IfStatement t,base;
             			List ifs = new ArrayList();
-            			statement = new IfStatement( toDLTK( is ), mn, body ); 
+            			statement = new IfStatement( toDLTK( is ), mn, body );
             			statement.setEnd(body.sourceEnd());
             			ifs.add(statement);
             			base = statement;
-            			t = statement; 
-            		
+            			t = statement;
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:732:3: (z= 'elif' mn= test COLON body= suite )*
             loop41:
             do {
@@ -3342,25 +3348,25 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:733:4: z= 'elif' mn= test COLON body= suite
             	    {
-            	    z=(Token)input.LT(1);
-            	    match(input,85,FOLLOW_85_in_if_stmt2414); 
+            	    z=input.LT(1);
+            	    match(input,85,FOLLOW_85_in_if_stmt2414);
             	    pushFollow(FOLLOW_test_in_if_stmt2423);
             	    mn=test();
             	    _fsp--;
 
-            	    match(input,COLON,FOLLOW_COLON_in_if_stmt2429); 
+            	    match(input,COLON,FOLLOW_COLON_in_if_stmt2429);
             	    pushFollow(FOLLOW_suite_in_if_stmt2437);
             	    body=suite();
             	    _fsp--;
 
-            	     
+
             	    					IfStatement elseIfStatement = new IfStatement( toDLTK( z ), mn, body );
             	    					t.acceptElse( elseIfStatement );
             	    					t = elseIfStatement;
             	    					ifs.add(t);
             	    					for(Iterator i = ifs.iterator(); i.hasNext(); ((IfStatement)i.next()).setEnd(body.sourceEnd()));
             	    					base.setEnd(elseIfStatement.sourceEnd());
-            	    				
+
 
             	    }
             	    break;
@@ -3381,16 +3387,16 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:747:4: 'else' COLON body= suite
                     {
-                    match(input,86,FOLLOW_86_in_if_stmt2458); 
-                    match(input,COLON,FOLLOW_COLON_in_if_stmt2464); 
+                    match(input,86,FOLLOW_86_in_if_stmt2458);
+                    match(input,COLON,FOLLOW_COLON_in_if_stmt2464);
                     pushFollow(FOLLOW_suite_in_if_stmt2474);
                     body=suite();
                     _fsp--;
 
-                     
+
                     					t.setElse( body );
                     					for(Iterator i = ifs.iterator(); i.hasNext(); ((IfStatement)i.next()).setEnd(body.sourceEnd()));
-                    				
+
 
                     }
                     break;
@@ -3436,20 +3442,20 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:757:66: (is= 'while' expression= test COLON body= suite ( 'else' COLON body= suite )? )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:758:3: is= 'while' expression= test COLON body= suite ( 'else' COLON body= suite )?
             {
-            is=(Token)input.LT(1);
-            match(input,87,FOLLOW_87_in_while_stmt2510); 
+            is=input.LT(1);
+            match(input,87,FOLLOW_87_in_while_stmt2510);
             pushFollow(FOLLOW_test_in_while_stmt2518);
             expression=test();
             _fsp--;
 
-            match(input,COLON,FOLLOW_COLON_in_while_stmt2522); 
+            match(input,COLON,FOLLOW_COLON_in_while_stmt2522);
             pushFollow(FOLLOW_suite_in_while_stmt2532);
             body=suite();
             _fsp--;
 
-             
-            				whileStatement = new PythonWhileStatement( toDLTK( is ), expression, body ); 
-            			
+
+            				whileStatement = new PythonWhileStatement( toDLTK( is ), expression, body );
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:765:3: ( 'else' COLON body= suite )?
             int alt43=2;
             int LA43_0 = input.LA(1);
@@ -3461,15 +3467,15 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:766:4: 'else' COLON body= suite
                     {
-                    match(input,86,FOLLOW_86_in_while_stmt2546); 
-                    match(input,COLON,FOLLOW_COLON_in_while_stmt2548); 
+                    match(input,86,FOLLOW_86_in_while_stmt2546);
+                    match(input,COLON,FOLLOW_COLON_in_while_stmt2548);
                     pushFollow(FOLLOW_suite_in_while_stmt2558);
                     body=suite();
                     _fsp--;
 
-                     
-                    					whileStatement.setElseStatement( body ); 
-                    				
+
+                    					whileStatement.setElseStatement( body );
+
 
                     }
                     break;
@@ -3517,25 +3523,25 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:774:56: (is= 'for' mains= exprlist 'in' conds= testlist COLON body= suite ( 'else' COLON body= suite )? )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:775:3: is= 'for' mains= exprlist 'in' conds= testlist COLON body= suite ( 'else' COLON body= suite )?
             {
-            is=(Token)input.LT(1);
-            match(input,88,FOLLOW_88_in_for_stmt2589); 
+            is=input.LT(1);
+            match(input,88,FOLLOW_88_in_for_stmt2589);
             pushFollow(FOLLOW_exprlist_in_for_stmt2598);
             mains=exprlist();
             _fsp--;
 
-            match(input,82,FOLLOW_82_in_for_stmt2603); 
+            match(input,82,FOLLOW_82_in_for_stmt2603);
             pushFollow(FOLLOW_testlist_in_for_stmt2611);
             conds=testlist();
             _fsp--;
 
-            match(input,COLON,FOLLOW_COLON_in_for_stmt2615); 
+            match(input,COLON,FOLLOW_COLON_in_for_stmt2615);
             pushFollow(FOLLOW_suite_in_for_stmt2624);
             body=suite();
             _fsp--;
 
 
             				statement = new PythonForStatement( toDLTK( is ), mains, conds, body );
-            			
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:784:3: ( 'else' COLON body= suite )?
             int alt44=2;
             int LA44_0 = input.LA(1);
@@ -3547,15 +3553,15 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:785:4: 'else' COLON body= suite
                     {
-                    match(input,86,FOLLOW_86_in_for_stmt2639); 
-                    match(input,COLON,FOLLOW_COLON_in_for_stmt2645); 
+                    match(input,86,FOLLOW_86_in_for_stmt2639);
+                    match(input,COLON,FOLLOW_COLON_in_for_stmt2645);
                     pushFollow(FOLLOW_suite_in_for_stmt2655);
                     body=suite();
                     _fsp--;
 
 
                     					statement.acceptElse( body );
-                    				
+
 
                     }
                     break;
@@ -3610,14 +3616,14 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:796:58: (is= 'try' COLON body= suite ( ( (ex_= 'except' (t1= test ( COMMA t2= test )? )? COLON su= suite )+ ( (elseT= 'else' COLON elseBlock= suite ) )? ) | (fin= 'finally' COLON su= suite ) ) )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:797:2: is= 'try' COLON body= suite ( ( (ex_= 'except' (t1= test ( COMMA t2= test )? )? COLON su= suite )+ ( (elseT= 'else' COLON elseBlock= suite ) )? ) | (fin= 'finally' COLON su= suite ) )
             {
-            is=(Token)input.LT(1);
-            match(input,89,FOLLOW_89_in_try_stmt2687); 
-            match(input,COLON,FOLLOW_COLON_in_try_stmt2691); 
+            is=input.LT(1);
+            match(input,89,FOLLOW_89_in_try_stmt2687);
+            match(input,COLON,FOLLOW_COLON_in_try_stmt2691);
 
             			Token lastTok = is;
-            			
+
                     		List catches = new ArrayList();
-            		
+
             pushFollow(FOLLOW_suite_in_try_stmt2706);
             body=suite();
             _fsp--;
@@ -3661,8 +3667,8 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:808:4: ex_= 'except' (t1= test ( COMMA t2= test )? )? COLON su= suite
                     	    {
-                    	    ex_=(Token)input.LT(1);
-                    	    match(input,90,FOLLOW_90_in_try_stmt2744); 
+                    	    ex_=input.LT(1);
+                    	    match(input,90,FOLLOW_90_in_try_stmt2744);
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:809:4: (t1= test ( COMMA t2= test )? )?
                     	    int alt46=2;
                     	    int LA46_0 = input.LA(1);
@@ -3689,7 +3695,7 @@
                     	                case 1 :
                     	                    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:811:6: COMMA t2= test
                     	                    {
-                    	                    match(input,COMMA,FOLLOW_COMMA_in_try_stmt2766); 
+                    	                    match(input,COMMA,FOLLOW_COMMA_in_try_stmt2766);
                     	                    pushFollow(FOLLOW_test_in_try_stmt2772);
                     	                    t2=test();
                     	                    _fsp--;
@@ -3706,7 +3712,7 @@
 
                     	    }
 
-                    	    match(input,COLON,FOLLOW_COLON_in_try_stmt2785); 
+                    	    match(input,COLON,FOLLOW_COLON_in_try_stmt2785);
                     	    pushFollow(FOLLOW_suite_in_try_stmt2794);
                     	    su=suite();
                     	    _fsp--;
@@ -3714,7 +3720,7 @@
 
                     	    				lastTok = ex_;
                     	    				catches.add( new PythonExceptStatement( toDLTK( ex_ ), t1, t2, su ) );
-                    	    			
+
 
                     	    }
                     	    break;
@@ -3742,16 +3748,16 @@
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:821:4: (elseT= 'else' COLON elseBlock= suite )
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:821:6: elseT= 'else' COLON elseBlock= suite
                             {
-                            elseT=(Token)input.LT(1);
-                            match(input,86,FOLLOW_86_in_try_stmt2819); 
-                            match(input,COLON,FOLLOW_COLON_in_try_stmt2825); 
+                            elseT=input.LT(1);
+                            match(input,86,FOLLOW_86_in_try_stmt2819);
+                            match(input,COLON,FOLLOW_COLON_in_try_stmt2825);
                             pushFollow(FOLLOW_suite_in_try_stmt2835);
                             elseBlock=suite();
                             _fsp--;
 
 
                             					lastTok = elseT;
-                            				
+
 
                             }
 
@@ -3773,19 +3779,19 @@
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:833:9: (fin= 'finally' COLON su= suite )
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:834:10: fin= 'finally' COLON su= suite
                     {
-                    fin=(Token)input.LT(1);
-                    match(input,91,FOLLOW_91_in_try_stmt2946); 
+                    fin=input.LT(1);
+                    match(input,91,FOLLOW_91_in_try_stmt2946);
 
                     	       		lastTok = fin;
-                            	
-                    match(input,COLON,FOLLOW_COLON_in_try_stmt2969); 
+
+                    match(input,COLON,FOLLOW_COLON_in_try_stmt2969);
                     pushFollow(FOLLOW_suite_in_try_stmt2985);
                     su=suite();
                     _fsp--;
 
 
                             		catches.add( new TryFinallyStatement( toDLTK( fin ), su ) );
-                            	
+
 
                     }
 
@@ -3798,7 +3804,7 @@
 
             		statement = new PythonTryStatement( toDLTK( is ), body, catches );
             		statement.setElseStatement( elseBlock );
-                    
+
 
             }
 
@@ -3838,10 +3844,10 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:852:4: ( simple_stmt[ l ] | NEWLINE ind= INDENT (k= stmt )+ d= DEDENT )
             {
 
-            	  	ArrayList l = new ArrayList();		
+            	  	ArrayList l = new ArrayList();
             	  	int startPos = -1;
             	  	int endPos = -1;
-            	  
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:857:4: ( simple_stmt[ l ] | NEWLINE ind= INDENT (k= stmt )+ d= DEDENT )
             int alt51=2;
             int LA51_0 = input.LA(1);
@@ -3873,33 +3879,33 @@
                     	  			if( sst != null ) {
                     	  				if( sst.sourceStart() < startPos || startPos == -1 ) {
                     	  					startPos = sst.sourceStart();
-                    	  				} 
+                    	  				}
                     	  				if( sst.sourceEnd() > endPos || endPos == -1 ) {
                     	  					endPos = sst.sourceEnd();
                     	  				}
                     	  				statement.addStatement( sst );
                     	  			}
                     	  		}
-                    	  	
+
 
                     }
                     break;
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:875:5: NEWLINE ind= INDENT (k= stmt )+ d= DEDENT
                     {
-                    match(input,NEWLINE,FOLLOW_NEWLINE_in_suite3064); 
-                    ind=(Token)input.LT(1);
-                    match(input,INDENT,FOLLOW_INDENT_in_suite3074); 
+                    match(input,NEWLINE,FOLLOW_NEWLINE_in_suite3064);
+                    ind=input.LT(1);
+                    match(input,INDENT,FOLLOW_INDENT_in_suite3074);
 
                     	  			if( ind != null ) {
-                    	  				
+
                     		  			int s = converter.convert( ind ).getColumn();
                     		  			if( s < startPos && s != -1 ) {
                     		  				startPos = s;
                     		  			}
                     	  			}
                     	  			//ArrayList k;
-                    	  		
+
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:887:5: (k= stmt )+
                     int cnt50=0;
                     loop50:
@@ -3930,14 +3936,14 @@
                     	    	  						statement.addStatement( sst );
                     	    	  						if( sst.sourceStart() < startPos || startPos == -1 ) {
                     	    	  							startPos = sst.sourceStart();
-                    	    	  						} 
+                    	    	  						}
                     	    	  						if( sst.sourceEnd() > endPos || endPos == -1 ) {
                     	    	  							endPos = sst.sourceEnd();
                     	    	  						}
                     	    	  					}
                     	    	  				}
                     	    	  			}
-                    	    	  		
+
 
                     	    }
                     	    break;
@@ -3951,8 +3957,8 @@
                         cnt50++;
                     } while (true);
 
-                    d=(Token)input.LT(1);
-                    match(input,DEDENT,FOLLOW_DEDENT_in_suite3124); 
+                    d=input.LT(1);
+                    match(input,DEDENT,FOLLOW_DEDENT_in_suite3124);
 
                     	  			if( d != null ) {
                     		  			int e = converter.convert( d ).getColumn() - 1;
@@ -3960,7 +3966,7 @@
                     		  				endPos = e;
                     		  			}
                     	  			}
-                    	  		
+
 
                     }
                     break;
@@ -3975,7 +3981,7 @@
             	   	//	endPos = length;
             	   	//}
             	   	statement.setEnd( endPos );
-            	  
+
 
             }
 
@@ -4021,7 +4027,7 @@
 
 
             		exp = exp0;
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:940:2: (r= 'or' v= and_test )*
             loop52:
             do {
@@ -4037,15 +4043,15 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:941:3: r= 'or' v= and_test
             	    {
-            	    r=(Token)input.LT(1);
-            	    match(input,92,FOLLOW_92_in_or_test3188); 
+            	    r=input.LT(1);
+            	    match(input,92,FOLLOW_92_in_or_test3188);
             	    pushFollow(FOLLOW_and_test_in_or_test3197);
             	    v=and_test();
             	    _fsp--;
 
 
             	    				exp = new BinaryExpression( exp0, Expression.E_LOR, v);
-            	    			
+
 
             	    }
             	    break;
@@ -4171,7 +4177,7 @@
 
 
             		exp = exp0;
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:960:2: (m= 'and' v= not_test )*
             loop54:
             do {
@@ -4187,15 +4193,15 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:961:3: m= 'and' v= not_test
             	    {
-            	    m=(Token)input.LT(1);
-            	    match(input,93,FOLLOW_93_in_and_test3278); 
+            	    m=input.LT(1);
+            	    match(input,93,FOLLOW_93_in_and_test3278);
             	    pushFollow(FOLLOW_not_test_in_and_test3287);
             	    v=not_test();
             	    _fsp--;
 
 
             	    				exp = new BinaryExpression( exp0, Expression.E_LAND,v);
-            	    			
+
 
             	    }
             	    break;
@@ -4264,15 +4270,15 @@
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:970:2: (n= 'not' v= not_test )
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:971:3: n= 'not' v= not_test
                     {
-                    n=(Token)input.LT(1);
-                    match(input,94,FOLLOW_94_in_not_test3320); 
+                    n=input.LT(1);
+                    match(input,94,FOLLOW_94_in_not_test3320);
                     pushFollow(FOLLOW_not_test_in_not_test3329);
                     v=not_test();
                     _fsp--;
 
 
                     				exp = new UnaryExpression( toDLTK( n ), Expression.E_LNOT, v );
-                    			
+
 
                     }
 
@@ -4335,7 +4341,7 @@
 
 
             		exp = exp0;
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:985:2: (tu= comp_op v= expr )*
             loop56:
             do {
@@ -4361,7 +4367,7 @@
 
 
             	    				exp = new BinaryExpression( exp0, tu, v );
-            	    			
+
 
             	    }
             	    break;
@@ -4490,8 +4496,8 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:995:3: t1= LESS
                     {
-                    t1=(Token)input.LT(1);
-                    match(input,LESS,FOLLOW_LESS_in_comp_op3426); 
+                    t1=input.LT(1);
+                    match(input,LESS,FOLLOW_LESS_in_comp_op3426);
                     t = Expression.E_LT;
 
                     }
@@ -4499,8 +4505,8 @@
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:996:3: t2= GREATER
                     {
-                    t2=(Token)input.LT(1);
-                    match(input,GREATER,FOLLOW_GREATER_in_comp_op3438); 
+                    t2=input.LT(1);
+                    match(input,GREATER,FOLLOW_GREATER_in_comp_op3438);
                     t = Expression.E_GT;
 
                     }
@@ -4508,8 +4514,8 @@
                 case 3 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:997:3: t3= EQUAL
                     {
-                    t3=(Token)input.LT(1);
-                    match(input,EQUAL,FOLLOW_EQUAL_in_comp_op3449); 
+                    t3=input.LT(1);
+                    match(input,EQUAL,FOLLOW_EQUAL_in_comp_op3449);
                     t = Expression.E_EQUAL;
 
                     }
@@ -4517,8 +4523,8 @@
                 case 4 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:998:3: t4= GREATEREQUAL
                     {
-                    t4=(Token)input.LT(1);
-                    match(input,GREATEREQUAL,FOLLOW_GREATEREQUAL_in_comp_op3462); 
+                    t4=input.LT(1);
+                    match(input,GREATEREQUAL,FOLLOW_GREATEREQUAL_in_comp_op3462);
                     t = Expression.E_GE;
 
                     }
@@ -4526,8 +4532,8 @@
                 case 5 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:999:3: t5= LESSEQUAL
                     {
-                    t5=(Token)input.LT(1);
-                    match(input,LESSEQUAL,FOLLOW_LESSEQUAL_in_comp_op3472); 
+                    t5=input.LT(1);
+                    match(input,LESSEQUAL,FOLLOW_LESSEQUAL_in_comp_op3472);
                     t = Expression.E_LE;
 
                     }
@@ -4535,8 +4541,8 @@
                 case 6 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1000:3: t6= ALT_NOTEQUAL
                     {
-                    t6=(Token)input.LT(1);
-                    match(input,ALT_NOTEQUAL,FOLLOW_ALT_NOTEQUAL_in_comp_op3486); 
+                    t6=input.LT(1);
+                    match(input,ALT_NOTEQUAL,FOLLOW_ALT_NOTEQUAL_in_comp_op3486);
                     t = Expression.E_NOT_EQUAL2;
 
                     }
@@ -4544,8 +4550,8 @@
                 case 7 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1001:3: t7= NOTEQUAL
                     {
-                    t7=(Token)input.LT(1);
-                    match(input,NOTEQUAL,FOLLOW_NOTEQUAL_in_comp_op3498); 
+                    t7=input.LT(1);
+                    match(input,NOTEQUAL,FOLLOW_NOTEQUAL_in_comp_op3498);
                     t = Expression.E_NOT_EQUAL;
 
                     }
@@ -4553,8 +4559,8 @@
                 case 8 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1002:3: t8= 'in'
                     {
-                    t8=(Token)input.LT(1);
-                    match(input,82,FOLLOW_82_in_comp_op3513); 
+                    t8=input.LT(1);
+                    match(input,82,FOLLOW_82_in_comp_op3513);
                     t = Expression.E_IN;
 
                     }
@@ -4562,9 +4568,9 @@
                 case 9 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1003:3: t9= 'not' 'in'
                     {
-                    t9=(Token)input.LT(1);
-                    match(input,94,FOLLOW_94_in_comp_op3523); 
-                    match(input,82,FOLLOW_82_in_comp_op3525); 
+                    t9=input.LT(1);
+                    match(input,94,FOLLOW_94_in_comp_op3523);
+                    match(input,82,FOLLOW_82_in_comp_op3525);
                     t = Expression.E_NOTIN;
 
                     }
@@ -4572,8 +4578,8 @@
                 case 10 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1004:3: t10= 'is'
                     {
-                    t10=(Token)input.LT(1);
-                    match(input,95,FOLLOW_95_in_comp_op3535); 
+                    t10=input.LT(1);
+                    match(input,95,FOLLOW_95_in_comp_op3535);
                     t = Expression.E_IS;
 
                     }
@@ -4581,9 +4587,9 @@
                 case 11 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1005:3: t11= 'is' 'not'
                     {
-                    t11=(Token)input.LT(1);
-                    match(input,95,FOLLOW_95_in_comp_op3545); 
-                    match(input,94,FOLLOW_94_in_comp_op3547); 
+                    t11=input.LT(1);
+                    match(input,95,FOLLOW_95_in_comp_op3545);
+                    match(input,94,FOLLOW_94_in_comp_op3547);
                     t = Expression.E_ISNOT;
 
                     }
@@ -4632,7 +4638,7 @@
 
 
             		e = e0;
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1013:2: (tu= VBAR v= xor_expr )*
             loop58:
             do {
@@ -4648,15 +4654,15 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1014:3: tu= VBAR v= xor_expr
             	    {
-            	    tu=(Token)input.LT(1);
-            	    match(input,VBAR,FOLLOW_VBAR_in_expr3583); 
+            	    tu=input.LT(1);
+            	    match(input,VBAR,FOLLOW_VBAR_in_expr3583);
             	    pushFollow(FOLLOW_xor_expr_in_expr3593);
             	    v=xor_expr();
             	    _fsp--;
 
 
             	    	 			e = new BinaryExpression( e0, Expression.E_LOR,v);
-            	    	 		
+
 
             	    }
             	    break;
@@ -4711,7 +4717,7 @@
 
 
             		e = e0;
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1027:2: (tu= CIRCUMFLEX v= and_expr )*
             loop59:
             do {
@@ -4727,15 +4733,15 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1028:3: tu= CIRCUMFLEX v= and_expr
             	    {
-            	    tu=(Token)input.LT(1);
-            	    match(input,CIRCUMFLEX,FOLLOW_CIRCUMFLEX_in_xor_expr3640); 
+            	    tu=input.LT(1);
+            	    match(input,CIRCUMFLEX,FOLLOW_CIRCUMFLEX_in_xor_expr3640);
             	    pushFollow(FOLLOW_and_expr_in_xor_expr3649);
             	    v=and_expr();
             	    _fsp--;
 
 
             	    				e = new BinaryExpression( e0, Expression.E_XOR,v);
-            	    			
+
 
             	    }
             	    break;
@@ -4790,7 +4796,7 @@
 
 
             		e = e0;
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1041:2: (tu= AMPER v= shift_expr )*
             loop60:
             do {
@@ -4806,15 +4812,15 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1042:3: tu= AMPER v= shift_expr
             	    {
-            	    tu=(Token)input.LT(1);
-            	    match(input,AMPER,FOLLOW_AMPER_in_and_expr3695); 
+            	    tu=input.LT(1);
+            	    match(input,AMPER,FOLLOW_AMPER_in_and_expr3695);
             	    pushFollow(FOLLOW_shift_expr_in_and_expr3705);
             	    v=shift_expr();
             	    _fsp--;
 
 
             	    	 			e = new BinaryExpression( e0, Expression.E_LAND, v );
-            	    	 		
+
 
             	    }
             	    break;
@@ -4870,10 +4876,10 @@
 
 
             		e = e0;
-            	
+
 
             			Token tk = null;
-            		
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1057:2: ( (t1= LEFTSHIFT | t2= RIGHTSHIFT ) v= arith_expr )*
             loop62:
             do {
@@ -4909,22 +4915,22 @@
             	        case 1 :
             	            // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1059:4: t1= LEFTSHIFT
             	            {
-            	            t1=(Token)input.LT(1);
-            	            match(input,LEFTSHIFT,FOLLOW_LEFTSHIFT_in_shift_expr3759); 
+            	            t1=input.LT(1);
+            	            match(input,LEFTSHIFT,FOLLOW_LEFTSHIFT_in_shift_expr3759);
 
             	            					tk = t1;
-            	            				
+
 
             	            }
             	            break;
             	        case 2 :
             	            // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1064:4: t2= RIGHTSHIFT
             	            {
-            	            t2=(Token)input.LT(1);
-            	            match(input,RIGHTSHIFT,FOLLOW_RIGHTSHIFT_in_shift_expr3780); 
+            	            t2=input.LT(1);
+            	            match(input,RIGHTSHIFT,FOLLOW_RIGHTSHIFT_in_shift_expr3780);
 
             	            					tk = t2;
-            	            				
+
 
             	            }
             	            break;
@@ -4935,12 +4941,12 @@
             	    v=arith_expr();
             	    _fsp--;
 
-            	     
-            	      	 			if( tk == t1 ) 
+
+            	      	 			if( tk == t1 )
             	      	 				e = new BinaryExpression( e0, Expression.E_LSHIFT, v );
-            	      	 			else 
+            	      	 			else
             	      	 				e = new BinaryExpression( e0, Expression.E_RSHIFT, v);
-            	      	 		
+
 
             	    }
             	    break;
@@ -4996,10 +5002,10 @@
 
 
             		e = e0;
-            	
+
 
             			Token tk = null;
-            		
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1087:2: ( (t1= PLUS | t2= MINUS ) v= term )*
             loop64:
             do {
@@ -5035,22 +5041,22 @@
             	        case 1 :
             	            // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1089:4: t1= PLUS
             	            {
-            	            t1=(Token)input.LT(1);
-            	            match(input,PLUS,FOLLOW_PLUS_in_arith_expr3862); 
+            	            t1=input.LT(1);
+            	            match(input,PLUS,FOLLOW_PLUS_in_arith_expr3862);
 
             	            					tk = t1;
-            	            				
+
 
             	            }
             	            break;
             	        case 2 :
             	            // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1094:4: t2= MINUS
             	            {
-            	            t2=(Token)input.LT(1);
-            	            match(input,MINUS,FOLLOW_MINUS_in_arith_expr3882); 
-            	             
+            	            t2=input.LT(1);
+            	            match(input,MINUS,FOLLOW_MINUS_in_arith_expr3882);
+
             	            					tk = t2;
-            	            				
+
 
             	            }
             	            break;
@@ -5062,11 +5068,11 @@
             	    _fsp--;
 
 
-            	    	 	 		if( tk == t1 ) 
+            	    	 	 		if( tk == t1 )
             	    	 	 			e = new BinaryExpression( e0, Expression.E_PLUS, v );
-            	    	 	 		else 
+            	    	 	 		else
             	    	 	 			e = new BinaryExpression( e0, Expression.E_MINUS, v );
-            	    	 	 	
+
 
             	    }
             	    break;
@@ -5124,10 +5130,10 @@
 
 
             		e = e0;
-            	
+
 
             			int type = Expression.E_EMPTY;
-            		
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1117:2: ( (t1= STAR | t2= SLASH | t3= PERCENT | t4= DOUBLESLASH ) v= factor )*
             loop66:
             do {
@@ -5177,44 +5183,44 @@
             	        case 1 :
             	            // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1119:5: t1= STAR
             	            {
-            	            t1=(Token)input.LT(1);
-            	            match(input,STAR,FOLLOW_STAR_in_term3955); 
+            	            t1=input.LT(1);
+            	            match(input,STAR,FOLLOW_STAR_in_term3955);
 
             	            	  			type = Expression.E_MULT;
-            	            	  		
+
 
             	            }
             	            break;
             	        case 2 :
             	            // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1124:5: t2= SLASH
             	            {
-            	            t2=(Token)input.LT(1);
-            	            match(input,SLASH,FOLLOW_SLASH_in_term3979); 
+            	            t2=input.LT(1);
+            	            match(input,SLASH,FOLLOW_SLASH_in_term3979);
 
             	            	  			type = Expression.E_DIV;
-            	            	  		
+
 
             	            }
             	            break;
             	        case 3 :
             	            // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1129:6: t3= PERCENT
             	            {
-            	            t3=(Token)input.LT(1);
-            	            match(input,PERCENT,FOLLOW_PERCENT_in_term4004); 
+            	            t3=input.LT(1);
+            	            match(input,PERCENT,FOLLOW_PERCENT_in_term4004);
 
             	            	   			type = Expression.E_MOD;
-            	            	   		
+
 
             	            }
             	            break;
             	        case 4 :
             	            // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1134:7: t4= DOUBLESLASH
             	            {
-            	            t4=(Token)input.LT(1);
-            	            match(input,DOUBLESLASH,FOLLOW_DOUBLESLASH_in_term4032); 
+            	            t4=input.LT(1);
+            	            match(input,DOUBLESLASH,FOLLOW_DOUBLESLASH_in_term4032);
 
             	            	    			type = Expression.E_MOD;
-            	            	    		
+
 
             	            }
             	            break;
@@ -5227,7 +5233,7 @@
 
 
             	      	    		e = new BinaryExpression( e0,type,v );
-            	      	    	
+
 
             	    }
             	    break;
@@ -5295,7 +5301,7 @@
                     {
 
                     	  	Token tk = null;
-                    	  
+
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1150:4: (t1= PLUS | t2= MINUS | t3= TILDE )
                     int alt67=3;
                     switch ( input.LA(1) ) {
@@ -5325,33 +5331,33 @@
                         case 1 :
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1151:5: t1= PLUS
                             {
-                            t1=(Token)input.LT(1);
-                            match(input,PLUS,FOLLOW_PLUS_in_factor4104); 
+                            t1=input.LT(1);
+                            match(input,PLUS,FOLLOW_PLUS_in_factor4104);
 
                             	  			tk = t1;
-                            	  		
+
 
                             }
                             break;
                         case 2 :
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1156:5: t2= MINUS
                             {
-                            t2=(Token)input.LT(1);
-                            match(input,MINUS,FOLLOW_MINUS_in_factor4127); 
+                            t2=input.LT(1);
+                            match(input,MINUS,FOLLOW_MINUS_in_factor4127);
 
                             	  			tk = t2;
-                            	  		
+
 
                             }
                             break;
                         case 3 :
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1161:5: t3= TILDE
                             {
-                            t3=(Token)input.LT(1);
-                            match(input,TILDE,FOLLOW_TILDE_in_factor4149); 
+                            t3=input.LT(1);
+                            match(input,TILDE,FOLLOW_TILDE_in_factor4149);
 
                             	  			tk = t3;
-                            	  		
+
 
                             }
                             break;
@@ -5363,7 +5369,7 @@
                     _fsp--;
 
 
-                    	  		if( tk == t1 ) {	  			
+                    	  		if( tk == t1 ) {
                     	  			e = new UnaryExpression( toDLTK( tk ), Expression.E_PLUS, e0);
                     	  		}
                     	  		else if( tk == t2 ) {
@@ -5371,11 +5377,11 @@
                     	  		}
                     	  		else if( tk == t3 ) {
                     	  			e = new UnaryExpression( toDLTK( tk ), Expression.E_MINUS, e0);
-                    	  		}	  		
+                    	  		}
                     	  		else {
                     	  			e = new UnaryExpression( toDLTK( tk ), Expression.E_FACTOR, e0);
                     	  		}
-                    	  	
+
 
                     }
                     break;
@@ -5388,7 +5394,7 @@
 
 
                     		e = e0;
-                    	
+
 
                     }
                     break;
@@ -5441,7 +5447,7 @@
 
             			//Expression ex = exp;
             			exp = exp0;
-            		
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1194:3: (ex= trailer[ exp ] )*
             loop69:
             do {
@@ -5463,7 +5469,7 @@
 
 
             	    				exp = ex;
-            	    			
+
 
             	    }
             	    break;
@@ -5484,7 +5490,7 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1201:29: DOUBLESTAR expr0= factor
                     {
-                    match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_power4266); 
+                    match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_power4266);
                     pushFollow(FOLLOW_factor_in_power4284);
                     expr0=factor();
                     _fsp--;
@@ -5496,7 +5502,7 @@
                     //	  			testListExpr.addExpression( expr );
                     //	  			exp = testListExpr;
                     				exp = new BinaryExpression( exp, Expression.E_POWER, expr0 );
-                    	  		
+
 
                     }
                     break;
@@ -5553,7 +5559,7 @@
             		if( !( expr instanceof ExtendedVariableReference ) )
             			expr = new ExtendedVariableReference( expr );
             		ExtendedVariableReference exVariableReference = ( ExtendedVariableReference )expr;
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1224:2: (lp0= LPAREN (k= arglist )? rp0= RPAREN | lb1= LBRACK k= subscriptlist rb1= RBRACK | DOT ta= NAME )
             int alt72=3;
             switch ( input.LA(1) ) {
@@ -5583,8 +5589,8 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1225:3: lp0= LPAREN (k= arglist )? rp0= RPAREN
                     {
-                    lp0=(Token)input.LT(1);
-                    match(input,LPAREN,FOLLOW_LPAREN_in_trailer4332); 
+                    lp0=input.LT(1);
+                    match(input,LPAREN,FOLLOW_LPAREN_in_trailer4332);
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1226:4: (k= arglist )?
                     int alt71=2;
                     int LA71_0 = input.LA(1);
@@ -5606,52 +5612,52 @@
 
                     }
 
-                    rp0=(Token)input.LT(1);
-                    match(input,RPAREN,FOLLOW_RPAREN_in_trailer4356); 
+                    rp0=input.LT(1);
+                    match(input,RPAREN,FOLLOW_RPAREN_in_trailer4356);
 
                     				// This is Call lets' create it
                     				if( k == null )
                     					k = new EmptyExpression();
                     				exVariableReference.addExpression( new CallHolder( toDLTK(lp0), toDLTK(rp0), k ) );
                     				returnExpression = exVariableReference;
-                    			
+
 
                     }
                     break;
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1236:3: lb1= LBRACK k= subscriptlist rb1= RBRACK
                     {
-                    lb1=(Token)input.LT(1);
-                    match(input,LBRACK,FOLLOW_LBRACK_in_trailer4374); 
+                    lb1=input.LT(1);
+                    match(input,LBRACK,FOLLOW_LBRACK_in_trailer4374);
                     pushFollow(FOLLOW_subscriptlist_in_trailer4383);
                     k=subscriptlist();
                     _fsp--;
 
-                    rb1=(Token)input.LT(1);
-                    match(input,RBRACK,FOLLOW_RBRACK_in_trailer4392); 
+                    rb1=input.LT(1);
+                    match(input,RBRACK,FOLLOW_RBRACK_in_trailer4392);
 
                     				// This is subscript lets return it.
                     				//a = new PythonSubscriptAppender(k);
                     				//returnExpression = ExpressionConverter.getIndexed( expr, k );
                     				exVariableReference.addExpression( new IndexHolder( toDLTK(lb1), toDLTK(rb1), k ) );
                     				returnExpression = exVariableReference;
-                    			
+
 
                     }
                     break;
                 case 3 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1247:3: DOT ta= NAME
                     {
-                    match(input,DOT,FOLLOW_DOT_in_trailer4407); 
-                    ta=(Token)input.LT(1);
-                    match(input,NAME,FOLLOW_NAME_in_trailer4415); 
+                    match(input,DOT,FOLLOW_DOT_in_trailer4407);
+                    ta=input.LT(1);
+                    match(input,NAME,FOLLOW_NAME_in_trailer4415);
 
                     				//a=new PythonFieldAppenter(ta);
                     				//returnExpression = ExpressionConverter.getDotted( expr, new VariableReference( toDLTK( ta ) ) );
                     				//ta.setColumn(ta.getColumn()-1);
                     				exVariableReference.addExpression( new VariableReference( toDLTK( ta ) ) );
                     				returnExpression = exVariableReference;
-                    			
+
 
                     }
                     break;
@@ -5803,8 +5809,8 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1260:4: lb= LPAREN (exp0= tuplelist ) rb= RPAREN
                     {
-                    lb=(Token)input.LT(1);
-                    match(input,LPAREN,FOLLOW_LPAREN_in_atom4445); 
+                    lb=input.LT(1);
+                    match(input,LPAREN,FOLLOW_LPAREN_in_atom4445);
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1260:16: (exp0= tuplelist )
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1260:18: exp0= tuplelist
                     {
@@ -5816,29 +5822,29 @@
 
                     }
 
-                    rb=(Token)input.LT(1);
-                    match(input,RPAREN,FOLLOW_RPAREN_in_atom4463); 
-                     setStartEndForEmbracedExpr(exp,lb,rb); 
+                    rb=input.LT(1);
+                    match(input,RPAREN,FOLLOW_RPAREN_in_atom4463);
+                     setStartEndForEmbracedExpr(exp,lb,rb);
 
                     }
                     break;
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1261:4: lb= LPAREN rb= RPAREN
                     {
-                    lb=(Token)input.LT(1);
-                    match(input,LPAREN,FOLLOW_LPAREN_in_atom4474); 
-                     exp = new PythonTupleExpression(); 
-                    rb=(Token)input.LT(1);
-                    match(input,RPAREN,FOLLOW_RPAREN_in_atom4482); 
-                     setStartEndForEmbracedExpr(exp,lb,rb); 
+                    lb=input.LT(1);
+                    match(input,LPAREN,FOLLOW_LPAREN_in_atom4474);
+                     exp = new PythonTupleExpression();
+                    rb=input.LT(1);
+                    match(input,RPAREN,FOLLOW_RPAREN_in_atom4482);
+                     setStartEndForEmbracedExpr(exp,lb,rb);
 
                     }
                     break;
                 case 3 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1262:4: lb= LBRACK (exp0= listmaker ) rb= RBRACK
                     {
-                    lb=(Token)input.LT(1);
-                    match(input,LBRACK,FOLLOW_LBRACK_in_atom4494); 
+                    lb=input.LT(1);
+                    match(input,LBRACK,FOLLOW_LBRACK_in_atom4494);
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1262:16: (exp0= listmaker )
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1262:18: exp0= listmaker
                     {
@@ -5846,33 +5852,33 @@
                     exp0=listmaker();
                     _fsp--;
 
-                    exp = exp0; 
+                    exp = exp0;
 
                     }
 
-                    rb=(Token)input.LT(1);
-                    match(input,RBRACK,FOLLOW_RBRACK_in_atom4512); 
-                     setStartEndForEmbracedExpr(exp,lb,rb); 
+                    rb=input.LT(1);
+                    match(input,RBRACK,FOLLOW_RBRACK_in_atom4512);
+                     setStartEndForEmbracedExpr(exp,lb,rb);
 
                     }
                     break;
                 case 4 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1263:4: lb= LBRACK rb= RBRACK
                     {
-                    lb=(Token)input.LT(1);
-                    match(input,LBRACK,FOLLOW_LBRACK_in_atom4522); 
-                     exp = new PythonListExpression( ); 
-                    rb=(Token)input.LT(1);
-                    match(input,RBRACK,FOLLOW_RBRACK_in_atom4530); 
-                     setStartEndForEmbracedExpr(exp,lb,rb); 
+                    lb=input.LT(1);
+                    match(input,LBRACK,FOLLOW_LBRACK_in_atom4522);
+                     exp = new PythonListExpression( );
+                    rb=input.LT(1);
+                    match(input,RBRACK,FOLLOW_RBRACK_in_atom4530);
+                     setStartEndForEmbracedExpr(exp,lb,rb);
 
                     }
                     break;
                 case 5 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1264:4: a1= LCURLY (exp0= dictmaker ) rb= RCURLY
                     {
-                    a1=(Token)input.LT(1);
-                    match(input,LCURLY,FOLLOW_LCURLY_in_atom4541); 
+                    a1=input.LT(1);
+                    match(input,LCURLY,FOLLOW_LCURLY_in_atom4541);
                     lb =a1;
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1264:24: (exp0= dictmaker )
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1264:26: exp0= dictmaker
@@ -5881,58 +5887,58 @@
                     exp0=dictmaker();
                     _fsp--;
 
-                     exp = exp0; 
+                     exp = exp0;
 
                     }
 
-                    rb=(Token)input.LT(1);
-                    match(input,RCURLY,FOLLOW_RCURLY_in_atom4561); 
-                     setStartEndForEmbracedExpr(exp,lb,rb); 
+                    rb=input.LT(1);
+                    match(input,RCURLY,FOLLOW_RCURLY_in_atom4561);
+                     setStartEndForEmbracedExpr(exp,lb,rb);
 
                     }
                     break;
                 case 6 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1265:4: lb= LCURLY rb= RCURLY
                     {
-                    lb=(Token)input.LT(1);
-                    match(input,LCURLY,FOLLOW_LCURLY_in_atom4571); 
-                     exp = new PythonDictExpression(); 
-                    rb=(Token)input.LT(1);
-                    match(input,RCURLY,FOLLOW_RCURLY_in_atom4579); 
-                     setStartEndForEmbracedExpr(exp,lb,rb); 
+                    lb=input.LT(1);
+                    match(input,LCURLY,FOLLOW_LCURLY_in_atom4571);
+                     exp = new PythonDictExpression();
+                    rb=input.LT(1);
+                    match(input,RCURLY,FOLLOW_RCURLY_in_atom4579);
+                     setStartEndForEmbracedExpr(exp,lb,rb);
 
                     }
                     break;
                 case 7 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1266:4: lb= BACKQUOTE exp0= testlist rb= BACKQUOTE
                     {
-                    lb=(Token)input.LT(1);
-                    match(input,BACKQUOTE,FOLLOW_BACKQUOTE_in_atom4592); 
+                    lb=input.LT(1);
+                    match(input,BACKQUOTE,FOLLOW_BACKQUOTE_in_atom4592);
                     pushFollow(FOLLOW_testlist_in_atom4598);
                     exp0=testlist();
                     _fsp--;
 
-                     exp = exp0; 
-                    rb=(Token)input.LT(1);
-                    match(input,BACKQUOTE,FOLLOW_BACKQUOTE_in_atom4607); 
-                     setStartEndForEmbracedExpr(exp,lb,rb); 
+                     exp = exp0;
+                    rb=input.LT(1);
+                    match(input,BACKQUOTE,FOLLOW_BACKQUOTE_in_atom4607);
+                     setStartEndForEmbracedExpr(exp,lb,rb);
 
                     }
                     break;
                 case 8 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1267:4: n= NAME
                     {
-                    n=(Token)input.LT(1);
-                    match(input,NAME,FOLLOW_NAME_in_atom4617); 
-                     exp = new VariableReference( toDLTK( n ) ); 
+                    n=input.LT(1);
+                    match(input,NAME,FOLLOW_NAME_in_atom4617);
+                     exp = new VariableReference( toDLTK( n ) );
 
                     }
                     break;
                 case 9 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1268:4: i= INT
                     {
-                    i=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_atom4629); 
+                    i=input.LT(1);
+                    match(input,INT,FOLLOW_INT_in_atom4629);
                      exp = new NumericLiteral( toDLTK( i ) );
 
                     }
@@ -5940,8 +5946,8 @@
                 case 10 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1269:8: li= LONGINT
                     {
-                    li=(Token)input.LT(1);
-                    match(input,LONGINT,FOLLOW_LONGINT_in_atom4646); 
+                    li=input.LT(1);
+                    match(input,LONGINT,FOLLOW_LONGINT_in_atom4646);
                      exp=new NumericLiteral( toDLTK( li ) );
 
                     }
@@ -5949,8 +5955,8 @@
                 case 11 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1270:8: f= FLOAT
                     {
-                    f=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_atom4661); 
+                    f=input.LT(1);
+                    match(input,FLOAT,FOLLOW_FLOAT_in_atom4661);
                      exp=new NumericLiteral( toDLTK( f ) );
 
                     }
@@ -5958,9 +5964,9 @@
                 case 12 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1271:8: c= COMPLEX
                     {
-                    c=(Token)input.LT(1);
-                    match(input,COMPLEX,FOLLOW_COMPLEX_in_atom4679); 
-                     exp=new ComplexNumericLiteral( toDLTK( c ) ); 
+                    c=input.LT(1);
+                    match(input,COMPLEX,FOLLOW_COMPLEX_in_atom4679);
+                     exp=new ComplexNumericLiteral( toDLTK( c ) );
 
                     }
                     break;
@@ -5983,14 +5989,14 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1274:3: s= STRING
                     	    {
-                    	    s=(Token)input.LT(1);
-                    	    match(input,STRING,FOLLOW_STRING_in_atom4696); 
-                    	     
+                    	    s=input.LT(1);
+                    	    match(input,STRING,FOLLOW_STRING_in_atom4696);
+
                     	    				if( exp != null && exp instanceof StringLiteral  )
-                    	    					exp = new StringLiteral( exp.sourceStart(), toDLTK(s),  ((StringLiteral)exp).getValue() + s.getText() ); 
+                    	    					exp = new StringLiteral( exp.sourceStart(), toDLTK(s),  ((StringLiteral)exp).getValue() + s.getText() );
                     	    				else
-                    	    					exp = new StringLiteral( toDLTK( s ) ); 
-                    	    			
+                    	    					exp = new StringLiteral( toDLTK( s ) );
+
 
                     	    }
                     	    break;
@@ -6073,14 +6079,14 @@
                     {
 
                     				PythonListForExpression listExpr = new PythonListForExpression( firstExpr );
-                    			
+
                     pushFollow(FOLLOW_list_for_in_listmaker4743);
                     list_for( listExpr );
                     _fsp--;
 
 
                     				exp.addExpression( listExpr );
-                    			
+
 
                     }
 
@@ -6095,7 +6101,7 @@
                     {
 
                     				exp.addExpression( firstExpr );
-                    			
+
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1301:4: ( options {greedy=true; } : COMMA expr0= test )*
                     loop75:
                     do {
@@ -6117,14 +6123,14 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1303:5: COMMA expr0= test
                     	    {
-                    	    match(input,COMMA,FOLLOW_COMMA_in_listmaker4791); 
+                    	    match(input,COMMA,FOLLOW_COMMA_in_listmaker4791);
                     	    pushFollow(FOLLOW_test_in_listmaker4801);
                     	    expr0=test();
                     	    _fsp--;
 
 
                     	    					exp.addExpression( expr0 );
-                    	    				
+
 
                     	    }
                     	    break;
@@ -6145,7 +6151,7 @@
                         case 1 :
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1309:5: COMMA
                             {
-                            match(input,COMMA,FOLLOW_COMMA_in_listmaker4820); 
+                            match(input,COMMA,FOLLOW_COMMA_in_listmaker4820);
 
                             }
                             break;
@@ -6216,13 +6222,13 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1317:3: forToken= 'for' expr1= exprlist 'in' expr2= testlist (expr0= list_if )*
             	    {
-            	    forToken=(Token)input.LT(1);
-            	    match(input,88,FOLLOW_88_in_list_for4851); 
+            	    forToken=input.LT(1);
+            	    match(input,88,FOLLOW_88_in_list_for4851);
             	    pushFollow(FOLLOW_exprlist_in_list_for4859);
             	    expr1=exprlist();
             	    _fsp--;
 
-            	    match(input,82,FOLLOW_82_in_list_for4863); 
+            	    match(input,82,FOLLOW_82_in_list_for4863);
             	    pushFollow(FOLLOW_testlist_in_list_for4872);
             	    expr2=testlist();
             	    _fsp--;
@@ -6231,10 +6237,10 @@
             	    			PythonForListExpression forListExpression = new PythonForListExpression( expr1, expr2 );
             	    			forListExpression.setStart(toDLTK(forToken).getColumn());
             	    			list.addExpression( forListExpression );
-            	    		
+
 
             	    			PythonListExpression ifList = null;
-            	    		
+
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1329:3: (expr0= list_if )*
             	    loop78:
             	    do {
@@ -6260,7 +6266,7 @@
             	    	    				ifList.addExpression( expr0 );
             	    	    				ifList.setStart(expr0.sourceStart());
             	    	    				ifList.setEnd(expr0.sourceEnd());
-            	    	    			
+
 
             	    	    }
             	    	    break;
@@ -6272,8 +6278,8 @@
 
 
             	    				if( ifList != null )
-            	    					forListExpression.setIfListExpression( ifList );				
-            	    			
+            	    					forListExpression.setIfListExpression( ifList );
+
 
             	    }
             	    break;
@@ -6323,14 +6329,14 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1346:42: ( 'if' expr0= test )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1347:2: 'if' expr0= test
             {
-            match(input,84,FOLLOW_84_in_list_if4928); 
+            match(input,84,FOLLOW_84_in_list_if4928);
             pushFollow(FOLLOW_test_in_list_if4935);
             expr0=test();
             _fsp--;
 
 
             		expr = expr0;
-            	
+
 
             }
 
@@ -6368,14 +6374,14 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1352:40: (lambda= 'lambda' ( varargslist[ params ] )? COLON statement= test )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1353:2: lambda= 'lambda' ( varargslist[ params ] )? COLON statement= test
             {
-            lambda=(Token)input.LT(1);
-            match(input,96,FOLLOW_96_in_lambdef4956); 
+            lambda=input.LT(1);
+            match(input,96,FOLLOW_96_in_lambdef4956);
 
             		//ArrayList buf = this.fParameters;
             		//this.fParameters = new ArrayList();
             		List params = new ArrayList ();
             		//Expression statement;
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1360:2: ( varargslist[ params ] )?
             int alt80=2;
             int LA80_0 = input.LA(1);
@@ -6397,17 +6403,17 @@
 
             }
 
-            match(input,COLON,FOLLOW_COLON_in_lambdef4971); 
+            match(input,COLON,FOLLOW_COLON_in_lambdef4971);
             pushFollow(FOLLOW_test_in_lambdef4979);
             statement=test();
             _fsp--;
 
-            		
+
             		if( statement == null ) {
             			statement = new EmptyExpression( );
             		}
             		e = new PythonLambdaExpression( toDLTK( lambda ), params, statement );
-            	
+
 
             }
 
@@ -6471,14 +6477,14 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1374:26: COMMA k= subscript
             	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_subscriptlist5019); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_subscriptlist5019);
             	    pushFollow(FOLLOW_subscript_in_subscriptlist5028);
             	    k=subscript();
             	    _fsp--;
 
 
             	    				expression = new BinaryExpression( expression0, Expression.E_COMMA, k );
-            	    			
+
 
             	    }
             	    break;
@@ -6499,7 +6505,7 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1380:3: COMMA
                     {
-                    match(input,COMMA,FOLLOW_COMMA_in_subscriptlist5043); 
+                    match(input,COMMA,FOLLOW_COMMA_in_subscriptlist5043);
 
                     }
                     break;
@@ -6585,13 +6591,13 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1384:2: w= DOT DOT DOT
                     {
-                    w=(Token)input.LT(1);
-                    match(input,DOT,FOLLOW_DOT_in_subscript5067); 
-                    match(input,DOT,FOLLOW_DOT_in_subscript5069); 
-                    match(input,DOT,FOLLOW_DOT_in_subscript5071); 
+                    w=input.LT(1);
+                    match(input,DOT,FOLLOW_DOT_in_subscript5067);
+                    match(input,DOT,FOLLOW_DOT_in_subscript5069);
+                    match(input,DOT,FOLLOW_DOT_in_subscript5071);
 
                     			expression = new PythonSubscriptExpression( toDLTK( w ) );
-                    		
+
 
                     }
                     break;
@@ -6602,15 +6608,15 @@
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1391:3: tu= test ( COLON (tu1= test )? (tu= sliceop )? )?
                     {
 
-                    			expression = new PythonSubscriptExpression( );	
-                    		
+                    			expression = new PythonSubscriptExpression( );
+
                     pushFollow(FOLLOW_test_in_subscript5096);
                     tu=test();
                     _fsp--;
 
 
                     				expression.setTest( tu );
-                    			
+
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1398:3: ( COLON (tu1= test )? (tu= sliceop )? )?
                     int alt85=2;
                     int LA85_0 = input.LA(1);
@@ -6622,7 +6628,7 @@
                         case 1 :
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1399:4: COLON (tu1= test )? (tu= sliceop )?
                             {
-                            match(input,COLON,FOLLOW_COLON_in_subscript5111); 
+                            match(input,COLON,FOLLOW_COLON_in_subscript5111);
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1400:4: (tu1= test )?
                             int alt83=2;
                             int LA83_0 = input.LA(1);
@@ -6640,7 +6646,7 @@
 
 
                                     						expression.setCondition( tu1 );
-                                    					
+
 
                                     }
                                     break;
@@ -6664,7 +6670,7 @@
 
 
                                     						expression.setSlice( tu );
-                                    					
+
 
                                     }
                                     break;
@@ -6691,8 +6697,8 @@
                     {
 
                     			expression = new PythonSubscriptExpression( );
-                    		
-                    match(input,COLON,FOLLOW_COLON_in_subscript5199); 
+
+                    match(input,COLON,FOLLOW_COLON_in_subscript5199);
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1420:8: (tu1= test )?
                     int alt86=2;
                     int LA86_0 = input.LA(1);
@@ -6710,7 +6716,7 @@
 
 
                                 						expression.setCondition( tu1 );
-                                					
+
 
                             }
                             break;
@@ -6734,7 +6740,7 @@
 
 
                                 						expression.setSlice( tu );
-                                					
+
 
                             }
                             break;
@@ -6782,7 +6788,7 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1437:40: ( COLON (e0= test )? )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1438:2: COLON (e0= test )?
             {
-            match(input,COLON,FOLLOW_COLON_in_sliceop5329); 
+            match(input,COLON,FOLLOW_COLON_in_sliceop5329);
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1439:2: (e0= test )?
             int alt89=2;
             int LA89_0 = input.LA(1);
@@ -6798,7 +6804,7 @@
                     e0=test();
                     _fsp--;
 
-                     e = e0; 
+                     e = e0;
 
                     }
                     break;
@@ -6849,7 +6855,7 @@
             		p.addExpression( e );
             		p.setStart(e.sourceStart());
             		p.setEnd(e.sourceEnd());
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1450:2: ( options {k=2; greedy=true; } : COMMA e= expr )*
             loop90:
             do {
@@ -6871,7 +6877,7 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1451:3: COMMA e= expr
             	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_exprlist5387); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_exprlist5387);
             	    pushFollow(FOLLOW_expr_in_exprlist5396);
             	    e=expr();
             	    _fsp--;
@@ -6881,7 +6887,7 @@
             	    				if( e.sourceEnd() > p.sourceEnd() ) {
             	    					p.setEnd( e.sourceEnd() );
             	    				}
-            	    			
+
 
             	    }
             	    break;
@@ -6902,7 +6908,7 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1460:3: COMMA
                     {
-                    match(input,COMMA,FOLLOW_COMMA_in_exprlist5410); 
+                    match(input,COMMA,FOLLOW_COMMA_in_exprlist5410);
 
                     }
                     break;
@@ -6948,12 +6954,12 @@
 
             		PythonTestListExpression listExpression = new PythonTestListExpression();
             		int end = -1;
-            	
+
             pushFollow(FOLLOW_test_in_testlist5437);
             e0=test();
             _fsp--;
 
-            		
+
             		p = e0;
             		listExpression.addExpression( e0 );
             		if( p != null) {
@@ -6961,7 +6967,7 @@
             			end = p.sourceEnd();
             			listExpression.setEnd(end);
             		}
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1479:6: ( options {k=2; greedy=true; } : COMMA e0= test )*
             loop92:
             do {
@@ -6986,7 +6992,7 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1480:7: COMMA e0= test
             	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_testlist5466); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_testlist5466);
             	    pushFollow(FOLLOW_test_in_testlist5478);
             	    e0=test();
             	    _fsp--;
@@ -6997,7 +7003,7 @@
             	        				}
             	        				listExpression.addExpression( e0 );
             	        				p = listExpression;
-            	        			
+
 
             	    }
             	    break;
@@ -7018,7 +7024,7 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1490:33: COMMA
                     {
-                    match(input,COMMA,FOLLOW_COMMA_in_testlist5513); 
+                    match(input,COMMA,FOLLOW_COMMA_in_testlist5513);
 
                     }
                     break;
@@ -7029,7 +7035,7 @@
                     	if( end != -1 && p != null ) {
                     		p.setEnd(end);
                     	}
-                    
+
 
             }
 
@@ -7076,7 +7082,7 @@
             			p = new EmptyExpression();
             		}
             		//p.addExpression( e );
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1506:6: ( options {greedy=true; } : COMMA e0= test )*
             loop94:
             do {
@@ -7098,7 +7104,7 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1507:7: COMMA e0= test
             	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_tuplelist5572); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_tuplelist5572);
             	    pushFollow(FOLLOW_test_in_tuplelist5584);
             	    e0=test();
             	    _fsp--;
@@ -7111,7 +7117,7 @@
             	        				}
             	        				PythonTupleExpression tup = (PythonTupleExpression)p;
             	        				tup.addExpression( e0 );
-            	        			
+
 
             	    }
             	    break;
@@ -7132,7 +7138,7 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1519:33: COMMA
                     {
-                    match(input,COMMA,FOLLOW_COMMA_in_tuplelist5620); 
+                    match(input,COMMA,FOLLOW_COMMA_in_tuplelist5620);
 
                     }
                     break;
@@ -7180,8 +7186,8 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1521:40: (w_token= 'with' exp_what= test ( 'as' exp_as= testlist )? COLON block= suite )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1522:2: w_token= 'with' exp_what= test ( 'as' exp_as= testlist )? COLON block= suite
             {
-            w_token=(Token)input.LT(1);
-            match(input,97,FOLLOW_97_in_with_stmt5652); 
+            w_token=input.LT(1);
+            match(input,97,FOLLOW_97_in_with_stmt5652);
             pushFollow(FOLLOW_test_in_with_stmt5660);
             exp_what=test();
             _fsp--;
@@ -7197,7 +7203,7 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1525:4: 'as' exp_as= testlist
                     {
-                    match(input,79,FOLLOW_79_in_with_stmt5668); 
+                    match(input,79,FOLLOW_79_in_with_stmt5668);
                     pushFollow(FOLLOW_testlist_in_with_stmt5674);
                     exp_as=testlist();
                     _fsp--;
@@ -7208,7 +7214,7 @@
 
             }
 
-            match(input,COLON,FOLLOW_COLON_in_with_stmt5680); 
+            match(input,COLON,FOLLOW_COLON_in_with_stmt5680);
             pushFollow(FOLLOW_suite_in_with_stmt5686);
             block=suite();
             _fsp--;
@@ -7216,7 +7222,7 @@
 
             		DLTKToken token = toDLTK(w_token);
             		st = new PythonWithStatement(token, exp_what, exp_as, block, token.getColumn(), block.sourceEnd());
-            	
+
 
             }
 
@@ -7263,14 +7269,14 @@
             t1=test();
             _fsp--;
 
-            match(input,COLON,FOLLOW_COLON_in_dictmaker5711); 
+            match(input,COLON,FOLLOW_COLON_in_dictmaker5711);
             pushFollow(FOLLOW_test_in_dictmaker5718);
             t2=test();
             _fsp--;
 
 
             			d.putExpression( t1, t2 );
-            		
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1540:9: ( options {k=2; greedy=true; } : COMMA t3= test COLON t4= test )*
             loop97:
             do {
@@ -7292,19 +7298,19 @@
             	case 1 :
             	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1541:37: COMMA t3= test COLON t4= test
             	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_dictmaker5754); 
+            	    match(input,COMMA,FOLLOW_COMMA_in_dictmaker5754);
             	    pushFollow(FOLLOW_test_in_dictmaker5769);
             	    t3=test();
             	    _fsp--;
 
-            	    match(input,COLON,FOLLOW_COLON_in_dictmaker5780); 
+            	    match(input,COLON,FOLLOW_COLON_in_dictmaker5780);
             	    pushFollow(FOLLOW_test_in_dictmaker5795);
             	    t4=test();
             	    _fsp--;
 
 
             	            			d.putExpression( t3, t4 );
-            	            		
+
 
             	    }
             	    break;
@@ -7325,7 +7331,7 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1549:10: COMMA
                     {
-                    match(input,COMMA,FOLLOW_COMMA_in_dictmaker5830); 
+                    match(input,COMMA,FOLLOW_COMMA_in_dictmaker5830);
 
                     }
                     break;
@@ -7375,13 +7381,13 @@
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1553:68: (c= 'class' tu= NAME (r= LPAREN (te= testlist )? m= RPAREN )? co= COLON sa= suite )
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1554:2: c= 'class' tu= NAME (r= LPAREN (te= testlist )? m= RPAREN )? co= COLON sa= suite
             {
-            c=(Token)input.LT(1);
-            match(input,98,FOLLOW_98_in_classdef5861); 
-            tu=(Token)input.LT(1);
-            match(input,NAME,FOLLOW_NAME_in_classdef5868); 
+            c=input.LT(1);
+            match(input,98,FOLLOW_98_in_classdef5861);
+            tu=input.LT(1);
+            match(input,NAME,FOLLOW_NAME_in_classdef5868);
 
             			classDeclaration = new PythonClassDeclaration( toDLTK( tu ), toDLTK(c) );
-            		
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1559:2: (r= LPAREN (te= testlist )? m= RPAREN )?
             int alt100=2;
             int LA100_0 = input.LA(1);
@@ -7393,8 +7399,8 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1560:3: r= LPAREN (te= testlist )? m= RPAREN
                     {
-                    r=(Token)input.LT(1);
-                    match(input,LPAREN,FOLLOW_LPAREN_in_classdef5887); 
+                    r=input.LT(1);
+                    match(input,LPAREN,FOLLOW_LPAREN_in_classdef5887);
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1561:4: (te= testlist )?
                     int alt99=2;
                     int LA99_0 = input.LA(1);
@@ -7416,8 +7422,8 @@
 
                     }
 
-                    m=(Token)input.LT(1);
-                    match(input,RPAREN,FOLLOW_RPAREN_in_classdef5908); 
+                    m=input.LT(1);
+                    match(input,RPAREN,FOLLOW_RPAREN_in_classdef5908);
 
                     				if (null != te)
                     				{
@@ -7432,23 +7438,23 @@
                     						classDeclaration.setParents( toDLTK( r ), exprList, toDLTK( m ) );
                     					}
                     				}
-                    					
-                    			
+
+
 
                     }
                     break;
 
             }
 
-            co=(Token)input.LT(1);
-            match(input,COLON,FOLLOW_COLON_in_classdef5924); 
+            co=input.LT(1);
+            match(input,COLON,FOLLOW_COLON_in_classdef5924);
             pushFollow(FOLLOW_suite_in_classdef5931);
             sa=suite();
             _fsp--;
 
 
                   			classDeclaration.setBody( toDLTK(co), sa, sa.sourceEnd() );
-            		
+
 
             }
 
@@ -7534,7 +7540,7 @@
 
 
                     				expressions.addExpression( k );
-                    			
+
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1593:11: ( options {greedy=true; } : COMMA k= argument )*
                     loop101:
                     do {
@@ -7556,14 +7562,14 @@
                     	case 1 :
                     	    // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1594:35: COMMA k= argument
                     	    {
-                    	    match(input,COMMA,FOLLOW_COMMA_in_arglist6003); 
+                    	    match(input,COMMA,FOLLOW_COMMA_in_arglist6003);
                     	    pushFollow(FOLLOW_argument_in_arglist6021);
                     	    k=argument();
                     	    _fsp--;
 
 
                     	             				expressions.addExpression( k );
-                    	             			
+
 
                     	    }
                     	    break;
@@ -7584,7 +7590,7 @@
                         case 1 :
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1601:4: COMMA ( STAR k= test ( COMMA DOUBLESTAR k= test )? | DOUBLESTAR k= test )?
                             {
-                            match(input,COMMA,FOLLOW_COMMA_in_arglist6059); 
+                            match(input,COMMA,FOLLOW_COMMA_in_arglist6059);
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1602:4: ( STAR k= test ( COMMA DOUBLESTAR k= test )? | DOUBLESTAR k= test )?
                             int alt103=3;
                             int LA103_0 = input.LA(1);
@@ -7599,14 +7605,14 @@
                                 case 1 :
                                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1603:5: STAR k= test ( COMMA DOUBLESTAR k= test )?
                                     {
-                                    match(input,STAR,FOLLOW_STAR_in_arglist6071); 
+                                    match(input,STAR,FOLLOW_STAR_in_arglist6071);
                                     pushFollow(FOLLOW_test_in_arglist6082);
                                     k=test();
                                     _fsp--;
 
 
                                                 					expressions.addExpression( k );
-                                                				
+
                                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1608:16: ( COMMA DOUBLESTAR k= test )?
                                     int alt102=2;
                                     int LA102_0 = input.LA(1);
@@ -7618,15 +7624,15 @@
                                         case 1 :
                                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1609:17: COMMA DOUBLESTAR k= test
                                             {
-                                            match(input,COMMA,FOLLOW_COMMA_in_arglist6138); 
-                                            match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_arglist6157); 
+                                            match(input,COMMA,FOLLOW_COMMA_in_arglist6138);
+                                            match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_arglist6157);
                                             pushFollow(FOLLOW_test_in_arglist6180);
                                             k=test();
                                             _fsp--;
 
 
                                                         						expressions.addExpression( k );
-                                                        					
+
 
                                             }
                                             break;
@@ -7639,14 +7645,14 @@
                                 case 2 :
                                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1617:14: DOUBLESTAR k= test
                                     {
-                                    match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_arglist6249); 
+                                    match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_arglist6249);
                                     pushFollow(FOLLOW_test_in_arglist6269);
                                     k=test();
                                     _fsp--;
 
 
                                               					expressions.addExpression( k );
-                                              				
+
 
                                     }
                                     break;
@@ -7665,14 +7671,14 @@
                 case 2 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1625:3: STAR k= test ( COMMA DOUBLESTAR k= test )?
                     {
-                    match(input,STAR,FOLLOW_STAR_in_arglist6308); 
+                    match(input,STAR,FOLLOW_STAR_in_arglist6308);
                     pushFollow(FOLLOW_test_in_arglist6317);
                     k=test();
                     _fsp--;
 
 
                     				expressions.addExpression( k );
-                    			
+
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1630:3: ( COMMA DOUBLESTAR k= test )?
                     int alt105=2;
                     int LA105_0 = input.LA(1);
@@ -7684,15 +7690,15 @@
                         case 1 :
                             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1631:4: COMMA DOUBLESTAR k= test
                             {
-                            match(input,COMMA,FOLLOW_COMMA_in_arglist6333); 
-                            match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_arglist6339); 
+                            match(input,COMMA,FOLLOW_COMMA_in_arglist6333);
+                            match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_arglist6339);
                             pushFollow(FOLLOW_test_in_arglist6349);
                             k=test();
                             _fsp--;
 
 
                             					expressions.addExpression( k );
-                            				
+
 
                             }
                             break;
@@ -7705,14 +7711,14 @@
                 case 3 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1639:3: DOUBLESTAR k= test
                     {
-                    match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_arglist6369); 
+                    match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_arglist6369);
                     pushFollow(FOLLOW_test_in_arglist6378);
                     k=test();
                     _fsp--;
 
 
                     				expressions.addExpression( k );
-                    			
+
 
                     }
                     break;
@@ -7763,7 +7769,7 @@
 
 
             		e = e0;
-            	
+
             // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1652:2: ( ASSIGN k= test )?
             int alt107=2;
             int LA107_0 = input.LA(1);
@@ -7775,14 +7781,14 @@
                 case 1 :
                     // /home/leon/workspace/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/parsers/python_v3.g:1653:3: ASSIGN k= test
                     {
-                    match(input,ASSIGN,FOLLOW_ASSIGN_in_argument6426); 
+                    match(input,ASSIGN,FOLLOW_ASSIGN_in_argument6426);
                     pushFollow(FOLLOW_test_in_argument6435);
                     k=test();
                     _fsp--;
 
 
                     				e = new Assignment( e, k );
-                    			
+
 
                     }
                     break;
@@ -7813,7 +7819,7 @@
     // $ANTLR end argument
 
 
- 
+
 
     public static final BitSet FOLLOW_NEWLINE_in_file_input101 = new BitSet(new long[]{0x03F58C00000005C0L,0x00000007439B7FF0L});
     public static final BitSet FOLLOW_stmt_in_file_input126 = new BitSet(new long[]{0x03F58C00000005C0L,0x00000007439B7FF0L});
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/search/PythonSearchFactory.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/search/PythonSearchFactory.java
index b98f229..c25101e 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/search/PythonSearchFactory.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/internal/core/search/PythonSearchFactory.java
@@ -9,6 +9,7 @@
  */
 public class PythonSearchFactory extends AbstractSearchFactory {
 
+	@Override
 	public IMatchLocatorParser createMatchParser(MatchLocator locator) {
 		return new PythonMatchLocationParser(locator);
 	}
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/PythonParserPlugin.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/PythonParserPlugin.java
index e66acd5..e12ebb8 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/PythonParserPlugin.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/PythonParserPlugin.java
@@ -5,7 +5,7 @@
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
+
  *******************************************************************************/
 package org.eclipse.dltk.python.parser;
 
@@ -19,7 +19,7 @@
 
 	//The shared instance.
 	private static PythonParserPlugin plugin;
-	
+
 	/**
 	 * The constructor.
 	 */
@@ -30,6 +30,7 @@
 	/**
 	 * This method is called upon plug-in activation
 	 */
+	@Override
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
 	}
@@ -37,6 +38,7 @@
 	/**
 	 * This method is called when the plug-in is stopped
 	 */
+	@Override
 	public void stop(BundleContext context) throws Exception {
 		super.stop(context);
 		plugin = null;
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonAssertStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonAssertStatement.java
index 0828194..6c22ec8 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonAssertStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonAssertStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast;
 
@@ -35,13 +34,15 @@
 		this.fExpression1 = expr1;
 	}
 
-	
+
+	@Override
 	public int getKind( ) {
 
 		return PythonConstants.S_ASSERT;
 	}
 
-	
+
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
@@ -54,18 +55,19 @@
 			pVisitor.endvisit( this );
 		}
 	}
-	
-	
+
+
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		output.formatPrintLn( "assert:" );
 		if( this.fExpression1 != null ) {
 			this.fExpression1.printNode(output);
-		}		
+		}
 		if( this.fExpression2 != null ) {
 			output.formatPrintLn(",");
 			this.fExpression2.printNode(output);
-		}		
+		}
 	}
 
 }
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonClassDeclaration.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonClassDeclaration.java
index 411ab86..0b618fd 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonClassDeclaration.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonClassDeclaration.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast;
 
@@ -24,7 +23,7 @@
 
 
 public class PythonClassDeclaration extends TypeDeclaration
-{	
+{
 	public PythonClassDeclaration( DLTKToken nameDLTKToken, int start, int end ) {
 
 		super( nameDLTKToken, start, end );
@@ -38,30 +37,31 @@
 		ASTListNode s = new ASTListNode();
 		s.getChilds().addAll(supers.getExpressions());
 		s.setStart(supers.sourceStart());
-		s.setEnd(supers.sourceEnd());		
+		s.setEnd(supers.sourceEnd());
 		this.setSuperClasses( s );
 		this.setParentStart( pStart.getColumn( ) );
 		this.setParentEnd( pEnd.getColumn( ) );
 	}
-	
+
 	/**
-	 * Return super class names. 
+	 * Return super class names.
 	 * @return
 	 */
+	@Override
 	public List/*<String>*/ getSuperClassNames()
 	{
-		List/*< String >*/ names = new ArrayList/*< String >*/();		
+		List/*< String >*/ names = new ArrayList/*< String >*/();
 		if( this.fSuperClasses != null ) {
 			List/*< Expression >*/ superClasseExpressions = this.fSuperClasses.getChilds();
 			Iterator i = superClasseExpressions.iterator();
 			while( i.hasNext() ) {
 				Expression expr = (Expression)i.next();
 				if( expr instanceof SimpleReference ) {
-					names.add( ((SimpleReference)expr ).getName() ); 
+					names.add( ((SimpleReference)expr ).getName() );
 				}
 				else if( expr instanceof ExtendedVariableReference ) {
 					// TODO: Add correct solution here.
-					ExtendedVariableReference ref = (ExtendedVariableReference)expr; 
+					ExtendedVariableReference ref = (ExtendedVariableReference)expr;
 					List/*< Expression >*/ exprs = ref.getExpressions();
 					boolean notAllSR = false;
 					Iterator j = exprs.iterator();
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonDelStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonDelStatement.java
index a4e3096..f37db3d 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonDelStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonDelStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast;
 
@@ -23,10 +22,12 @@
 		}
 	}
 
+	@Override
 	public int getKind() {
 		return PythonConstants.S_DELETE;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 
 		output.formatPrintLn("del ");
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonExceptStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonExceptStatement.java
index b24ab11..2670aa6 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonExceptStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonExceptStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast;
 
@@ -21,12 +20,12 @@
 {
 
 	private Expression fMessage;
-	
+
 	public PythonExceptStatement( DLTKToken t, Expression expr, Expression message, Block body ) {
 
 		super( t, expr, body );
 		this.fMessage = message;
-		
+
 		if( fMessage != null && fMessage.sourceEnd() > this.sourceEnd() ) {
 			this.setEnd( fMessage.sourceEnd());
 		}
@@ -37,29 +36,31 @@
 			this.setEnd( body.sourceEnd() );
 		}
 	}
-	
+
+	@Override
 	public int getKind( ) {
 		return PythonConstants.S_EXCEPT;
 	}
-	
+
 	public Expression getMessage( ) {
 		return this.fMessage;
 	}
-	
-	
+
+
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit(this) ) {
 			Expression expression = this.getExpression();
 			Block body = this.getBody();
 			if( expression != null ) {
-				expression.traverse(pVisitor);				
+				expression.traverse(pVisitor);
 			}
-			
+
 			if( this.fMessage != null ) {
 				this.fMessage.traverse(pVisitor);
 			}
-						
+
 			if( body != null ) {
 				body.traverse(pVisitor);
 			}
@@ -68,14 +69,15 @@
 
 	}
 
-	
+
+	@Override
 	public void printNode( CorePrinter output ) {
 		output.formatPrintLn( "except:" );
 		Expression expression = this.getExpression();
 		Block body = this.getBody();
-		
+
 		if( expression != null ) {
-			expression.printNode(output);			
+			expression.printNode(output);
 		}
 		if( this.fMessage != null ) {
 			output.formatPrintLn(",");
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonForStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonForStatement.java
index 21331e0..ac069bb 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonForStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonForStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast;
 
@@ -39,7 +38,8 @@
 		this.setEnd(elseExpression.sourceEnd());
 	}
 
-	
+
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
@@ -64,6 +64,7 @@
 		}
 	}
 
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		output.formatPrintLn( "for: " );
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonImportFromStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonImportFromStatement.java
index d1d04f9..38f391b 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonImportFromStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonImportFromStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast;
 
@@ -43,11 +42,13 @@
 		}
 	}
 
+	@Override
 	public int getKind() {
 
 		return PythonConstants.S_IMPORTFROM;
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 
 		if (pVisitor.visit(this)) {
@@ -65,7 +66,7 @@
 
 	/**
 	 * return import from module name.
-	 * 
+	 *
 	 * @return
 	 */
 	public String getImportModuleName() {
@@ -109,6 +110,7 @@
 		return importedAsNames;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 
 		output.formatPrintLn("from ");
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonImportStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonImportStatement.java
index 0fcb8b0..e7502f4 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonImportStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonImportStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast;
 
@@ -34,12 +33,14 @@
 		super( t, expression );
 	}
 
-	
+
+	@Override
 	public int getKind( ) {
 		return PythonConstants.S_IMPORT;
 	}
 
-	
+
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		output.formatPrintLn( "import " );
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonRaiseStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonRaiseStatement.java
index a231b90..5ac7730 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonRaiseStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonRaiseStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast;
 
@@ -39,6 +38,7 @@
 		}
 	}
 
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
@@ -96,13 +96,15 @@
 		}
 	}
 
-	
+
+	@Override
 	public int getKind( ) {
 
 		return PythonConstants.S_RAISE;
 	}
 
-	
+
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		output.formatPrintLn( "Raise " );
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonTryStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonTryStatement.java
index 09ac373..36d0afd 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonTryStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonTryStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast;
 
@@ -51,6 +50,7 @@
 		}
 	}
 
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
@@ -74,7 +74,8 @@
 		}
 	}
 
-	
+
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		output.formatPrintLn( "try:" );
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonWhileStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonWhileStatement.java
index 3e81b74..5088263 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonWhileStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonWhileStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast;
 
@@ -44,14 +43,15 @@
 
 		return this.fElseStatement;
 	}
-	
-	
+
+
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
 			Statement condition = this.getCondition();
-			Statement action = this.getAction();			
-			
+			Statement action = this.getAction();
+
 			if( condition != null ) {
 				condition.traverse( pVisitor );
 			}
@@ -64,34 +64,35 @@
 			pVisitor.endvisit( this );
 		}
 	}
-	
+
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		output.formatPrintLn( "while: " );
-		
+
 		Statement condition = this.getCondition();
 		Statement action = this.getAction();
-		
+
 		if( condition != null  ) {
-			condition.printNode(output);			
+			condition.printNode(output);
 		}
 		if( action != null ) {
 			if( !( action instanceof Block ) ) {
-				output.indent();				
+				output.indent();
 			}
 			action.printNode(output);
 			if( !( action instanceof Block ) ) {
-				output.dedent();				
+				output.dedent();
 			}
 		}
 		if( this.fElseStatement != null ) {
 			output.formatPrintLn("Else");
 			if( !( this.fElseStatement instanceof Block ) ) {
-				output.indent();				
-			}			
+				output.indent();
+			}
 			this.fElseStatement.printNode(output);
 			if( !( this.fElseStatement instanceof Block ) ) {
-				output.dedent();				
+				output.dedent();
 			}
 		}
 		output.formatPrint( "" );
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonWithStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonWithStatement.java
index 2397e07..90e04e0 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonWithStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonWithStatement.java
@@ -12,7 +12,7 @@
 	private Expression what;
 	private Expression as;
 	private Block block;
-	
+
 	public PythonWithStatement(DLTKToken token, Expression what, Expression as, Block block, int start, int end)
 	{
 		super(token);
@@ -23,11 +23,13 @@
 		this.block = block;
 	}
 
+	@Override
 	public int getKind()
 	{
 		return PythonConstants.S_WITH;
 	}
 
+	@Override
 	public void traverse(ASTVisitor visitor) throws Exception
 	{
 		if (visitor.visit(this))
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonYieldStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonYieldStatement.java
index c5b1b31..4f74529 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonYieldStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/PythonYieldStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast;
 
@@ -18,15 +17,17 @@
 public class PythonYieldStatement extends SimpleStatement {
 
 	public PythonYieldStatement(DLTKToken t, Expression expression) {
-		super(t, expression);		
+		super(t, expression);
 	}
 
-	
+
+	@Override
 	public int getKind() {
 		return PythonConstants.S_YIELD;
 	}
 
-	
+
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		output.formatPrintLn( "yield " );
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/Assignment.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/Assignment.java
index 6656419..9534d92 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/Assignment.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/Assignment.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 /*
  * (c) 2002, 2005 xored software and others all rights reserved. http://www.xored.com
@@ -20,12 +19,12 @@
  */
 public class Assignment extends BinaryExpression
 {
-	
+
 	public static final Assignment[] EMPTY_ARRAY = new Assignment[0];
 
 	/**
 	 * Construct from left, right and type expression. Used to construct NotStrictAssignment class.
-	 * 
+	 *
 	 * @param left
 	 * @param type
 	 * @param right
@@ -37,7 +36,7 @@
 
 	/**
 	 * Construct default strict assignment.
-	 * 
+	 *
 	 * @param left
 	 * @param right
 	 */
@@ -49,6 +48,7 @@
 	/**
 	 * Convert to string in pettern: "left = right"
 	 */
+	@Override
 	public String toString( ) {
 		return getLeft().toString( ) + '=' + getRight().toString( );
 	}
@@ -56,6 +56,7 @@
 	/**
 	 * Testing purposes only. Used to print expression.
 	 */
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		if( getLeft() != null ) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/BinaryExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/BinaryExpression.java
index fde7ee4..75ac2df 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/BinaryExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/BinaryExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 /*
  * (c) 2002, 2005 xored software and others all rights reserved. http://www.xored.com
@@ -23,7 +22,7 @@
 public class BinaryExpression extends Expression {
 	private Statement left;
 	private Statement right;
-	
+
 	protected int kind;
 
 	public BinaryExpression(Statement left, int kind, Statement right) {
@@ -48,6 +47,7 @@
 		return right;
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			if (left != null) {
@@ -62,6 +62,7 @@
 		}
 	}
 
+	@Override
 	public String toString() {
 		String out = "";
 		if (left != null) {
@@ -76,10 +77,12 @@
 		return out;
 	}
 
+	@Override
 	public int getKind() {
 		return kind;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		if (this.left != null) {
 			this.left.printNode(output);
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/CallHolder.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/CallHolder.java
index 221cef1..bd35aa7 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/CallHolder.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/CallHolder.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -16,9 +15,9 @@
 
 /**
  * Holds call arguments. Used to ExtendedVariableReference holding.
- * 
+ *
  * @author haiodo
- * 
+ *
  */
 public class CallHolder extends Expression {
 	/**
@@ -38,10 +37,12 @@
 		this.fArguments = k;
 	}
 
+	@Override
 	public int getKind() {
 		return Expression.E_CALL;
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			if (this.fArguments != null) {
@@ -55,6 +56,7 @@
 		return fArguments;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("( ");
 		if (this.fArguments != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/ComplexNumericLiteral.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/ComplexNumericLiteral.java
index cec9a84..bd30b55 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/ComplexNumericLiteral.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/ComplexNumericLiteral.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -21,14 +20,15 @@
 
 		super( number );
 		char c = this.fLiteralValue.charAt( this.fLiteralValue.length() - 1 );
-		if(  c == 'j' || c == 'J' ) {					
+		if(  c == 'j' || c == 'J' ) {
 			String value = number.getText();
 			this.fLiteralValue = value.substring(0, value.length() - 1 );
 			this.setEnd( this.sourceStart() + this.fLiteralValue.length() );
 		}
 	}
-	
+
+	@Override
 	public void printNode( CorePrinter output ) {
-		output.formatPrintLn( this.getValue() + "j" );		
+		output.formatPrintLn( this.getValue() + "j" );
 	}
 }
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/Curly.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/Curly.java
index e22d384..50f8de2 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/Curly.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/Curly.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -18,7 +17,7 @@
 public class Curly extends UnaryExpression {
 	/**
 	 * Construct curly.
-	 * 
+	 *
 	 * @param start
 	 * @param end
 	 * @param e
@@ -30,6 +29,7 @@
 	/**
 	 * Testing purposes only. Print curly with expression.
 	 */
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn(" { ");
 		if (this.expression != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/EmptyExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/EmptyExpression.java
index 5deea8c..fa27f82 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/EmptyExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/EmptyExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -19,10 +18,12 @@
 	public EmptyExpression() {
 	}
 
+	@Override
 	public int getKind() {
 		return E_EMPTY;
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			pVisitor.endvisit(this);
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/ExtendedVariableReference.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/ExtendedVariableReference.java
index 133e785..b6287ed 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/ExtendedVariableReference.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/ExtendedVariableReference.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 /*
  * (c) 2002, 2005 xored software and others all rights reserved. http://www.xored.com
@@ -50,6 +49,7 @@
 	/**
 	 * Return Identifier Kind.
 	 */
+	@Override
 	public int getKind() {
 		return E_IDENTIFIER;
 	}
@@ -57,7 +57,7 @@
 	/**
 	 * Adding expression to extended variable. Use only in parsers then
 	 * construct.
-	 * 
+	 *
 	 * @param expr
 	 */
 	public void addExpression(Expression expr) {
@@ -71,7 +71,7 @@
 
 	/**
 	 * Set Expressions. Use only in parsers then construct.
-	 * 
+	 *
 	 * @param exprs
 	 */
 	public void setExpresssions(List exprs) {
@@ -80,7 +80,7 @@
 
 	/**
 	 * Return expressions.
-	 * 
+	 *
 	 * @return
 	 */
 	public List getExpressions() {
@@ -153,6 +153,7 @@
 	 */
 
 	// TODO: FIX MY PERFOMANCE
+	@Override
 	public String getStringRepresentation() {
 		StringBuffer b = new StringBuffer();
 		Iterator i = this.fExpressions.iterator();
@@ -184,7 +185,7 @@
 
 	/**
 	 * Return i'th expression. No index checking.
-	 * 
+	 *
 	 * @param i
 	 * @return expression on i' position.
 	 */
@@ -197,7 +198,7 @@
 
 	/**
 	 * Return expressions count.
-	 * 
+	 *
 	 * @return
 	 */
 	public int getExpressionCount() {
@@ -209,7 +210,7 @@
 
 	/**
 	 * Return true then index == this.fExpressions.size() - 1
-	 * 
+	 *
 	 * @param index
 	 * @return
 	 */
@@ -223,6 +224,7 @@
 	/**
 	 * Testing purposes only. Print extended variable.
 	 */
+	@Override
 	public void printNode(CorePrinter output) {
 		List expressions = this.getExpressions();
 		boolean bFirst = true;
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/IndexHolder.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/IndexHolder.java
index b8c916e..1347b3b 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/IndexHolder.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/IndexHolder.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -16,9 +15,9 @@
 
 /**
  * Used to hold index expression in ExtendedVariables.
- * 
+ *
  * @author haiodo
- * 
+ *
  */
 public class IndexHolder extends Expression {
 	private Expression fIndex;
@@ -33,10 +32,12 @@
 		this.fIndex = k;
 	}
 
+	@Override
 	public int getKind() {
 		return Expression.E_INDEX;
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			if (this.fIndex != null) {
@@ -46,6 +47,7 @@
 		}
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("[");
 		if (this.fIndex != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/NotStrictAssignment.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/NotStrictAssignment.java
index a638095..128bd81 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/NotStrictAssignment.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/NotStrictAssignment.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 /*
  * (c) 2002, 2005 xored software and others all rights reserved. http://www.xored.com
@@ -18,13 +17,13 @@
 /**
  * NonStrict Assignment representation. Used to hold assignments such as +=, -=
  * etc.
- * 
+ *
  */
 public class NotStrictAssignment extends Assignment {
 
 	/**
 	 * Construct from Expression and expression type.
-	 * 
+	 *
 	 * @param left -
 	 *            left expression.
 	 * @param type -
@@ -40,6 +39,7 @@
 	 * Testing purposes only. Used to print expression.
 	 */
 
+	@Override
 	public void printNode(CorePrinter output) {
 		if (getLeft() != null) {
 			getLeft().printNode(output);
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PrintExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PrintExpression.java
index d76d365..705c9b3 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PrintExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PrintExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 /*
  * (c) 2002, 2005 xored software and others all rights reserved. http://www.xored.com
@@ -24,7 +23,7 @@
 
 	/**
 	 * Construct from ANTLR token and right expression.
-	 * 
+	 *
 	 * @param p
 	 * @param right
 	 */
@@ -39,6 +38,7 @@
 	/**
 	 * Testing purposes only. Print "print" expression.
 	 */
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("print ");
 		Statement expr = this.getExpression();
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonAllImportExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonAllImportExpression.java
index 8f13f09..845d57f 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonAllImportExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonAllImportExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -16,13 +15,15 @@
 
 public class PythonAllImportExpression extends Expression
 {
-	
+
+	@Override
 	public int getKind( ) {
 
 		return PythonConstants.E_ALLIMPORTS;
 	}
 
-	
+
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
@@ -30,6 +31,7 @@
 		}
 	}
 
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		output.formatPrintLn( "*" );
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonDictExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonDictExpression.java
index 77aafd5..641d224 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonDictExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonDictExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -56,13 +55,15 @@
 		super( t );
 	}
 
-	
+
+	@Override
 	public int getKind( ) {
 
 		return PythonConstants.E_DICT;
 	}
 
-	
+
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
@@ -88,6 +89,7 @@
 		this.fDictionary.add( new DictNode( key, value ) );
 	}
 
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		output.formatPrintLn( "{" );
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonForListExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonForListExpression.java
index adae174..2a0ae19 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonForListExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonForListExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -41,13 +40,15 @@
 		this.setEnd(from.sourceEnd());
 	}
 
-	
+
+	@Override
 	public int getKind( ) {
 
 		return PythonConstants.E_FORIFLIST;
 	}
 
-	
+
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
@@ -65,7 +66,8 @@
 
 	}
 
-	
+
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		output.formatPrintLn( "for " );
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonFunctionDecorator.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonFunctionDecorator.java
index 90cac0d..832577a 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonFunctionDecorator.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonFunctionDecorator.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -44,7 +43,8 @@
 		return this.fArguments;
 	}
 
-	
+
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
@@ -55,7 +55,8 @@
 		}
 	}
 
-	
+
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		String name = this.getName( );
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonImportAsExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonImportAsExpression.java
index b681ec1..4ea29e5 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonImportAsExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonImportAsExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -16,20 +15,21 @@
 
 
 public class PythonImportAsExpression extends PythonImportExpression
-{	
+{
 	private DLTKToken fAsName;
 	public PythonImportAsExpression( DLTKToken name, DLTKToken asName ) {
 
 		super( name );
-		
+
 		this.fAsName = asName;
 		this.setEnd(asName.getColumn() + asName.getText().length());
 	}
-	
+
+	@Override
 	public int getKind() {
 		return PythonConstants.E_IMPORTAS;
 	}
-	
+
 	public String getAsName() {
 		if( this.fAsName != null ) {
 			return this.fAsName.getText();
@@ -37,8 +37,9 @@
 		else {
 			return null;
 		}
-	}	
-	
+	}
+
+	@Override
 	public void printNode( CorePrinter output ) {
 		String name = this.getName();
 		if( this.fAsName != null && name != null ) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonImportExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonImportExpression.java
index 82680f1..7532c01 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonImportExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonImportExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -27,13 +26,15 @@
 		fName = t;
 	}
 
-	
+
+	@Override
 	public int getKind( ) {
 
 		return PythonConstants.E_IMPORT;
 	}
 
-	
+
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
@@ -52,6 +53,7 @@
 		}
 	}
 
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		if( this.fName != null ) {
@@ -59,6 +61,7 @@
 		}
 	}
 
+	@Override
 	public String toString( ) {
 
 		String text = "Python Import Expression:";
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonLambdaExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonLambdaExpression.java
index 79384e7..0e1d4ad 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonLambdaExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonLambdaExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -47,13 +46,15 @@
 		return this.fBodyExpressions;
 	}
 
-	
+
+	@Override
 	public int getKind( ) {
 
 		return PythonConstants.E_LAMBDA;
 	}
 
-	
+
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
@@ -72,6 +73,7 @@
 
 	}
 
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		output.formatPrintLn( "lambda " );
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonListExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonListExpression.java
index 41ca50e..f1a4ea3 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonListExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonListExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -21,26 +20,27 @@
 {
 	public PythonListExpression( ) {
 
-	}	
-	
+	}
+
+	@Override
 	public void printNode( CorePrinter output ) {
 		List/*< Expression >*/ expressions = this.getExpressions();
-		
-		output.formatPrintLn( "[ " );		
+
+		output.formatPrintLn( "[ " );
 		if( expressions != null ) {
 			int index = 0;
 			Iterator i = expressions.iterator();
 			while( i.hasNext() ) {
 				Expression expr = (Expression)i.next();
-		
+
 				expr.printNode(output);
-			
+
 				if( index != expressions.size() - 1 ) {
 					output.formatPrintLn(", ");
 				}
 				index += 1;
 			}
 		}
-		output.formatPrintLn( "]" );		
+		output.formatPrintLn( "]" );
 	}
 }
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonListForExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonListForExpression.java
index 2d9dda5..70d2224 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonListForExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonListForExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -20,12 +19,12 @@
 
 
 /**
- * 
+ *
  * Expression what construct list by using PythonListForExpressions.
- * 
+ *
  * Example: [ (a,b) for a in [1,2,3] for b in ["a", "b", "c" ] ] (a,b) this is maker. May be almost any expression. for a in [1,2,3] this is
  * PythonForListExpression.
- * 
+ *
  */
 public class PythonListForExpression extends ExpressionList
 {
@@ -39,16 +38,19 @@
 		this.setEnd(maker.sourceEnd());
 	}
 
+	@Override
 	public void addExpression(Expression ex) {
 		super.addExpression(ex);
 		setEnd(ex.sourceEnd());
 	}
+	@Override
 	public int getKind( ) {
 
 		return PythonConstants.E_LISTFOR;
 	}
 
-	
+
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
@@ -68,7 +70,8 @@
 
 	}
 
-	
+
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		if( this.fMaker != null ) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonSubscriptExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonSubscriptExpression.java
index eb4fa44..424e72a 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonSubscriptExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonSubscriptExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -43,13 +42,15 @@
 		this.fSlice = slice;
 	}
 
-	
+
+	@Override
 	public int getKind( ) {
 
 		return PythonConstants.E_SUBSCRIPT;
 	}
 
-	
+
+	@Override
 	public void traverse( ASTVisitor pVisitor ) throws Exception {
 
 		if( pVisitor.visit( this ) ) {
@@ -99,6 +100,7 @@
 		fTest = test;
 	}
 
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		if( this.fTest != null ) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonTestListExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonTestListExpression.java
index 6d143a6..d7d164d 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonTestListExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonTestListExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -14,9 +13,10 @@
 
 public class PythonTestListExpression extends ExpressionList {
 	public PythonTestListExpression() {
-		
+
 	}
-	
+
+	@Override
 	public int getKind() {
 		return PythonConstants.E_TESTLIST;
 	}
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonTupleExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonTupleExpression.java
index 0b7ce5e..a084b70 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonTupleExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/PythonTupleExpression.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.expressions;
 
@@ -23,8 +22,8 @@
 	public PythonTupleExpression( ) {
 
 	}
-	
-	
+
+	@Override
 	public void printNode( CorePrinter output ) {
 
 		List/*< Expression >*/ expressions = this.getExpressions( );
@@ -47,6 +46,7 @@
 		output.formatPrintLn( ")" );
 	}
 
+	@Override
 	public int getKind( ) {
 
 		return PythonConstants.E_TURPLE;
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/UnaryExpression.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/UnaryExpression.java
index 8dacced..18326ef 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/UnaryExpression.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/expressions/UnaryExpression.java
@@ -1,17 +1,11 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
-/*
- * Created on 06.06.2004
- * 
- * TODO To change the template for this generated file go to Window - Preferences - Script - Code Style - Code Templates
- */
 package org.eclipse.dltk.python.parser.ast.expressions;
 
 import org.eclipse.dltk.ast.ASTVisitor;
@@ -22,9 +16,9 @@
 
 /**
  * Unary expression.
- * 
+ *
  * Such as ++x, --x, +x, -x and other.
- * 
+ *
  */
 public class UnaryExpression extends Expression {
 
@@ -40,7 +34,7 @@
 
 	/**
 	 * Construct from position information, kind and expression.
-	 * 
+	 *
 	 * @param start -
 	 *            start position.
 	 * @param end -
@@ -59,7 +53,7 @@
 
 	/**
 	 * Construct from ANTLR token, kind and expression.
-	 * 
+	 *
 	 * @param t -
 	 *            ANTLR token.
 	 * @param knd -
@@ -80,6 +74,7 @@
 	/**
 	 * Traverse.
 	 */
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			if (expression != null) {
@@ -93,13 +88,14 @@
 	 * Return unary expression kind.
 	 */
 
+	@Override
 	public int getKind() {
 		return kind;
 	}
 
 	/**
 	 * Return expression.
-	 * 
+	 *
 	 * @return
 	 */
 	public Statement getExpression() {
@@ -109,6 +105,7 @@
 	/**
 	 * Testing purposes only. Used to print unary expression.
 	 */
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn(this.getOperator());
 		if (this.expression != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/BreakStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/BreakStatement.java
index 04ed8b6..d1e3f6c 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/BreakStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/BreakStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -27,10 +26,12 @@
 		super(dltk.getColumn(), dltk2.getColumn(), null);
 	}
 
+	@Override
 	public int getKind() {
 		return S_BREAK;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("break ");
 
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/CaseStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/CaseStatement.java
index 66bd9a1..e98ea57 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/CaseStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/CaseStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -27,10 +26,12 @@
 				+ defaultToken.getText().length(), null);
 	}
 
+	@Override
 	public int getKind() {
 		return S_CASE;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("case: ");
 		output.indent();
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ClassicalForStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ClassicalForStatement.java
index c390baf..db2342c 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ClassicalForStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ClassicalForStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -19,6 +18,7 @@
  * For Statement.
  * @deprecated
  */
+@Deprecated
 public class ClassicalForStatement extends Statement {
 
 	private Expression fInitialization;
@@ -32,7 +32,7 @@
 	/**
 	 * Construct from dltk token, initialization, condition, increment
 	 * expressions and action statement
-	 * 
+	 *
 	 * @param forToken -
 	 *            dltk token.
 	 * @param initialization -
@@ -57,6 +57,7 @@
 		}
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 
 		if (pVisitor.visit(this)) {
@@ -76,6 +77,7 @@
 		}
 	}
 
+	@Override
 	public int getKind() {
 		return S_FOR;
 	}
@@ -96,6 +98,7 @@
 		return fInitialization;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("for:");
 		if (this.fCondition != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ContinueStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ContinueStatement.java
index 648ecbd..15a2e3c 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ContinueStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ContinueStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -29,10 +28,12 @@
 		super(dltk.getColumn(), dltk2.getColumn(), null );
 	}
 
+	@Override
 	public int getKind() {
 		return S_CONTINUE;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("continue ");
 
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/DoWhileStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/DoWhileStatement.java
index b0a8607..cc99b35 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/DoWhileStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/DoWhileStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -17,8 +16,8 @@
 
 /**
  * Do while statement.
- * 
- * 
+ *
+ *
  */
 public class DoWhileStatement extends Statement {
 
@@ -35,7 +34,7 @@
 	/**
 	 * Construct Do While statement from doToken, action, condition and final
 	 * position.
-	 * 
+	 *
 	 * @param doToken -
 	 *            do ANTLR token.
 	 * @param action -
@@ -55,6 +54,7 @@
 	/**
 	 * Traverse
 	 */
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			if (fAction != null) {
@@ -72,13 +72,14 @@
 	 * Return Do While Kind.
 	 */
 
+	@Override
 	public int getKind() {
 		return S_DOWHILE;
 	}
 
 	/**
 	 * return Action.
-	 * 
+	 *
 	 * @return - action statement.
 	 */
 	public Statement getAction() {
@@ -87,7 +88,7 @@
 
 	/**
 	 * Return condition.
-	 * 
+	 *
 	 * @return - condition expression.
 	 */
 	public Expression getCondition() {
@@ -98,6 +99,7 @@
 	 * Testing purpose only. Print do while expression.
 	 */
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("do:");
 		output.indent();
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/EmptyStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/EmptyStatement.java
index 0d67e1c..4f69cfa 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/EmptyStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/EmptyStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -16,7 +15,7 @@
 
 /**
  * Empty Statement.
- * 
+ *
  */
 public class EmptyStatement extends Statement {
 
@@ -28,16 +27,19 @@
 		super(token);
 	}
 
+	@Override
 	public int getKind() {
 		return S_EMPTY;
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			pVisitor.endvisit(this);
 		}
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 	}
 }
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ExecStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ExecStatement.java
index 3c04657..9473dd8 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ExecStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ExecStatement.java
@@ -10,7 +10,7 @@
 	public ExecStatement(DLTKToken token, Expression expression) {
 		super(token, expression);
 	}
-	
+
 	public void acceptIn(Expression e ) {
 		fIn = e;
 		if( e != null && e.sourceEnd() > this.sourceEnd() ) {
@@ -24,9 +24,11 @@
 		}
 	}
 
+	@Override
 	public int getKind() {
 		return 0;
 	}
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			if (fExpression != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ForEachStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ForEachStatement.java
index 76d1e99..2726b0c 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ForEachStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ForEachStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -16,14 +15,14 @@
 
 /**
  * For each statement.
- * 
+ *
  */
 public class ForEachStatement extends ClassicalForStatement {
 
 	/**
 	 * Construct foreach from ANTLR token, initialization, condition, increment
 	 * expressions and action statement. foreach( A, C, I ) { Action. }
-	 * 
+	 *
 	 * @param forToken -
 	 *            ANTLR token.
 	 * @param initialization -
@@ -43,6 +42,7 @@
 	/**
 	 * Testing purposes only. Print foreach statement.
 	 */
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("foreach: ");
 
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/IfStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/IfStatement.java
index 801cb29..3eef85e 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/IfStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/IfStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -41,13 +40,14 @@
 		this.fCondition = condition;
 		this.fThenStatement = thenStatement;
 	}
-	
+
 	public IfStatement(Statement condition, Statement thenStatement, Statement elseStatement) {
 		this.fCondition = condition;
 		this.fThenStatement = thenStatement;
 		this.fElseStatement = elseStatement;
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 
 		if (pVisitor.visit(this)) {
@@ -64,6 +64,7 @@
 		}
 	}
 
+	@Override
 	public int getKind() {
 		return S_IF;
 	}
@@ -72,13 +73,14 @@
 	/**
 	 * @deprecated
 	 */
+	@Deprecated
 	public void setElse(Statement elses) {
 		this.acceptElse(elses);
 	}
 
 	/**
 	 * Acccept Else statement.
-	 * 
+	 *
 	 * @param elseStatement
 	 */
 	public void acceptElse(Statement elseStatement) {
@@ -90,7 +92,7 @@
 
 	/**
 	 * Return else statement.
-	 * 
+	 *
 	 * @return - else statement. Be aware can be null.
 	 */
 	public Statement getElse() {
@@ -105,6 +107,7 @@
 		return this.fCondition;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("if: ");
 		if (this.fCondition != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ReturnStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ReturnStatement.java
index 43a0721..1358385 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ReturnStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ReturnStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -21,12 +20,12 @@
 		super(rt.getColumn(), end, exp);
 	}
 
-	
-
+	@Override
 	public int getKind() {
 		return S_RETURN;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("return ");
 
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/SimpleStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/SimpleStatement.java
index fad37fc..792b587 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/SimpleStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/SimpleStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -34,6 +33,7 @@
 		}
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			if (fExpression != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/SwitchStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/SwitchStatement.java
index 99e9cfb..719aa58 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/SwitchStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/SwitchStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -24,8 +23,8 @@
  */
 /*
  * TODO: Concept need be fixed. Where are statements?
- * 
- * 
+ *
+ *
  * Where echo is holding in this model?
  */
 public class SwitchStatement extends Statement {
@@ -41,7 +40,7 @@
 
 	/**
 	 * Construct from ANTLR token for position binsings and expression.
-	 * 
+	 *
 	 * @param switchToken
 	 * @param exp
 	 */
@@ -57,6 +56,7 @@
 	/**
 	 * Traverse.
 	 */
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 
 		if (pVisitor.visit(this)) {
@@ -80,6 +80,7 @@
 	 * Return switch Kind.
 	 */
 
+	@Override
 	public int getKind() {
 		return S_SWITCH;
 	}
@@ -94,7 +95,7 @@
 
 	/**
 	 * Return expression.
-	 * 
+	 *
 	 * @return
 	 */
 	public Expression getExpression() {
@@ -103,7 +104,7 @@
 
 	/**
 	 * Return list of case statements.
-	 * 
+	 *
 	 * @return
 	 */
 	public List getStatements() {
@@ -113,6 +114,7 @@
 	/**
 	 * Testing purpose only. Print switch statement.
 	 */
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("switch:");
 		if (this.fExpression != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ThrowStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ThrowStatement.java
index 0d65acb..deea78e 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ThrowStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/ThrowStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -24,10 +23,12 @@
 		}
 	}
 
+	@Override
 	public int getKind() {
 		return S_THROW;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("throw: ");
 		Expression expression = this.getExpression();
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/TryCatchStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/TryCatchStatement.java
index b2f7801..b46bfe3 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/TryCatchStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/TryCatchStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -31,10 +30,12 @@
 		this.fBody = body;
 	}
 
+	@Override
 	public int getKind() {
 		return Statement.S_TRY_CATCH;
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			if (this.fExpression != null) {
@@ -55,6 +56,7 @@
 		return this.fBody;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("catch:");
 		if (this.fExpression != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/TryFinallyStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/TryFinallyStatement.java
index 77f9b6f..6fc45df 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/TryFinallyStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/TryFinallyStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -26,10 +25,12 @@
 		this.fBody = body;
 	}
 
+	@Override
 	public int getKind() {
 		return Statement.S_TRY_FINALLY;
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			if (this.fBody != null) {
@@ -40,6 +41,7 @@
 
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("finally:");
 		if (this.fBody != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/TryStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/TryStatement.java
index f98dabf..7f23fb9 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/TryStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/TryStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -37,6 +36,7 @@
 		this.catchFinallyStatements = catchFin;
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			if (this.body != null) {
@@ -53,6 +53,7 @@
 		}
 	}
 
+	@Override
 	public int getKind() {
 		return S_TRY;
 	}
@@ -65,6 +66,7 @@
 		return catchFinallyStatements;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrint("try:");
 		if (this.body != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/UntilStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/UntilStatement.java
index 87b4885..ce86193 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/UntilStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/UntilStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -32,12 +31,13 @@
 		this.fCondition = condition;
 		this.fAction = action;
 	}
-	
+
 	public UntilStatement(Statement condition, Statement action) {
 		this.fCondition = condition;
 		this.fAction = action;
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			if (fCondition != null) {
@@ -50,6 +50,7 @@
 		}
 	}
 
+	@Override
 	public int getKind() {
 		return S_UNTIL;
 	}
@@ -62,6 +63,7 @@
 		return fAction;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("while");
 		if (this.fCondition != null) {
diff --git a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/WhileStatement.java b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/WhileStatement.java
index a661d31..dccaab2 100644
--- a/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/WhileStatement.java
+++ b/plugins/org.eclipse.dltk.python.core/src/org/eclipse/dltk/python/parser/ast/statements/WhileStatement.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.parser.ast.statements;
 
@@ -33,12 +32,13 @@
 		this.fCondition = condition;
 		this.fAction = action;
 	}
-	
+
 	public WhileStatement(Statement condition, Statement action) {
 		this.fCondition = condition;
 		this.fAction = action;
 	}
 
+	@Override
 	public void traverse(ASTVisitor pVisitor) throws Exception {
 		if (pVisitor.visit(this)) {
 			if (fCondition != null) {
@@ -51,6 +51,7 @@
 		}
 	}
 
+	@Override
 	public int getKind() {
 		return S_WHILE;
 	}
@@ -63,6 +64,7 @@
 		return fAction;
 	}
 
+	@Override
 	public void printNode(CorePrinter output) {
 		output.formatPrintLn("while");
 		if (this.fCondition != null) {