1
0
mirror of https://github.com/twiglet/cs2j.git synced 2025-01-18 13:15:17 +01:00

make net phase optional, we don't use it from JavaMaker

This commit is contained in:
Kevin Glynn 2011-10-12 10:31:48 +02:00
parent a3b3e67d76
commit c62a2e241b
2 changed files with 22 additions and 14 deletions

View File

@ -133,6 +133,11 @@ namespace Twiglet.CS2J.Translator.Transform
// Routines to parse strings to ANTLR Trees on the fly, used to generate fragments needed by the transformation
public CommonTree parseString(string startRule, string inStr)
{
return parseString(startRule, inStr, true);
}
public CommonTree parseString(string startRule, string inStr, bool includeNet)
{
if (Cfg.Verbosity > 5) Console.WriteLine("Parsing fragment ");
@ -181,25 +186,28 @@ namespace Twiglet.CS2J.Translator.Transform
TreeRuleReturnScope javaSyntaxRet = (TreeRuleReturnScope) mi.Invoke(javaMaker, new object[0]);
CommonTree javaSyntaxAST = (CommonTree)javaSyntaxRet.Tree;
CommonTree retAST = (CommonTree)javaSyntaxRet.Tree;
CommonTreeNodeStream javaSyntaxNodes = new CommonTreeNodeStream(javaSyntaxAST);
if (includeNet) {
CommonTreeNodeStream javaSyntaxNodes = new CommonTreeNodeStream(retAST);
javaSyntaxNodes.TokenStream = csTreeStream.TokenStream;
javaSyntaxNodes.TokenStream = csTreeStream.TokenStream;
NetMaker netMaker = new NetMaker(javaSyntaxNodes);
netMaker.TraceDestination = Console.Error;
NetMaker netMaker = new NetMaker(javaSyntaxNodes);
netMaker.TraceDestination = Console.Error;
netMaker.Cfg = Cfg;
netMaker.AppEnv = AppEnv;
netMaker.InitParser();
netMaker.Cfg = Cfg;
netMaker.AppEnv = AppEnv;
netMaker.IsJavaish = true;
netMaker.InitParser();
CommonTree javaAST = (CommonTree)netMaker.class_member_declarations().Tree;
retAST = (CommonTree)netMaker.class_member_declarations().Tree;
// snaffle additional imports
this.AddToImports(netMaker.Imports);
return javaAST;
// snaffle additional imports
this.AddToImports(netMaker.Imports);
}
return retAST;
}
// If true, then we are parsing some JavaIsh fragment

View File

@ -1623,7 +1623,7 @@ scope TypeContext;
magicMultiInvokerMethod[$d.token, $return_type.tree, $return_type.thetext == "Void" || $return_type.thetext == "System.Void", ifTree, $formal_parameter_list.tree, mkArgsFromParams($d.token, $formal_parameter_list.tree), $variant_generic_parameter_list.tyargs]
{
multiDelName = "__Multi" + delName;
delClassMemberNodes = this.parseString("class_member_declarations", this.MultiDelegateMethods(mkTypeString(delName, $variant_generic_parameter_list.tyargs), mkTypeString(multiDelName, $variant_generic_parameter_list.tyargs),mkTypeArgString($variant_generic_parameter_list.tyargs)));
delClassMemberNodes = this.parseString("class_member_declarations", this.MultiDelegateMethods(mkTypeString(delName, $variant_generic_parameter_list.tyargs), mkTypeString(multiDelName, $variant_generic_parameter_list.tyargs),mkTypeArgString($variant_generic_parameter_list.tyargs)), false);
AddToImports("java.util.List");
AddToImports("java.util.LinkedList");
AddToImports("java.util.ArrayList");