Java Doc for Parser.java in  » 6.0-JDK-Modules-sun » tools » sun » tools » java » 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 » 6.0 JDK Modules sun » tools » sun.tools.java 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   sun.tools.java.Scanner
      sun.tools.java.Parser

All known Subclasses:   sun.tools.javac.BatchParser,
Parser
public class Parser extends Scanner implements ParserActions,Constants(Code)
This class is used to parse Java statements and expressions. The result is a parse tree.

This class implements an operator precedence parser. Errors are reported to the Environment object, if the error can't be resolved immediately, a SyntaxError exception is thrown.

Error recovery is implemented by catching SyntaxError exceptions and discarding input tokens until an input token is reached that is possibly a legal continuation.

The parse tree that is constructed represents the input exactly (no rewrites to simpler forms). This is important if the resulting tree is to be used for code formatting in a programming environment. Currently only documentation comments are retained.

The parsing algorithm does NOT use any type information. Changes in the type system do not affect the structure of the parse tree. This restriction does introduce an ambiguity an expression of the form: (e1) e2 is assumed to be a cast if e2 does not start with an operator. That means that (a) - b is interpreted as subtract b from a and not cast negative b to type a. However, if a is a simple type (byte, int, ...) then it is assumed to be a cast.

WARNING: The contents of this source file are not part of any supported API. Code that depends on them does so at its own risk: they are subject to change or removal without notice.
author:
   Arthur van Hoff
version:
   1.97, 05/05/07



Field Summary
 ParserActionsactions
     Usually this.actions == (ParserActions)this.
protected  intargIndex
    
protected  Scannerscanner
     Usually this.scanner == (Scanner)this.

Constructor Summary
protected  Parser(Environment env, InputStream in)
    
protected  Parser(Scanner scanner)
     Create a parser, given a scanner.
public  Parser(Scanner scanner, ParserActions actions)
     Create a parser, given a scanner and the semantic callback.

Method Summary
final protected  voidaddArgument(Node n)
    
public  ClassDefinitionbeginClass(long off, String doc, int mod, IdentifierToken nm, IdentifierToken sup, IdentifierToken impl)
    
protected  voidbeginClass(long off, String doc, int mod, Identifier nm, Identifier sup, Identifier impl)
    
public  voiddefineField(long where, ClassDefinition c, String doc, int mod, Type t, IdentifierToken nm, IdentifierToken args, IdentifierToken exp, Node val)
    
protected  voiddefineField(long where, String doc, int mod, Type t, Identifier nm, Identifier args, Identifier exp, Node val)
    
public  voidendClass(long off, ClassDefinition c)
    
protected  voidendClass(long off, Identifier nm)
    
protected  voidexpect(int t)
     Expect a token, return its value, scan the next token or throw an exception.
final protected  ExpressionexprArgs(int index)
    
protected  ClassDefinitiongetCurrentClass()
     Report the current class under construction.
public  voidimportClass(long off, IdentifierToken nm)
    
protected  voidimportClass(long off, Identifier nm)
    
public  voidimportPackage(long off, IdentifierToken nm)
    
protected  voidimportPackage(long off, Identifier nm)
    
public  voidmatch(int open, int close)
    
public  voidpackageDeclaration(long off, IdentifierToken nm)
    
protected  voidpackageDeclaration(long off, Identifier nm)
    
protected  TypeparseArrayBrackets(Type t)
     Parse the tail of a type expression, which might be array brackets.
protected  ExpressionparseBinaryExpression(Expression e)
     Given a left-hand term, parse an operator and right-hand term.
protected  StatementparseBlockStatement()
    
protected  voidparseClass()
     Parse a top-level class or interface declaration.
protected  ClassDefinitionparseClassBody(IdentifierToken nm, int mod, int ctx, String doc, Vector ext, Vector impl, long p)
     Parse the body of a class or interface declaration, starting at the left brace.
protected  StatementparseDeclaration(long p, int mod, Expression type)
     Parse declaration, called after the type expression has been parsed and the current token is IDENT.
protected  ExpressionparseExpression()
     Parse an expression.
protected  voidparseField()
     Parse a field.
public  voidparseFile()
     Parse an Java file.
protected  IdentifierparseIdentifier(boolean star)
    
protected  voidparseInheritance(Vector ext, Vector impl)
    
protected  StatementparseLocalClass(int mod)
     Parse a block-local class or interface declaration.
protected  ExpressionparseMethodExpression(Expression e, Identifier id)
     Parse a method invocation.
protected  intparseModifiers(int mask)
     Parse a possibly-empty sequence of modifier keywords.
protected  IdentifierTokenparseName(boolean star)
     Parse an identifier.
protected  ClassDefinitionparseNamedClass(int mod, int ctx, String doc)
     Parse a named class or interface declaration, starting at "class" or "interface".
protected  ExpressionparseNewInstanceExpression(long p, Expression outerArg, Expression type)
     Parse a new instance expression.
protected  StatementparseStatement()
     Parse a statement.
protected  ExpressionparseTerm()
     Parse a primary expression.
protected  TypeparseType()
     Parse a type expression, this results in a Type.
protected  ExpressionparseTypeExpression()
     Parse a type expression.
protected  voidrecoverField(ClassDefinition newClass)
     Recover after a syntax error in a field.
protected  voidrecoverFile()
     Recover after a syntax error in the file.
protected  booleanrecoverStatement()
     Recover after a syntax error in a statement.
public  longscan()
    
final protected  StatementstatArgs(int index)
    
protected  voidtopLevelExpression(Expression e)
     Check if an expression is a legal toplevel expression.

Field Detail
actions
ParserActions actions(Code)
Usually this.actions == (ParserActions)this. However, a delegate scanner can produce tokens for this parser, in which case (Scanner)this is unused, except for this.token and this.pos instance variables which are filled from the real scanner by this.scan() and the constructor.



argIndex
protected int argIndex(Code)



scanner
protected Scanner scanner(Code)
Usually this.scanner == (Scanner)this. However, a delegate scanner can produce tokens for this parser, in which case (Scanner)this is unused, except for this.token and this.pos instance variables which are filled from the real scanner by this.scan() and the constructor.




Constructor Detail
Parser
protected Parser(Environment env, InputStream in) throws IOException(Code)
Create a parser



Parser
protected Parser(Scanner scanner) throws IOException(Code)
Create a parser, given a scanner.



Parser
public Parser(Scanner scanner, ParserActions actions) throws IOException(Code)
Create a parser, given a scanner and the semantic callback.




Method Detail
addArgument
final protected void addArgument(Node n)(Code)



beginClass
public ClassDefinition beginClass(long off, String doc, int mod, IdentifierToken nm, IdentifierToken sup, IdentifierToken impl)(Code)
Define class



beginClass
protected void beginClass(long off, String doc, int mod, Identifier nm, Identifier sup, Identifier impl)(Code)



defineField
public void defineField(long where, ClassDefinition c, String doc, int mod, Type t, IdentifierToken nm, IdentifierToken args, IdentifierToken exp, Node val)(Code)
Define a field



defineField
protected void defineField(long where, String doc, int mod, Type t, Identifier nm, Identifier args, Identifier exp, Node val)(Code)



endClass
public void endClass(long off, ClassDefinition c)(Code)
End class



endClass
protected void endClass(long off, Identifier nm)(Code)



expect
protected void expect(int t) throws SyntaxError, IOException(Code)
Expect a token, return its value, scan the next token or throw an exception.



exprArgs
final protected Expression exprArgs(int index)(Code)



getCurrentClass
protected ClassDefinition getCurrentClass()(Code)
Report the current class under construction. By default, it's a no-op which returns null. It may only be called before the corresponding endClass().



importClass
public void importClass(long off, IdentifierToken nm)(Code)
import class



importClass
protected void importClass(long off, Identifier nm)(Code)



importPackage
public void importPackage(long off, IdentifierToken nm)(Code)
import package



importPackage
protected void importPackage(long off, Identifier nm)(Code)



match
public void match(int open, int close) throws IOException(Code)



packageDeclaration
public void packageDeclaration(long off, IdentifierToken nm)(Code)
package declaration



packageDeclaration
protected void packageDeclaration(long off, Identifier nm)(Code)



parseArrayBrackets
protected Type parseArrayBrackets(Type t) throws SyntaxError, IOException(Code)
Parse the tail of a type expression, which might be array brackets. Return the given type, as possibly modified by the suffix.



parseBinaryExpression
protected Expression parseBinaryExpression(Expression e) throws SyntaxError, IOException(Code)
Given a left-hand term, parse an operator and right-hand term.



parseBlockStatement
protected Statement parseBlockStatement() throws SyntaxError, IOException(Code)



parseClass
protected void parseClass() throws SyntaxError, IOException(Code)
Parse a top-level class or interface declaration.



parseClassBody
protected ClassDefinition parseClassBody(IdentifierToken nm, int mod, int ctx, String doc, Vector ext, Vector impl, long p) throws SyntaxError, IOException(Code)
Parse the body of a class or interface declaration, starting at the left brace.



parseDeclaration
protected Statement parseDeclaration(long p, int mod, Expression type) throws SyntaxError, IOException(Code)
Parse declaration, called after the type expression has been parsed and the current token is IDENT.



parseExpression
protected Expression parseExpression() throws SyntaxError, IOException(Code)
Parse an expression.



parseField
protected void parseField() throws SyntaxError, IOException(Code)
Parse a field.



parseFile
public void parseFile()(Code)
Parse an Java file.



parseIdentifier
protected Identifier parseIdentifier(boolean star) throws SyntaxError, IOException(Code)

See Also:   Parser.parseName



parseInheritance
protected void parseInheritance(Vector ext, Vector impl) throws SyntaxError, IOException(Code)



parseLocalClass
protected Statement parseLocalClass(int mod) throws SyntaxError, IOException(Code)
Parse a block-local class or interface declaration.



parseMethodExpression
protected Expression parseMethodExpression(Expression e, Identifier id) throws SyntaxError, IOException(Code)
Parse a method invocation. Should be called when the current then is the '(' of the argument list.



parseModifiers
protected int parseModifiers(int mask) throws IOException(Code)
Parse a possibly-empty sequence of modifier keywords. Return the resulting bitmask. Diagnose repeated modifiers, but make no other checks. Only modifiers mentioned in the given bitmask are scanned; an unmatched modifier must be handled by the caller.



parseName
protected IdentifierToken parseName(boolean star) throws SyntaxError, IOException(Code)
Parse an identifier. ie: a.b.c returns "a.b.c" If star is true then "a.b.*" is allowed. The return value encodes both the identifier and its location.



parseNamedClass
protected ClassDefinition parseNamedClass(int mod, int ctx, String doc) throws SyntaxError, IOException(Code)
Parse a named class or interface declaration, starting at "class" or "interface".



parseNewInstanceExpression
protected Expression parseNewInstanceExpression(long p, Expression outerArg, Expression type) throws SyntaxError, IOException(Code)
Parse a new instance expression. Should be called when the current token is the '(' of the argument list.



parseStatement
protected Statement parseStatement() throws SyntaxError, IOException(Code)
Parse a statement.



parseTerm
protected Expression parseTerm() throws SyntaxError, IOException(Code)
Parse a primary expression.



parseType
protected Type parseType() throws SyntaxError, IOException(Code)
Parse a type expression, this results in a Type. The parse includes trailing array brackets.



parseTypeExpression
protected Expression parseTypeExpression() throws SyntaxError, IOException(Code)
Parse a type expression. Does not parse the []'s.



recoverField
protected void recoverField(ClassDefinition newClass) throws SyntaxError, IOException(Code)
Recover after a syntax error in a field. This involves discarding tokens until an EOF or a possible legal continuation is encountered.



recoverFile
protected void recoverFile() throws IOException(Code)
Recover after a syntax error in the file. This involves discarding tokens until an EOF or a possible legal continuation is encountered.



recoverStatement
protected boolean recoverStatement() throws SyntaxError, IOException(Code)
Recover after a syntax error in a statement. This involves discarding tokens until EOF or a possible continuation is encountered.



scan
public long scan() throws IOException(Code)



statArgs
final protected Statement statArgs(int index)(Code)



topLevelExpression
protected void topLevelExpression(Expression e)(Code)
Check if an expression is a legal toplevel expression. Only method, inc, dec, and new expression are allowed.



Fields inherited from sun.tools.java.Scanner
final public static int EOF(Code)(Java Doc)
final public static long LINEINC(Code)(Java Doc)
final public static long OFFSETINC(Code)(Java Doc)
protected int ch(Code)(Java Doc)
public char charValue(Code)(Java Doc)
public String docComment(Code)(Java Doc)
public double doubleValue(Code)(Java Doc)
public Environment env(Code)(Java Doc)
public float floatValue(Code)(Java Doc)
public Identifier idValue(Code)(Java Doc)
protected ScannerInputReader in(Code)(Java Doc)
public int intValue(Code)(Java Doc)
public long longValue(Code)(Java Doc)
public long pos(Code)(Java Doc)
public long prevPos(Code)(Java Doc)
public int radix(Code)(Java Doc)
public boolean scanComments(Code)(Java Doc)
public String stringValue(Code)(Java Doc)
public int token(Code)(Java Doc)

Methods inherited from sun.tools.java.Scanner
public long getEndPos()(Code)(Java Doc)
public IdentifierToken getIdToken()(Code)(Java Doc)
public void match(int open, int close) throws IOException(Code)(Java Doc)
public long scan() throws IOException(Code)(Java Doc)
protected void useInputStream(InputStream in) throws IOException(Code)(Java Doc)
protected long xscan() throws IOException(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.