Java Doc for VariantSorter.java in  » Parser » Rats-Parser-Generators » xtc » parser » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Parser » Rats Parser Generators » xtc.parser 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   xtc.tree.Visitor
      xtc.parser.VariantSorter

VariantSorter
public class VariantSorter extends Visitor (Code)
Visitor to infer a grammar's variants.

This visitor assumes that the entire grammar is contained in a single module. It also assumes that the grammar's real root has been annotated and that directly left-recursive productions have not been transformed into equivalent right-iterations.
author:
   Robert Grimm
version:
   $Revision: 1.31 $


Inner Class :public class Registrar extends Visitor
Inner Class :public class Typer extends Visitor

Field Summary
final protected  Analyzeranalyzer
     The analyzer.
final protected  ASTast
     The type operations.
protected  List<Element>elements
     The list of elements representing the current alternative.
protected  booleanhasChanged
     The flag for whether productions have changed in push mode.
protected  booleanisGeneric
     The flag for whether the current production is generic.
protected  booleanisPushMode
     The flag for whether the current mode is push or pull.
protected  Map<Node, Node>malformed
     The set of AST nodes resulting in an error.
protected  FullProductionproduction
     The current production.
protected  List<Production>productions
     The productions to be processed in push mode.
final protected  Runtimeruntime
     The runtime.
protected  List<Type>types
     The current types.

Constructor Summary
public  VariantSorter(Runtime runtime, Analyzer analyzer, AST ast)
     Create a new variant sorter.

Method Summary
protected  Typemerge(VariantT v1, VariantT v2, Production p)
     Merge the two variants.
protected  voidpushPull(Module m)
     Push and pull any variant types.
protected  voidrecurse(Element e)
     Recurse on the specified element.
protected  voidsetType(Production p, Type t)
     Set the specified production's type to the specified type.
public  voidvisit(Module m)
     Visit the specified grammar.
public  voidvisit(FullProduction p)
     Visit the specified production.
public  voidvisit(OrderedChoice c)
     Visit the specified choice.
public  voidvisit(Sequence s)
     Visit the specified sequence.

Field Detail
analyzer
final protected Analyzer analyzer(Code)
The analyzer.



ast
final protected AST ast(Code)
The type operations.



elements
protected List<Element> elements(Code)
The list of elements representing the current alternative.



hasChanged
protected boolean hasChanged(Code)
The flag for whether productions have changed in push mode.



isGeneric
protected boolean isGeneric(Code)
The flag for whether the current production is generic. We need to track this information in an explicit flag, because this visitor processes choices and sequences that will be lifted into their own productions.



isPushMode
protected boolean isPushMode(Code)
The flag for whether the current mode is push or pull.



malformed
protected Map<Node, Node> malformed(Code)
The set of AST nodes resulting in an error.



production
protected FullProduction production(Code)
The current production.



productions
protected List<Production> productions(Code)
The productions to be processed in push mode.



runtime
final protected Runtime runtime(Code)
The runtime.



types
protected List<Type> types(Code)
The current types. In push mode, the list contains exactly one variant type, which is being pushed through productions. In pull mode, the list contains the types of all alternatives, which may be variant types, type parameters, and error types and which are unified in VariantSorter.visit(FullProduction) .




Constructor Detail
VariantSorter
public VariantSorter(Runtime runtime, Analyzer analyzer, AST ast)(Code)
Create a new variant sorter.
Parameters:
  runtime - The runtime.
Parameters:
  analyzer - The analyzer utility.
Parameters:
  ast - The type operations.




Method Detail
merge
protected Type merge(VariantT v1, VariantT v2, Production p)(Code)
Merge the two variants. This method merges the second variant into the first variant, which must be polymorphic. If the second variant also is polymorphic, it simply adds the second variant's tuples to the first variant. Otherwise, it tries to create a new tuple with the second variant's original name and then adds that tuple to the first variant.
Parameters:
  v1 - The first variant.
Parameters:
  v2 - The second variant.
Parameters:
  p - The production for error reporting. The first variant or the error type in case of errors.



pushPull
protected void pushPull(Module m)(Code)
Push and pull any variant types.
Parameters:
  m - The grammar.



recurse
protected void recurse(Element e)(Code)
Recurse on the specified element. If the element is an optionally bound nonterminal, this method processes the corresponding production. If the element is an optionally bound sequence or choice, this method processes the sequence or choice. Otherwise, it reports an error condition and returns.
Parameters:
  e - The element.



setType
protected void setType(Production p, Type t)(Code)
Set the specified production's type to the specified type. This method preserves the original type's generic attribute, unless the specified type is the error type.
Parameters:
  p - The production.
Parameters:
  t - The type.



visit
public void visit(Module m)(Code)
Visit the specified grammar.



visit
public void visit(FullProduction p)(Code)
Visit the specified production.



visit
public void visit(OrderedChoice c)(Code)
Visit the specified choice.



visit
public void visit(Sequence s)(Code)
Visit the specified sequence.



Methods inherited from xtc.tree.Visitor
public Object dispatch(Node node)(Code)(Java Doc)

Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.