 		}
 
 		func toAbstract() throws -> AST? {
-			return dotOprFactor?.toAbstract(factor)
+			if dotOprFactor != nil {
+				return try! dotOprFactor!.toAbstract()
+			} else {
+				return try! factor.toAbstract()
+			}
 		}
 	}
 

		}

		func toAbstract() throws -> AST? {
			return addOprTerm3?.toAbstract(term3)
		}
	}


		}

		func toAbstract() throws -> AST? {
			if multOprTerm4 != nil {
				return try! multOprTerm4!.toAbstract()
			} else {
				return try! term4.toAbstract()
			}
		}
	}

