 		}
 
 		func toAbstract() throws -> AST? {
-			return try! optionalIdent?.toAbstract(identifier)
+            if optionalIdent != nil {
+                return try! optionalIdent?.toAbstract(identifier)
+            } else {
+                return AST.StoreExpr(identifier: identifier, initToken: nil)
+            }
 		}
 	}
 

		func toAbstract() throws -> AST? {
			return AST.ExpressionList(
                expression: try! expression.toAbstract() as! AST.Expression,
                optExpression: try! repeatingOptionalExpressions?.toAbstract() as! AST.Expression)
		}
	}


		func toAbstract(repeatingCmds: ASTConvertible?) throws -> AST? {
			return AST.CmdCall(
				expressionList: try! expressionList.toAbstract() as! AST.ExpressionList,
				nextCmd: try! repeatingCmds?.toAbstract() as? AST.Cmd)
		}
	}

