antlr-2.7.7.jar
登录
|
antlr:antlr:2.7.7
META-INF
antlr
TokenQueue.java
ParseTreeToken.java
ByteBuffer.java
ANTLRLexer.java
StringLiteralElement.java
CharQueue.java
TokenStreamRecognitionException.java
SemanticException.java
TokenRefElement.java
GrammarAnalyzer.java
ParseTree.java
Lookahead.java
debug
RuleEndElement.java
BaseAST.java
BlockContext.java
MismatchedCharException.java
HTMLCodeGenerator.java
TreeWalkerGrammar.java
WildcardElement.java
Tool.java
LexerGrammar.java
LLkParser.java
JavaCodeGeneratorPrintWriterManager.java
Makefile.in
TreeElement.java
DumpASTVisitor.java
ANTLRTokdefLexer.java
CharBuffer.java
antlr.g
ASTVisitor.java
ASTNULLType.java
ASdebug
TokenStreamRetryException.java
RuleSymbol.java
ActionTransInfo.java
CppCodeGenerator.java
OneOrMoreBlock.java
CSharpNameSpace.java
ANTLRHashString.java
TokenRangeElement.java
CommonASTWithHiddenTokens.java
LexerSharedInputState.java
TokenStreamBasicFilter.java
Alternative.java
TokenStreamIOException.java
Grammar.java
BlockEndElement.java
ParseTreeRule.java
CharStreamIOException.java
ParserSharedInputState.java
PreservingFileWriter.java
DefaultFileLineFormatter.java
CharScanner.java
ANTLRParser.java
ASTFactory.java
TokenStream.java
build
SimpleTokenManager.java
CSharpCharFormatter.java
GrammarSymbol.java
JavaCharFormatter.java
ANTLRStringBuffer.java
JavaCodeGenerator.java
TreeParser.java
FileCopyException.java
ASTIterator.java
ExceptionSpec.java
ParserGrammar.java
CppBlockFinishingInfo.java
ANTLRGrammarParseBehavior.java
TokenManager.java
ImportVocabTokenManager.java
GrammarElement.java
TokenStreamHiddenTokenFilter.java
Version.java
NoViableAltException.java
CharRangeElement.java
preprocessor
GrammarFile.java
Tool.java
Preprocessor.java
Rule.java
Option.java
Grammar.java
PreprocessorTokenTypes.java
PreprocessorLexer.java
Hierarchy.java
preproc.g
RecognitionException.java
RuleRefElement.java
ANTLRTokdefParser.java
CharFormatter.java
DefineGrammarSymbols.java
BlockWithImpliedExitPath.java
Parser.java
ZeroOrMoreBlock.java
PrintWriterWithSMAP.java
PythonBlockFinishingInfo.java
ASTPair.java
MismatchedTokenException.java
GrammarAtom.java
CodeGenerator.java
SynPredBlock.java
TokenStreamRewriteEngine.java
CommonHiddenStreamToken.java
CSharpBlockFinishingInfo.java
ANTLRTokenTypes.java
StringLiteralSymbol.java
NameSpace.java
InputBuffer.java
ToolErrorHandler.java
Utils.java
tokdef.g
ANTLRException.java
DefaultJavaCodeGeneratorPrintWriterManager.java
PythonCodeGenerator.java
StringUtils.java
TokenStreamSelector.java
TreeBlockContext.java
DocBookCodeGenerator.java
RuleBlock.java
LLkGrammarAnalyzer.java
ExceptionHandler.java
collections
NoViableAltForCharException.java
Token.java
ActionElement.java
ANTLRError.java
CommonAST.java
CharLiteralElement.java
LLkAnalyzer.java
FileLineFormatter.java
TokenBuffer.java
DiagnosticCodeGenerator.java
TreeSpecifierNode.java
MakeGrammar.java
actions
Version.java.in
TreeParserSharedInputState.java
TokenSymbol.java
JavaBlockFinishingInfo.java
CommonToken.java
DefaultToolErrorHandler.java
ANTLRTokdefParserTokenTypes.java
CharStreamException.java
CSharpCodeGenerator.java
AlternativeElement.java
AlternativeBlock.java
CppCharFormatter.java
TokenStreamException.java
TokenWithIndex.java
PythonCharFormatter.java
Rule.java
清空
类结构
package antlr.preprocessor; /* ANTLR Translator Generator * Project led by Terence Parr at http://www.cs.usfca.edu * Software rights: http://www.antlr.org/license.html * * $Id: //depot/code/org.antlr/release/antlr-2.7.7/antlr/preprocessor/Rule.java#2 $ */ import antlr.collections.impl.
IndexedVector
; import java.util.
Hashtable
; import java.util.
Enumeration
; class
Rule
{ protected
String
name
; protected
String
block
; protected
String
args
; protected
String
returnValue
; protected
String
throwsSpec
; protected
String
initAction
; protected
IndexedVector
options
; protected
String
visibility
; protected
Grammar
enclosingGrammar
; protected boolean
bang
= false; public
Rule
(
String
n
,
String
b
,
IndexedVector
options
,
Grammar
gr
) {
name
=
n
;
block
=
b
; this.
options
=
options
;
setEnclosingGrammar
(
gr
); } public
String
getArgs
() { return
args
; } public boolean
getBang
() { return
bang
; } public
String
getName
() { return
name
; } public
String
getReturnValue
() { return
returnValue
; } public
String
getVisibility
() { return
visibility
; } /** If 'rule' narrows the visible of 'this', return true; * For example, 'this' is public and 'rule' is private, * true is returned. You cannot narrow the vis. of * a rule. */ public boolean
narrowerVisibility
(
Rule
rule
) { if (
visibility
.
equals
("public")) { if (!
rule
.
equals
("public")) { return true; // everything narrower than public } return false; } else if (
visibility
.
equals
("protected")) { if (
rule
.
equals
("private")) { return true; // private narrower than protected } return false; } else if (
visibility
.
equals
("private")) { return false; // nothing is narrower than private } return false; } /** Two rules have the same signature if they have: * same name * same return value * same args * I do a simple string compare now, but later * the type could be pulled out so it is insensitive * to names of args etc... */ public boolean
sameSignature
(
Rule
rule
) { boolean
nSame
= true; boolean
aSame
= true; boolean
rSame
= true;
nSame
=
name
.
equals
(
rule
.
getName
()); if (
args
!= null) {
aSame
=
args
.
equals
(
rule
.
getArgs
()); } if (
returnValue
!= null) {
rSame
=
returnValue
.
equals
(
rule
.
getReturnValue
()); } return
nSame
&&
aSame
&&
rSame
; } public void
setArgs
(
String
a
) {
args
=
a
; } public void
setBang
() {
bang
= true; } public void
setEnclosingGrammar
(
Grammar
g
) {
enclosingGrammar
=
g
; } public void
setInitAction
(
String
a
) {
initAction
=
a
; } public void
setOptions
(
IndexedVector
options
) { this.
options
=
options
; } public void
setReturnValue
(
String
ret
) {
returnValue
=
ret
; } public void
setThrowsSpec
(
String
t
) {
throwsSpec
=
t
; } public void
setVisibility
(
String
v
) {
visibility
=
v
; } public
String
toString
() {
String
s
= "";
String
retString
=
returnValue
== null ? "" : "returns " +
returnValue
;
String
argString
=
args
== null ? "" :
args
;
String
bang
=
getBang
() ? "!" : "";
s
+=
visibility
== null ? "" :
visibility
+ " ";
s
+=
name
+
bang
+
argString
+ " " +
retString
+
throwsSpec
; if (
options
!= null) {
s
+=
System
.
getProperty
("line.separator") + "options {" +
System
.
getProperty
("line.separator"); for (
Enumeration
e
=
options
.
elements
();
e
.
hasMoreElements
();) {
s
+= (
Option
)
e
.
nextElement
() +
System
.
getProperty
("line.separator"); }
s
+= "}" +
System
.
getProperty
("line.separator"); } if (
initAction
!= null) {
s
+=
initAction
+
System
.
getProperty
("line.separator"); }
s
+=
block
; return
s
; } }
查找资源
Jre/Lib
输入类名或文件名
类结构窗口