<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_01) on Mon Apr 23 21:09:01 GMT 2007 -->
<TITLE>
production
</TITLE>
<META NAME="keywords" CONTENT="java_cup.production class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="production";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/production.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../java_cup/parser.html" title="class in java_cup"><B>PREV CLASS</B></A>
<A HREF="../java_cup/production_part.html" title="class in java_cup"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../index.html?java_cup/production.html" target="_top"><B>FRAMES</B></A>
<A HREF="production.html" target="_top"><B>NO FRAMES</B></A>
<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
java_cup</FONT>
<BR>
Class production</H2>
<PRE>
java.lang.Object
<IMG SRC="../resources/inherit.gif" ALT="extended by "><B>java_cup.production</B>
</PRE>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../java_cup/action_production.html" title="class in java_cup">action_production</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>production</B><DT>extends java.lang.Object</DL>
</PRE>
<P>
This class represents a production in the grammar. It contains
a LHS non terminal, and an array of RHS symbols. As various
transformations are done on the RHS of the production, it may shrink.
As a result a separate length is always maintained to indicate how much
of the RHS array is still valid.<p>
I addition to construction and manipulation operations, productions provide
methods for factoring out actions (see remove_embedded_actions()), for
computing the nullability of the production (i.e., can it derive the empty
string, see check_nullable()), and operations for computing its first
set (i.e., the set of terminals that could appear at the beginning of some
string derived from the production, see check_first_set()).
<P>
<P>
<DL>
<DT><B>Version:</B></DT>
<DD>last updated: 7/3/96</DD>
<DT><B>Author:</B></DT>
<DD>Frank Flannery</DD>
<DT><B>See Also:</B><DD><A HREF="../java_cup/production_part.html" title="class in java_cup"><CODE>production_part</CODE></A>,
<A HREF="../java_cup/symbol_part.html" title="class in java_cup"><CODE>symbol_part</CODE></A>,
<A HREF="../java_cup/action_part.html" title="class in java_cup"><CODE>action_part</CODE></A></DL>
<HR>
<P>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected <A HREF="../java_cup/action_part.html" title="class in java_cup">action_part</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#_action">_action</A></B></CODE>
<BR>
An action_part containing code for the action to be performed when we
reduce with this production.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static java.util.Hashtable</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#_all">_all</A></B></CODE>
<BR>
Table of all productions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected <A HREF="../java_cup/terminal_set.html" title="class in java_cup">terminal_set</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#_first_set">_first_set</A></B></CODE>
<BR>
First set of the production.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#_index">_index</A></B></CODE>
<BR>
Index number of the production.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected <A HREF="../java_cup/symbol_part.html" title="class in java_cup">symbol_part</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#_lhs">_lhs</A></B></CODE>
<BR>
The left hand side non-terminal.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#_nullable">_nullable</A></B></CODE>
<BR>
Nullability of the production (can it derive the empty string).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#_nullable_known">_nullable_known</A></B></CODE>
<BR>
Is the nullability of the production known or unknown?</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#_num_reductions">_num_reductions</A></B></CODE>
<BR>
Count of number of reductions using this production.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected <A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#_rhs">_rhs</A></B></CODE>
<BR>
A collection of parts for the right hand side.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#_rhs_assoc">_rhs_assoc</A></B></CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#_rhs_length">_rhs_length</A></B></CODE>
<BR>
How much of the right hand side array we are presently using.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#_rhs_prec">_rhs_prec</A></B></CODE>
<BR>
The precedence of the rule</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#next_index">next_index</A></B></CODE>
<BR>
Static counter for assigning unique index numbers.</TD>
</TR>
</TABLE>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../java_cup/production.html#production(java_cup.non_terminal, java_cup.production_part[], int)">production</A></B>(<A HREF="../java_cup/non_terminal.html" title="class in java_cup">non_terminal</A> lhs_sym,
<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs_parts,
int rhs_l)</CODE>
<BR>
Constructor with no action string.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../java_cup/production.html#production(java_cup.non_terminal, java_cup.production_part[], int, int, int)">production</A></B>(<A HREF="../java_cup/non_terminal.html" title="class in java_cup">non_terminal</A> lhs_sym,
<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs_parts,
int rhs_l,
int prec_num,
int prec_side)</CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../java_cup/production.html#production(java_cup.non_terminal, java_cup.production_part[], int, java.lang.String)">production</A></B>(<A HREF="../java_cup/non_terminal.html" title="class in java_cup">non_terminal</A> lhs_sym,
<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs_parts,
int rhs_l,
java.lang.String action_str)</CODE>
<BR>
Full constructor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../java_cup/production.html#production(java_cup.non_terminal, java_cup.production_part[], int, java.lang.String, int, int)">production</A></B>(<A HREF="../java_cup/non_terminal.html" title="class in java_cup">non_terminal</A> lhs_sym,
<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs_parts,
int rhs_l,
java.lang.String action_str,
int prec_num,
int prec_side)</CODE>
<BR>
</TD>
</TR>
</TABLE>
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> <A HREF="../java_cup/action_part.html" title="class in java_cup">action_part</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#action()">action</A></B>()</CODE>
<BR>
An action_part containing code for the action to be performed when we
reduce with this production.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static java.util.Enumeration</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#all()">all</A></B>()</CODE>
<BR>
Access to all productions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> <A HREF="../java_cup/terminal_set.html" title="class in java_cup">terminal_set</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#check_first_set()">check_first_set</A></B>()</CODE>
<BR>
Update (and return) the first set based on current NT firsts.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#check_nullable()">check_nullable</A></B>()</CODE>
<BR>
Check to see if the production (now) appears to be nullable.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#declare_labels(java_cup.production_part[], int, java.lang.String)">declare_labels</A></B>(<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs,
int rhs_len,
java.lang.String final_action)</CODE>
<BR>
Declare label names as valid variables within the action string</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object other)</CODE>
<BR>
Generic equality comparison.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#equals(java_cup.production)">equals</A></B>(<A HREF="../java_cup/production.html" title="class in java_cup">production</A> other)</CODE>
<BR>
Equality comparison.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static <A HREF="../java_cup/production.html" title="class in java_cup">production</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#find(int)">find</A></B>(int indx)</CODE>
<BR>
Lookup a production by index.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> <A HREF="../java_cup/terminal_set.html" title="class in java_cup">terminal_set</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#first_set()">first_set</A></B>()</CODE>
<BR>
First set of the production.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#hashCode()">hashCode</A></B>()</CODE>
<BR>
Produce a hash code.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#index()">index</A></B>()</CODE>
<BR>
Index number of the production.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#is_id_char(char)">is_id_char</A></B>(char c)</CODE>
<BR>
Determine if a character can be in a label id.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#is_id_start(char)">is_id_start</A></B>(char c)</CODE>
<BR>
Determine if a given character can be a label id starter.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> <A HREF="../java_cup/symbol_part.html" title="class in java_cup">symbol_part</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#lhs()">lhs</A></B>()</CODE>
<BR>
The left hand side non-terminal.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#make_declaration(java.lang.String, java.lang.String, int)">make_declaration</A></B>(java.lang.String labelname,
java.lang.String stack_type,
int offset)</CODE>
<BR>
Return label declaration code</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#merge_adjacent_actions(java_cup.production_part[], int)">merge_adjacent_actions</A></B>(<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs_parts,
int len)</CODE>
<BR>
Helper routine to merge adjacent actions in a set of RHS parts</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#note_reduction_use()">note_reduction_use</A></B>()</CODE>
<BR>
Increment the count of reductions with this non-terminal</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#nullable_known()">nullable_known</A></B>()</CODE>
<BR>
Is the nullability of the production known or unknown?</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#nullable()">nullable</A></B>()</CODE>
<BR>
Nullability of the production (can it derive the empty string).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#num_reductions()">num_reductions</A></B>()</CODE>
<BR>
Count of number of reductions using this production.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#number()">number</A></B>()</CODE>
<BR>
Total number of productions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#precedence_num()">precedence_num</A></B>()</CODE>
<BR>
Access to the precedence of the rule</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#precedence_side()">precedence_side</A></B>()</CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#remove_embedded_actions()">remove_embedded_actions</A></B>()</CODE>
<BR>
Remove all embedded actions from a production by factoring them
out into individual action production using new non terminals.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#rhs_length()">rhs_length</A></B>()</CODE>
<BR>
How much of the right hand side array we are presently using.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> <A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#rhs(int)">rhs</A></B>(int indx)</CODE>
<BR>
Access to the collection of parts for the right hand side.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#set_precedence_num(int)">set_precedence_num</A></B>(int prec_num)</CODE>
<BR>
Setting the precedence of a rule</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#set_precedence_side(int)">set_precedence_side</A></B>(int prec_side)</CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected <A HREF="../java_cup/action_part.html" title="class in java_cup">action_part</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#strip_trailing_action(java_cup.production_part[], int)">strip_trailing_action</A></B>(<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs_parts,
int len)</CODE>
<BR>
Helper routine to strip a trailing action off rhs and return it</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#to_simple_string()">to_simple_string</A></B>()</CODE>
<BR>
Convert to a simpler string.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../java_cup/production.html#toString()">toString</A></B>()</CODE>
<BR>
Convert to a string.</TD>
</TR>
</TABLE>
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="_all"><!-- --></A><H3>
_all</H3>
<PRE>
protected static java.util.Hashtable <B>_all</B></PRE>
<DL>
<DD>Table of all productions. Elements are stored using their index as
the key.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="next_index"><!-- --></A><H3>
next_index</H3>
<PRE>
protected static int <B>next_index</B></PRE>
<DL>
<DD>Static counter for assigning unique index numbers.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="_lhs"><!-- --></A><H3>
_lhs</H3>
<PRE>
protected <A HREF="../java_cup/symbol_part.html" title="class in java_cup">symbol_part</A> <B>_lhs</B></PRE>
<DL>
<DD>The left hand side non-terminal.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="_rhs_prec"><!-- --></A><H3>
_rhs_prec</H3>
<PRE>
protected int <B>_rhs_prec</B></PRE>
<DL>
<DD>The precedence of the rule
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="_rhs_assoc"><!-- --></A><H3>
_rhs_assoc</H3>
<PRE>
protected int <B>_rhs_assoc</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="_rhs"><!-- --></A><H3>
_rhs</H3>
<PRE>
protected <A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] <B>_rhs</B></PRE>
<DL>
<DD>A collection of parts for the right hand side.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="_rhs_length"><!-- --></A><H3>
_rhs_length</H3>
<PRE>
protected int <B>_rhs_length</B></PRE>
<DL>
<DD>How much of the right hand side array we are presently using.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="_action"><!-- --></A><H3>
_action</H3>
<PRE>
protected <A HREF="../java_cup/action_part.html" title="class in java_cup">action_part</A> <B>_action</B></PRE>
<DL>
<DD>An action_part containing code for the action to be performed when we
reduce with this production.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="_index"><!-- --></A><H3>
_index</H3>
<PRE>
protected int <B>_index</B></PRE>
<DL>
<DD>Index number of the production.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="_num_reductions"><!-- --></A><H3>
_num_reductions</H3>
<PRE>
protected int <B>_num_reductions</B></PRE>
<DL>
<DD>Count of number of reductions using this production.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="_nullable_known"><!-- --></A><H3>
_nullable_known</H3>
<PRE>
protected boolean <B>_nullable_known</B></PRE>
<DL>
<DD>Is the nullability of the production known or unknown?
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="_nullable"><!-- --></A><H3>
_nullable</H3>
<PRE>
protected boolean <B>_nullable</B></PRE>
<DL>
<DD>Nullability of the production (can it derive the empty string).
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="_first_set"><!-- --></A><H3>
_first_set</H3>
<PRE>
protected <A HREF="../java_cup/terminal_set.html" title="class in java_cup">terminal_set</A> <B>_first_set</B></PRE>
<DL>
<DD>First set of the production. This is the set of terminals that
could appear at the front of some string derived from this production.
<P>
<DL>
</DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="production(java_cup.non_terminal, java_cup.production_part[], int, java.lang.String)"><!-- --></A><H3>
production</H3>
<PRE>
public <B>production</B>(<A HREF="../java_cup/non_terminal.html" title="class in java_cup">non_terminal</A> lhs_sym,
<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs_parts,
int rhs_l,
java.lang.String action_str)
throws <A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></PRE>
<DL>
<DD>Full constructor. This constructor accepts a LHS non terminal,
an array of RHS parts (including terminals, non terminals, and
actions), and a string for a final reduce action. It does several
manipulations in the process of creating a production object.
After some validity checking it translates labels that appear in
actions into code for accessing objects on the runtime parse stack.
It them merges adjacent actions if they appear and moves any trailing
action into the final reduce actions string. Next it removes any
embedded actions by factoring them out with new action productions.
Finally it assigns a unique index to the production.<p>
Factoring out of actions is accomplished by creating new "hidden"
non terminals. For example if the production was originally: <pre>
A ::= B {action} C D
</pre>
then it is factored into two productions:<pre>
A ::= B X C D
X ::= {action}
</pre>
(where X is a unique new non terminal). This has the effect of placing
all actions at the end where they can be handled as part of a reduce by
the parser.
<P>
<DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></CODE></DL>
</DL>
<HR>
<A NAME="production(java_cup.non_terminal, java_cup.production_part[], int)"><!-- --></A><H3>
production</H3>
<PRE>
public <B>production</B>(<A HREF="../java_cup/non_terminal.html" title="class in java_cup">non_terminal</A> lhs_sym,
<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs_parts,
int rhs_l)
throws <A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></PRE>
<DL>
<DD>Constructor with no action string.
<P>
<DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></CODE></DL>
</DL>
<HR>
<A NAME="production(java_cup.non_terminal, java_cup.production_part[], int, java.lang.String, int, int)"><!-- --></A><H3>
production</H3>
<PRE>
public <B>production</B>(<A HREF="../java_cup/non_terminal.html" title="class in java_cup">non_terminal</A> lhs_sym,
<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs_parts,
int rhs_l,
java.lang.String action_str,
int prec_num,
int prec_side)
throws <A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></PRE>
<DL>
<DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></CODE></DL>
</DL>
<HR>
<A NAME="production(java_cup.non_terminal, java_cup.production_part[], int, int, int)"><!-- --></A><H3>
production</H3>
<PRE>
public <B>production</B>(<A HREF="../java_cup/non_terminal.html" title="class in java_cup">non_terminal</A> lhs_sym,
<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs_parts,
int rhs_l,
int prec_num,
int prec_side)
throws <A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></PRE>
<DL>
<DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></CODE></DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="all()"><!-- --></A><H3>
all</H3>
<PRE>
public static java.util.Enumeration <B>all</B>()</PRE>
<DL>
<DD>Access to all productions.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="find(int)"><!-- --></A><H3>
find</H3>
<PRE>
public static <A HREF="../java_cup/production.html" title="class in java_cup">production</A> <B>find</B>(int indx)</PRE>
<DL>
<DD>Lookup a production by index.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="number()"><!-- --></A><H3>
number</H3>
<PRE>
public static int <B>number</B>()</PRE>
<DL>
<DD>Total number of productions.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="lhs()"><!-- --></A><H3>
lhs</H3>
<PRE>
public <A HREF="../java_cup/symbol_part.html" title="class in java_cup">symbol_part</A> <B>lhs</B>()</PRE>
<DL>
<DD>The left hand side non-terminal.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="precedence_num()"><!-- --></A><H3>
precedence_num</H3>
<PRE>
public int <B>precedence_num</B>()</PRE>
<DL>
<DD>Access to the precedence of the rule
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="precedence_side()"><!-- --></A><H3>
precedence_side</H3>
<PRE>
public int <B>precedence_side</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="set_precedence_num(int)"><!-- --></A><H3>
set_precedence_num</H3>
<PRE>
public void <B>set_precedence_num</B>(int prec_num)</PRE>
<DL>
<DD>Setting the precedence of a rule
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="set_precedence_side(int)"><!-- --></A><H3>
set_precedence_side</H3>
<PRE>
public void <B>set_precedence_side</B>(int prec_side)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="rhs(int)"><!-- --></A><H3>
rhs</H3>
<PRE>
public <A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A> <B>rhs</B>(int indx)
throws <A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></PRE>
<DL>
<DD>Access to the collection of parts for the right hand side.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="rhs_length()"><!-- --></A><H3>
rhs_length</H3>
<PRE>
public int <B>rhs_length</B>()</PRE>
<DL>
<DD>How much of the right hand side array we are presently using.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="action()"><!-- --></A><H3>
action</H3>
<PRE>
public <A HREF="../java_cup/action_part.html" title="class in java_cup">action_part</A> <B>action</B>()</PRE>
<DL>
<DD>An action_part containing code for the action to be performed when we
reduce with this production.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="index()"><!-- --></A><H3>
index</H3>
<PRE>
public int <B>index</B>()</PRE>
<DL>
<DD>Index number of the production.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="num_reductions()"><!-- --></A><H3>
num_reductions</H3>
<PRE>
public int <B>num_reductions</B>()</PRE>
<DL>
<DD>Count of number of reductions using this production.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="note_reduction_use()"><!-- --></A><H3>
note_reduction_use</H3>
<PRE>
public void <B>note_reduction_use</B>()</PRE>
<DL>
<DD>Increment the count of reductions with this non-terminal
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="nullable_known()"><!-- --></A><H3>
nullable_known</H3>
<PRE>
public boolean <B>nullable_known</B>()</PRE>
<DL>
<DD>Is the nullability of the production known or unknown?
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="nullable()"><!-- --></A><H3>
nullable</H3>
<PRE>
public boolean <B>nullable</B>()</PRE>
<DL>
<DD>Nullability of the production (can it derive the empty string).
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="first_set()"><!-- --></A><H3>
first_set</H3>
<PRE>
public <A HREF="../java_cup/terminal_set.html" title="class in java_cup">terminal_set</A> <B>first_set</B>()</PRE>
<DL>
<DD>First set of the production. This is the set of terminals that
could appear at the front of some string derived from this production.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="is_id_start(char)"><!-- --></A><H3>
is_id_start</H3>
<PRE>
protected static boolean <B>is_id_start</B>(char c)</PRE>
<DL>
<DD>Determine if a given character can be a label id starter.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>c</CODE> - the character in question.</DL>
</DD>
</DL>
<HR>
<A NAME="is_id_char(char)"><!-- --></A><H3>
is_id_char</H3>
<PRE>
protected static boolean <B>is_id_char</B>(char c)</PRE>
<DL>
<DD>Determine if a character can be in a label id.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>c</CODE> - the character in question.</DL>
</DD>
</DL>
<HR>
<A NAME="make_declaration(java.lang.String, java.lang.String, int)"><!-- --></A><H3>
make_declaration</H3>
<PRE>
protected java.lang.String <B>make_declaration</B>(java.lang.String labelname,
java.lang.String stack_type,
int offset)</PRE>
<DL>
<DD>Return label declaration code
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>labelname</CODE> - the label name<DD><CODE>stack_type</CODE> - the stack type of label?</DL>
</DD>
</DL>
<HR>
<A NAME="declare_labels(java_cup.production_part[], int, java.lang.String)"><!-- --></A><H3>
declare_labels</H3>
<PRE>
protected java.lang.String <B>declare_labels</B>(<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs,
int rhs_len,
java.lang.String final_action)</PRE>
<DL>
<DD>Declare label names as valid variables within the action string
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>rhs</CODE> - array of RHS parts.<DD><CODE>rhs_len</CODE> - how much of rhs to consider valid.<DD><CODE>final_action</CODE> - the final action string of the production.<DD><CODE>lhs_type</CODE> - the object type associated with the LHS symbol.</DL>
</DD>
</DL>
<HR>
<A NAME="merge_adjacent_actions(java_cup.production_part[], int)"><!-- --></A><H3>
merge_adjacent_actions</H3>
<PRE>
protected int <B>merge_adjacent_actions</B>(<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs_parts,
int len)</PRE>
<DL>
<DD>Helper routine to merge adjacent actions in a set of RHS parts
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>rhs_parts</CODE> - array of RHS parts.<DD><CODE>len</CODE> - amount of that array that is valid.
<DT><B>Returns:</B><DD>remaining valid length.</DL>
</DD>
</DL>
<HR>
<A NAME="strip_trailing_action(java_cup.production_part[], int)"><!-- --></A><H3>
strip_trailing_action</H3>
<PRE>
protected <A HREF="../java_cup/action_part.html" title="class in java_cup">action_part</A> <B>strip_trailing_action</B>(<A HREF="../java_cup/production_part.html" title="class in java_cup">production_part</A>[] rhs_parts,
int len)</PRE>
<DL>
<DD>Helper routine to strip a trailing action off rhs and return it
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>rhs_parts</CODE> - array of RHS parts.<DD><CODE>len</CODE> - how many of those are valid.
<DT><B>Returns:</B><DD>the removed action part.</DL>
</DD>
</DL>
<HR>
<A NAME="remove_embedded_actions()"><!-- --></A><H3>
remove_embedded_actions</H3>
<PRE>
protected void <B>remove_embedded_actions</B>()
throws <A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></PRE>
<DL>
<DD>Remove all embedded actions from a production by factoring them
out into individual action production using new non terminals.
if the original production was: <pre>
A ::= B {action1} C {action2} D
</pre>
then it will be factored into: <pre>
A ::= B NT$1 C NT$2 D
NT$1 ::= {action1}
NT$2 ::= {action2}
</pre>
where NT$1 and NT$2 are new system created non terminals.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="check_nullable()"><!-- --></A><H3>
check_nullable</H3>
<PRE>
public boolean <B>check_nullable</B>()
throws <A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></PRE>
<DL>
<DD>Check to see if the production (now) appears to be nullable.
A production is nullable if its RHS could derive the empty string.
This results when the RHS is empty or contains only non terminals
which themselves are nullable.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="check_first_set()"><!-- --></A><H3>
check_first_set</H3>
<PRE>
public <A HREF="../java_cup/terminal_set.html" title="class in java_cup">terminal_set</A> <B>check_first_set</B>()
throws <A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></PRE>
<DL>
<DD>Update (and return) the first set based on current NT firsts.
This assumes that nullability has already been computed for all non
terminals and productions.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="equals(java_cup.production)"><!-- --></A><H3>
equals</H3>
<PRE>
public boolean <B>equals</B>(<A HREF="../java_cup/production.html" title="class in java_cup">production</A> other)</PRE>
<DL>
<DD>Equality comparison.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
equals</H3>
<PRE>
public boolean <B>equals</B>(java.lang.Object other)</PRE>
<DL>
<DD>Generic equality comparison.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>equals</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="hashCode()"><!-- --></A><H3>
hashCode</H3>
<PRE>
public int <B>hashCode</B>()</PRE>
<DL>
<DD>Produce a hash code.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>hashCode</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public java.lang.String <B>toString</B>()</PRE>
<DL>
<DD>Convert to a string.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="to_simple_string()"><!-- --></A><H3>
to_simple_string</H3>
<PRE>
public java.lang.String <B>to_simple_string</B>()
throws <A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></PRE>
<DL>
<DD>Convert to a simpler string.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../java_cup/internal_error.html" title="class in java_cup">internal_error</A></CODE></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/production.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../java_cup/parser.html" title="class in java_cup"><B>PREV CLASS</B></A>
<A HREF="../java_cup/production_part.html" title="class in java_cup"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../index.html?java_cup/production.html" target="_top"><B>FRAMES</B></A>
<A HREF="production.html" target="_top"><B>NO FRAMES</B></A>
<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
</BODY>
</HTML>