public class Terminal extends GrammarSymbol
regex
must be set to a non-null value
before a terminal is passed to the compiler.Modifier and Type | Field and Description |
---|---|
protected java.lang.String |
code
Code specifying a semantic action for this terminal.
|
protected java.util.Set<CopperElementReference> |
dominateList
Terminals and/or terminal classes over which this terminal takes lexical precedence.
|
protected OperatorAssociativity |
operatorAssociativity
The terminal's operator associativity.
|
protected CopperElementReference |
operatorClass
The terminal's operator precedence class.
|
protected java.lang.Integer |
operatorPrecedence
The terminal's operator precedence.
|
protected CopperElementReference |
prefix
The terminal's transparent prefix.
|
protected Regex |
regex
The regex represented by this terminal.
|
protected java.util.Set<CopperElementReference> |
submitList
Terminals and/or terminal classes that take precedence over this terminal.
|
protected java.util.Set<CopperElementReference> |
terminalClasses
Terminal classes to which this terminal belongs.
|
returnType
displayName, location, name, type
Constructor and Description |
---|
Terminal() |
Modifier and Type | Method and Description |
---|---|
<RT,E extends java.lang.Exception> |
acceptVisitor(edu.umn.cs.melt.copper.compiletime.spec.grammarbeans.visitors.CopperASTBeanVisitor<RT,E> visitor) |
boolean |
addDominates(CopperElementReference t) |
boolean |
addSubmitsTo(CopperElementReference t) |
boolean |
addTerminalClass(CopperElementReference terminalClass) |
java.lang.String |
getCode() |
java.util.Set<CopperElementReference> |
getDominateList() |
OperatorAssociativity |
getOperatorAssociativity() |
CopperElementReference |
getOperatorClass() |
java.lang.Integer |
getOperatorPrecedence() |
CopperElementReference |
getPrefix() |
Regex |
getRegex() |
java.util.Set<CopperElementReference> |
getSubmitList() |
java.util.Set<CopperElementReference> |
getTerminalClasses() |
boolean |
isComplete()
Checks that a grammar object has had values assigned to all its required elements and parameters.
|
void |
setCode(java.lang.String code) |
void |
setDominateList(java.util.Set<CopperElementReference> dominateList) |
void |
setOperatorAssociativity(OperatorAssociativity operatorAssociativity) |
void |
setOperatorClass(CopperElementReference operatorClass) |
void |
setOperatorPrecedence(java.lang.Integer operatorPrecedence) |
void |
setPrefix(CopperElementReference prefix) |
void |
setRegex(Regex regex) |
void |
setSubmitList(java.util.Set<CopperElementReference> submitList) |
void |
setTerminalClasses(java.util.Set<CopperElementReference> terminalClasses) |
java.util.Set<java.lang.String> |
whatIsMissing() |
getReturnType, setReturnType
getDisplayName, getLocation, getName, getType, hasDisplayName, setDisplayName, setLocation, setName, setName
protected Regex regex
protected CopperElementReference operatorClass
protected java.lang.Integer operatorPrecedence
protected OperatorAssociativity operatorAssociativity
protected java.lang.String code
protected java.util.Set<CopperElementReference> terminalClasses
protected java.util.Set<CopperElementReference> submitList
protected java.util.Set<CopperElementReference> dominateList
protected CopperElementReference prefix
public boolean isComplete()
CopperASTBean
name
and location
to be set, and may impose
additional individual requirements.isComplete
in class CopperASTBean
true
iff all required elements and parameters have been set to non-null values.public java.util.Set<java.lang.String> whatIsMissing()
whatIsMissing
in class CopperASTBean
public CopperElementReference getOperatorClass()
operatorClass
public void setOperatorClass(CopperElementReference operatorClass)
operatorClass
public java.lang.Integer getOperatorPrecedence()
operatorPrecedence
public void setOperatorPrecedence(java.lang.Integer operatorPrecedence)
operatorPrecedence
public OperatorAssociativity getOperatorAssociativity()
operatorAssociativity
public void setOperatorAssociativity(OperatorAssociativity operatorAssociativity)
operatorAssociativity
public java.lang.String getCode()
code
public void setCode(java.lang.String code)
code
public java.util.Set<CopperElementReference> getTerminalClasses()
terminalClasses
public boolean addTerminalClass(CopperElementReference terminalClass)
terminalClasses
public void setTerminalClasses(java.util.Set<CopperElementReference> terminalClasses)
terminalClasses
public java.util.Set<CopperElementReference> getSubmitList()
submitList
public boolean addSubmitsTo(CopperElementReference t)
submitList
public void setSubmitList(java.util.Set<CopperElementReference> submitList)
submitList
public java.util.Set<CopperElementReference> getDominateList()
dominateList
public boolean addDominates(CopperElementReference t)
dominateList
public void setDominateList(java.util.Set<CopperElementReference> dominateList)
dominateList
public CopperElementReference getPrefix()
prefix
public void setPrefix(CopperElementReference prefix)
prefix
public <RT,E extends java.lang.Exception> RT acceptVisitor(edu.umn.cs.melt.copper.compiletime.spec.grammarbeans.visitors.CopperASTBeanVisitor<RT,E> visitor) throws E extends java.lang.Exception
acceptVisitor
in class CopperASTBean
E extends java.lang.Exception