diff --git a/CSharpTranslator/antlr3/src/cs2j/CSharp/SignatureExtracter.g b/CSharpTranslator/antlr3/src/cs2j/CSharp/TemplateExtracter.g similarity index 95% rename from CSharpTranslator/antlr3/src/cs2j/CSharp/SignatureExtracter.g rename to CSharpTranslator/antlr3/src/cs2j/CSharp/TemplateExtracter.g index 4e9825f..31a97ca 100644 --- a/CSharpTranslator/antlr3/src/cs2j/CSharp/SignatureExtracter.g +++ b/CSharpTranslator/antlr3/src/cs2j/CSharp/TemplateExtracter.g @@ -1,64 +1,65 @@ -// SignatureExtracter.g -// -// Crawler that extracts the signatures (typereptemplates) from a CSharp AST -// -// Kevin Glynn -// kevin.glynn@twigletsoftware.com -// June 2010 - -tree grammar SignatureExtracter; - -options { - tokenVocab=cs; - ASTLabelType=CommonTree; - language=CSharp2; - superClass='RusticiSoftware.Translator.CSharp.CommonWalker'; - //backtrack=true; -} - -@namespace { RusticiSoftware.Translator.CSharp } - -@header -{ - using System.Text; - using RusticiSoftware.Translator.CLR; -} - -@members -{ - // As we scan the AST we collect these features until - // we reach the end, then calculate the TypeRep and insert it into - // the TypeEnv - private IList Properties = new List(); - private IList Methods = new List(); - private IList Constructors = new List(); - private IList Fields = new List(); - private IList Casts = new List(); -} - -/******************************************************************************************** - Parser section -*********************************************************************************************/ - -/////////////////////////////////////////////////////// -compilation_unit: - { Debug("start"); } using_directives - ; - -using_directives: - ^(USING_DIRECTIVE 'using' namespace_name ';' { Debug("using " + $namespace_name.namespaceText); }) - ; - -namespace_name returns [string namespaceText]: - ^(NAMESPACE_OR_TYPE_NAME nsc=namespace_component { namespaceText = $nsc.idText; } - (nscp=namespace_component { namespaceText = namespaceText + "." + $nscp.idText; } )* ) - ; - -namespace_component returns [string idText]: - ^(NSTN identifier { idText=$identifier.idText; } ) - ; - -identifier returns [string idText]: - ^(ID IDENTIFIER { idText = $IDENTIFIER.Text; Debug("Identifier: " + $IDENTIFIER.Text); } ) - ; - +// SignatureExtracter.g +// +// Crawler that extracts the signatures (typereptemplates) from a CSharp AST +// +// Kevin Glynn +// kevin.glynn@twigletsoftware.com +// June 2010 + +tree grammar TemplateExtracter; + +options { + tokenVocab=cs; + ASTLabelType=CommonTree; + language=CSharp2; + superClass='RusticiSoftware.Translator.CSharp.CommonWalker'; + //backtrack=true; +} + +@namespace { RusticiSoftware.Translator.CSharp } + +@header +{ + using System.Text; + using System.Collections.Generic; + using RusticiSoftware.Translator.CLR; +} + +@members +{ + // As we scan the AST we collect these features until + // we reach the end, then calculate the TypeRep and insert it into + // the TypeEnv + private IList Properties = new List(); + private IList Methods = new List(); + private IList Constructors = new List(); + private IList Fields = new List(); + private IList Casts = new List(); +} + +/******************************************************************************************** + Parser section +*********************************************************************************************/ + +/////////////////////////////////////////////////////// +compilation_unit: + { Debug("start"); } using_directives + ; + +using_directives: + ^(USING_DIRECTIVE 'using' namespace_name ';' { Debug("using " + $namespace_name.namespaceText); }) + ; + +namespace_name returns [string namespaceText]: + ^(NAMESPACE_OR_TYPE_NAME nsc=namespace_component { namespaceText = $nsc.idText; } + (nscp=namespace_component { namespaceText = namespaceText + "." + $nscp.idText; } )* ) + ; + +namespace_component returns [string idText]: + ^(NSTN identifier { idText=$identifier.idText; } ) + ; + +identifier returns [string idText]: + ^(ID IDENTIFIER { idText = $IDENTIFIER.Text; Debug("Identifier: " + $IDENTIFIER.Text); } ) + ; + diff --git a/CSharpTranslator/antlr3/src/cs2j/CSharp/minDriver.cs b/CSharpTranslator/antlr3/src/cs2j/CSharp/minDriver.cs index 368d0e0..0705499 100644 --- a/CSharpTranslator/antlr3/src/cs2j/CSharp/minDriver.cs +++ b/CSharpTranslator/antlr3/src/cs2j/CSharp/minDriver.cs @@ -50,9 +50,9 @@ namespace RusticiSoftware.Translator.CSharp BufferedTreeNodeStream nodes = new BufferedTreeNodeStream(parse_tree); - SignatureExtracter sigWalker = new SignatureExtracter(nodes); - sigWalker.DebugLevel = 10; - sigWalker.compilation_unit(); + TemplateExtracter templateWalker = new TemplateExtracter(nodes); + templateWalker.DebugLevel = 10; + templateWalker.compilation_unit(); } } diff --git a/CSharpTranslator/antlr3/src/cs2j/cs2j.csproj b/CSharpTranslator/antlr3/src/cs2j/cs2j.csproj index 06db24c..90cc844 100644 --- a/CSharpTranslator/antlr3/src/cs2j/cs2j.csproj +++ b/CSharpTranslator/antlr3/src/cs2j/cs2j.csproj @@ -61,16 +61,16 @@ - + - + @@ -102,6 +102,10 @@ {CF15D0D5-BE72-4F98-B70F-229ABA1DF0E8} Antlr3.Runtime + + {E6ACBB37-AF38-45E1-B399-0CEE63809A15} + NDesk.Options +