blob: d6b3a7fe53fc8d0e9b726b7699061d0316a8904f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 xored software, Inc.
*
* 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
*
* Contributors:
* xored software, Inc. - initial API and Implementation (Alex Panchenko)
*******************************************************************************/
package org.eclipse.dltk.javascript.parser;
import org.eclipse.dltk.ast.parser.IModuleDeclaration;
import org.eclipse.dltk.compiler.env.IModuleSource;
import org.eclipse.dltk.compiler.problem.IProblemReporter;
import org.eclipse.dltk.core.ISourceModule;
import org.eclipse.dltk.core.SourceParserUtil;
import org.eclipse.dltk.javascript.ast.Script;
public class JavaScriptParserUtil {
/**
* The name of the attribute referencing {@link ISourceModule} from
* {@link Script} attributes.
*/
public static final String ATTR_MODULE = ISourceModule.class.getName();
public static Script parse(ISourceModule module) {
return parse(module, null);
}
public static Script parse(ISourceModule module, IProblemReporter reporter) {
// TODO pass additional predicate to this call...
IModuleDeclaration declaration = SourceParserUtil.parse(module,
reporter);
if (declaration instanceof Script) {
return (Script) declaration;
}
return new JavaScriptParser().parse((IModuleSource) module, reporter);
}
public static Script parse(IModuleSource module, IProblemReporter reporter) {
if (module instanceof ISourceModule) {
return parse((ISourceModule) module, reporter);
}
return new JavaScriptParser().parse(module, reporter);
}
}