コード例 #1
0
ファイル: LanguageCompiler.java プロジェクト: ceylon/ceylon
 public Env<AttrContext> attribute(Env<AttrContext> env) {
   if (env.toplevel.sourcefile instanceof CeylonFileObject || isBootstrap) {
     try {
       sourceLanguage.push(Language.CEYLON);
       return super.attribute(env);
     } finally {
       sourceLanguage.pop();
     }
   }
   return super.attribute(env);
 }
コード例 #2
0
ファイル: LanguageCompiler.java プロジェクト: ceylon/ceylon
 @Override
 public void complete(ClassSymbol c) throws CompletionFailure {
   try {
     sourceLanguage.push(Language.JAVA);
     super.complete(c);
   } catch (RunTwiceException e) {
     hadRunTwiceException = true;
     throw new CompletionFailure(c, e.getLocalizedMessage());
   } finally {
     sourceLanguage.pop();
   }
 }
コード例 #3
0
ファイル: LanguageCompiler.java プロジェクト: ceylon/ceylon
 protected void flow(Env<AttrContext> env, Queue<Env<AttrContext>> results) {
   if (env.toplevel.sourcefile instanceof CeylonFileObject) {
     try {
       sourceLanguage.push(Language.CEYLON);
       super.flow(env, results);
       return;
     } finally {
       sourceLanguage.pop();
     }
   }
   super.flow(env, results);
 }
コード例 #4
0
ファイル: LanguageCompiler.java プロジェクト: ceylon/ceylon
 protected void desugar(
     final Env<AttrContext> env, Queue<Pair<Env<AttrContext>, JCClassDecl>> results) {
   if (env.toplevel.sourcefile instanceof CeylonFileObject) {
     try {
       sourceLanguage.push(Language.CEYLON);
       super.desugar(env, results);
       return;
     } finally {
       sourceLanguage.pop();
     }
   }
   super.desugar(env, results);
 }
コード例 #5
0
ファイル: LanguageCompiler.java プロジェクト: ceylon/ceylon
 @Override
 protected JavaFileObject genCode(Env<AttrContext> env, JCClassDecl cdef) throws IOException {
   if (env.toplevel.sourcefile instanceof CeylonFileObject) {
     try {
       sourceLanguage.push(Language.CEYLON);
       // call our own genCode
       return genCodeUnlessError(env, cdef);
     } finally {
       sourceLanguage.pop();
     }
   }
   return super.genCode(env, cdef);
 }