本文整理汇总了Java中org.mozilla.javascript.CompilerEnvirons类的典型用法代码示例。如果您正苦于以下问题:Java CompilerEnvirons类的具体用法?Java CompilerEnvirons怎么用?Java CompilerEnvirons使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
CompilerEnvirons类属于org.mozilla.javascript包,在下文中一共展示了CompilerEnvirons类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: parse
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
private AstRoot parse(String string, boolean jsdoc) {
CompilerEnvirons environment = new CompilerEnvirons();
TestErrorReporter testErrorReporter = new TestErrorReporter(null, null);
environment.setErrorReporter(testErrorReporter);
environment.setRecordingComments(true);
environment.setRecordingLocalJsDocComments(jsdoc);
Parser p = new Parser(environment, testErrorReporter);
AstRoot script = p.parse(string, null, 0);
assertTrue(testErrorReporter.hasEncounteredAllErrors());
assertTrue(testErrorReporter.hasEncounteredAllWarnings());
return script;
}
示例2: parseAsReader
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
private AstRoot parseAsReader(String string) throws IOException {
CompilerEnvirons environment = new CompilerEnvirons();
TestErrorReporter testErrorReporter = new TestErrorReporter(null, null);
environment.setErrorReporter(testErrorReporter);
environment.setRecordingComments(true);
environment.setRecordingLocalJsDocComments(true);
Parser p = new Parser(environment, testErrorReporter);
AstRoot script = p.parse(new StringReader(string), null, 0);
assertTrue(testErrorReporter.hasEncounteredAllErrors());
assertTrue(testErrorReporter.hasEncounteredAllWarnings());
return script;
}
示例3: compile
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
/**
* Compiles {@code source} and returns the transformed and optimized
* {@link ScriptNode}
*/
protected ScriptNode compile(CharSequence source) {
final String mainMethodClassName = "Main";
final String scriptClassName = "Main";
CompilerEnvirons compilerEnv = new CompilerEnvirons();
compilerEnv.initFromContext(cx);
Parser p = new Parser(compilerEnv);
AstRoot ast = p.parse(source.toString(), "<eval>", 1);
IRFactory irf = new IRFactory(compilerEnv);
ScriptNode tree = irf.transformTree(ast);
Codegen codegen = new Codegen();
codegen.setMainMethodClass(mainMethodClassName);
codegen.compileToClassFile(compilerEnv, scriptClassName, tree, tree.getEncodedSource(),
false);
return tree;
}
示例4: compile
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
/**
* Compiles {@code source} and returns the transformed and optimized
* {@link ScriptNode}
*/
protected ScriptNode compile(CharSequence source) {
final String mainMethodClassName = "Main";
final String scriptClassName = "Main";
CompilerEnvirons compilerEnv = new CompilerEnvirons();
compilerEnv.initFromContext(cx);
ErrorReporter compilationErrorReporter = compilerEnv
.getErrorReporter();
Parser p = new Parser(compilerEnv, compilationErrorReporter);
AstRoot ast = p.parse(source.toString(), "<eval>", 1);
IRFactory irf = new IRFactory(compilerEnv);
ScriptNode tree = irf.transformTree(ast);
Codegen codegen = new Codegen();
codegen.setMainMethodClass(mainMethodClassName);
codegen.compileToClassFile(compilerEnv, scriptClassName, tree,
tree.getEncodedSource(), false);
return tree;
}
示例5: parse
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
/**
* @return a tree representation of the parsed JavaScript file
* @throws IOException
*/
public ScriptOrFnNode parse() throws IOException {
if (nodeTree == null) {
Reader reader = new FileReader(jsFile);
CompilerEnvirons compilerEnv = new CompilerEnvirons();
ErrorReporter errorReporter = compilerEnv.getErrorReporter();
Parser parser = new Parser(compilerEnv, errorReporter);
String sourceURI;
try {
sourceURI = jsFile.getCanonicalPath();
} catch (IOException e) {
sourceURI = jsFile.toString();
}
nodeTree = parser.parse(reader, sourceURI, 1);
}
return nodeTree;
}
示例6: scan
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
/**
* Scan the given file for class definitions and accumulate dependencies.
*/
private void scan(final File source) throws IOException {
log.debug("Scanning: " + source);
ErrorReporter errorReporter = new LogErrorReporter(log);
CompilerEnvirons env = new CompilerEnvirons();
env.setErrorReporter(errorReporter);
Parser parser = new Parser(env, errorReporter);
Reader reader = new BufferedReader(new FileReader(source));
try {
AstRoot root = parser.parse(reader, source.getAbsolutePath(), 0);
DependencyAccumulator visitor = new DependencyAccumulator(source);
root.visit(visitor);
// complain if no def was found in this source
if (visitor.current == null) {
log.warn("No class definition was found while processing: " + source);
}
}
finally {
reader.close();
}
}
示例7: RhinoAdapter
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
/**
* Constructor.
*
* @throws LanguageAdapterException
* In case of an initialization error
*/
public RhinoAdapter() throws LanguageAdapterException
{
super( "Rhino", getImplementationVersion(), "JavaScript", getLanguageVersion(), Arrays.asList( "js", "javascript", "rhino" ), "js", Arrays.asList( "javascript", "js", "rhino" ), "rhino" );
CompilerEnvirons compilerEnvirons = new CompilerEnvirons();
compilerEnvirons.setOptimizationLevel( getOptimizationLevel() );
classCompiler = new ClassCompiler( compilerEnvirons );
Context context = enterContext();
try
{
generatedClassLoader = context.createClassLoader( RhinoAdapter.class.getClassLoader() );
}
finally
{
Context.exit();
}
}
示例8: parseFile
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
/**
*
* @param fileName
* @param staticMethods
* @param staticFields
* @return
* @throws FileNotFoundException
* @throws IOException
*/
Collection<JsFile> parseFile(final String fileName,
final List<JsMethod> staticMethods,
final Map<String, JsElement> staticFields)
throws FileNotFoundException, IOException {
try (final Reader reader = new FileReader(fileName)) {
final CompilerEnvirons env = new CompilerEnvirons();
env.setRecordingLocalJsDocComments(true);
env.setAllowSharpComments(true);
env.setRecordingComments(true);
final AstRoot node = new Parser(env).parse(reader, fileName, 1);
final JavaScriptFileParser parser = new JavaScriptFileParser(fileName);
node.visitAll(parser);
staticMethods.addAll(parser.getStaticMethods());
staticFields.putAll(parser.getConsts());
return parser.getFiles();
}
}
示例9: getReferencedScriptObject
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
/**
*
* @param expr
* @param objectName
* @return
*/
private static String getReferencedScriptObject( String expr,
String objectName )
{
if ( expr == null )
return null;
try
{
Context cx = Context.enter( );
CompilerEnvirons ce = new CompilerEnvirons( );
Parser p = new Parser( ce, cx.getErrorReporter( ) );
AstRoot tree = p.parse( expr, null, 0 );
IRFactory ir = new IRFactory( ce );
ScriptNode script = ir.transformTree( tree );
return getScriptObjectName( script, objectName );
}
finally
{
Context.exit( );
}
}
示例10: getReferencedScriptObject
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
/**
*
* @param expr
* @param objectName
* @return
*/
public static String getReferencedScriptObject( String expr,
String objectName )
{
if ( expr == null )
return null;
try
{
Context cx = Context.enter( );
CompilerEnvirons ce = new CompilerEnvirons( );
Parser p = new Parser( ce, cx.getErrorReporter( ) );
AstRoot tree = p.parse( expr, null, 0 );
Node root = new IRFactory( ce).transformTree(tree);
return getScriptObjectName( root, objectName );
}
catch( Exception ex )
{
return null;
}
finally
{
Context.exit( );
}
}
示例11: parseScript
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
public void parseScript(String scriptText, TypeDeclarationOptions options)
{
if(scriptText != null && scriptText.length() > 0)
{
CompilerEnvirons env = JavaScriptParser.createCompilerEnvironment(new JavaScriptParser.JSErrorReporter(), provider.getLanguageSupport());
Parser parser = new Parser(env);
StringReader r = new StringReader(scriptText);
try {
AstRoot root = parser.parse(r, null, 0);
CodeBlock block = provider.iterateAstRoot(root, preProcessingCompletions, "", Integer.MAX_VALUE, options);
provider.recursivelyAddLocalVars(preProcessingCompletions, block, 0, null, false, true);
}
catch(IOException io) {
//ignore this
}
}
}
示例12: compileText
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
/**
* Compiles Text and resolves the type.
* e.g
* "Hello World".length; //resolve as a Number
*
* @param text to compile and resolve
*/
@Override
public JavaScriptType compileText(String text) throws IOException {
CompilerEnvirons env = JavaScriptParser.createCompilerEnvironment(new JavaScriptParser.JSErrorReporter(), provider.getLanguageSupport());
String parseText = JavaScriptHelper.removeLastDotFromText(text);
int charIndex = JavaScriptHelper.findIndexOfFirstOpeningBracket(parseText);
env.setRecoverFromErrors(true);
Parser parser = new Parser(env);
StringReader r = new StringReader(parseText);
AstRoot root = parser.parse(r, null, 0);
CompilerNodeVisitor visitor = new CompilerNodeVisitor(charIndex == 0);
root.visitAll(visitor);
return lastJavaScriptType;
}
示例13: resolveParamNode
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
/**
* Resolve node type to TypeDeclaration. Called instead of #compileText(String text) when document is already parsed
* @param node AstNode to resolve
* @return TypeDeclaration for node or null if not found.
*/
@Override
public TypeDeclaration resolveParamNode(String text) throws IOException {
if(text != null) {
CompilerEnvirons env = JavaScriptParser.createCompilerEnvironment(new JavaScriptParser.JSErrorReporter(), provider.getLanguageSupport());
int charIndex = JavaScriptHelper.findIndexOfFirstOpeningBracket(text);
env.setRecoverFromErrors(true);
Parser parser = new Parser(env);
StringReader r = new StringReader(text);
AstRoot root = parser.parse(r, null, 0);
CompilerNodeVisitor visitor = new CompilerNodeVisitor(charIndex == 0);
root.visitAll(visitor);
}
return lastJavaScriptType != null ? lastJavaScriptType.getType()
: provider.getTypesFactory().getDefaultTypeDeclaration();
}
示例14: createCompilerEnvironment
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
/**
* Creates options for Rhino based off of the user's preferences.
*
* @param errorHandler The container for errors found while parsing.
* @return The properties for the JS compiler to use.
*/
public static CompilerEnvirons createCompilerEnvironment(ErrorReporter
errorHandler, JavaScriptLanguageSupport langSupport) {
CompilerEnvirons env = new CompilerEnvirons();
env.setErrorReporter(errorHandler);
env.setIdeMode(true);
env.setRecordingComments(true);
env.setRecordingLocalJsDocComments(true);
env.setRecoverFromErrors(true);
if(langSupport != null) {
env.setXmlAvailable(langSupport.isXmlAvailable());
env.setStrictMode(langSupport.isStrictMode());
int version = langSupport.getLanguageVersion();
if (version > 0) {
Logger.log("[JavaScriptParser]: JS language version set to: " + version);
env.setLanguageVersion(version);
}
}
return env;
}
示例15: parse
import org.mozilla.javascript.CompilerEnvirons; //导入依赖的package包/类
private AstRoot parse(CharSequence cs) {
CompilerEnvirons compilerEnv = new CompilerEnvirons();
compilerEnv.initFromContext(cx);
ErrorReporter compilationErrorReporter = compilerEnv.getErrorReporter();
Parser p = new Parser(compilerEnv, compilationErrorReporter);
return p.parse(cs.toString(), "<eval>", 1);
}