<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>ParseException xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/velocity/runtime/parser/ParseException.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*<em class="jxr_comment"> Generated By:JavaCC: Do not edit this line. ParseException.java Version 3.0 */</em></em>
<a name="2" href="#2">2</a>   <strong class="jxr_keyword">package</strong> org.apache.velocity.runtime.parser;
<a name="3" href="#3">3</a>   
<a name="4" href="#4">4</a>   <em class="jxr_javadoccomment">/**</em>
<a name="5" href="#5">5</a>   <em class="jxr_javadoccomment"> * This exception is thrown when parse errors are encountered.</em>
<a name="6" href="#6">6</a>   <em class="jxr_javadoccomment"> * It is intended to be caught and typically will be rethrown</em>
<a name="7" href="#7">7</a>   <em class="jxr_javadoccomment"> * as a ParseErrorException.</em>
<a name="8" href="#8">8</a>   <em class="jxr_javadoccomment"> * </em>
<a name="9" href="#9">9</a>   <em class="jxr_javadoccomment"> * &lt;p&gt;You can explicitly create objects of this exception type by</em>
<a name="10" href="#10">10</a>  <em class="jxr_javadoccomment"> * calling the method generateParseException in the generated</em>
<a name="11" href="#11">11</a>  <em class="jxr_javadoccomment"> * parser.</em>
<a name="12" href="#12">12</a>  <em class="jxr_javadoccomment"> *</em>
<a name="13" href="#13">13</a>  <em class="jxr_javadoccomment"> * You can modify this class to customize your error reporting</em>
<a name="14" href="#14">14</a>  <em class="jxr_javadoccomment"> * mechanisms so long as you retain the public fields.</em>
<a name="15" href="#15">15</a>  <em class="jxr_javadoccomment"> */</em>
<a name="16" href="#16">16</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/velocity/runtime/parser/ParseException.html">ParseException</a> <strong class="jxr_keyword">extends</strong> Exception {
<a name="17" href="#17">17</a>  
<a name="18" href="#18">18</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = -309603325673449381L;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <em class="jxr_javadoccomment">/**</em>
<a name="21" href="#21">21</a>  <em class="jxr_javadoccomment">   * This constructor is used by the method "generateParseException"</em>
<a name="22" href="#22">22</a>  <em class="jxr_javadoccomment">   * in the generated parser.  Calling this constructor generates</em>
<a name="23" href="#23">23</a>  <em class="jxr_javadoccomment">   * a new object of this type with the fields "currentToken",</em>
<a name="24" href="#24">24</a>  <em class="jxr_javadoccomment">   * "expectedTokenSequences", and "tokenImage" set.  The boolean</em>
<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment">   * flag "specialConstructor" is also set to true to indicate that</em>
<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment">   * this constructor was used to create this object.</em>
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment">   * This constructor calls its super class with the empty string</em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment">   * to force the "toString" method of parent class "Throwable" to</em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment">   * print the error message in the form:</em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment">   *     ParseException: &lt;result of getMessage&gt;</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment">   */</em>
<a name="32" href="#32">32</a>    <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/velocity/runtime/parser/ParseException.html">ParseException</a>(<a href="../../../../../org/apache/velocity/runtime/parser/Token.html">Token</a> currentTokenVal,
<a name="33" href="#33">33</a>                          <strong class="jxr_keyword">int</strong>[][] expectedTokenSequencesVal,
<a name="34" href="#34">34</a>                          String[] tokenImageVal
<a name="35" href="#35">35</a>                         )
<a name="36" href="#36">36</a>    {
<a name="37" href="#37">37</a>      <strong class="jxr_keyword">super</strong>(<span class="jxr_string">""</span>);
<a name="38" href="#38">38</a>      specialConstructor = <strong class="jxr_keyword">true</strong>;
<a name="39" href="#39">39</a>      currentToken = currentTokenVal;
<a name="40" href="#40">40</a>      expectedTokenSequences = expectedTokenSequencesVal;
<a name="41" href="#41">41</a>      tokenImage = tokenImageVal;
<a name="42" href="#42">42</a>    }
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>    <em class="jxr_javadoccomment">/**</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">   * The following constructors are for use by you for whatever</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">   * purpose you can think of.  Constructing the exception in this</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">   * manner makes the exception behave in the normal way - i.e., as</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">   * documented in the class "Throwable".  The fields "errorToken",</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">   * "expectedTokenSequences", and "tokenImage" do not contain</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">   * relevant information.  The JavaCC generated code does not use</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">   * these constructors.</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">   */</em>
<a name="53" href="#53">53</a>  
<a name="54" href="#54">54</a>    <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/velocity/runtime/parser/ParseException.html">ParseException</a>() {
<a name="55" href="#55">55</a>      <strong class="jxr_keyword">super</strong>();
<a name="56" href="#56">56</a>      specialConstructor = false;
<a name="57" href="#57">57</a>    }
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>    <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/velocity/runtime/parser/ParseException.html">ParseException</a>(String message) {
<a name="60" href="#60">60</a>      <strong class="jxr_keyword">super</strong>(message);
<a name="61" href="#61">61</a>      specialConstructor = false;
<a name="62" href="#62">62</a>    }
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>    <em class="jxr_javadoccomment">/**</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">   * This variable determines which constructor was used to create</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">   * this object and thereby affects the semantics of the</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">   * "getMessage" method (see below).</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">   */</em>
<a name="69" href="#69">69</a>    <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> specialConstructor;
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>    <em class="jxr_javadoccomment">/**</em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">   * This is the last token that has been consumed successfully.  If</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">   * this object has been created due to a parse error, the token</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">   * followng this token will (therefore) be the first error token.</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">   */</em>
<a name="76" href="#76">76</a>    <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/velocity/runtime/parser/Token.html">Token</a> currentToken;
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>    <em class="jxr_javadoccomment">/**</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">   * Each entry in this array is an array of integers.  Each array</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">   * of integers represents a sequence of tokens (by their ordinal</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">   * values) that is expected at this point of the parse.</em>
<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">   */</em>
<a name="83" href="#83">83</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong>[][] expectedTokenSequences;
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>    <em class="jxr_javadoccomment">/**</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">   * This is a reference to the "tokenImage" array of the generated</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">   * parser within which the parse error occurred.  This array is</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">   * defined in the generated ...Constants interface.</em>
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">   */</em>
<a name="90" href="#90">90</a>    <strong class="jxr_keyword">public</strong> String[] tokenImage;
<a name="91" href="#91">91</a>  
<a name="92" href="#92">92</a>    <em class="jxr_javadoccomment">/**</em>
<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">   * This method has the standard behavior when this object has been</em>
<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">   * created using the standard constructors.  Otherwise, it uses</em>
<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">   * "currentToken" and "expectedTokenSequences" to generate a parse</em>
<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">   * error message and returns it.  If this object has been created</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">   * due to a parse error, and you do not catch it (it gets thrown</em>
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">   * from the parser), then this method is called during the printing</em>
<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">   * of the final stack trace, and hence the correct error message</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">   * gets displayed.</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">   */</em>
<a name="102" href="#102">102</a>   <strong class="jxr_keyword">public</strong> String getMessage() {
<a name="103" href="#103">103</a>     <strong class="jxr_keyword">if</strong> (!specialConstructor) {
<a name="104" href="#104">104</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.getMessage();
<a name="105" href="#105">105</a>     }
<a name="106" href="#106">106</a>     String expected = <span class="jxr_string">""</span>;
<a name="107" href="#107">107</a>     <strong class="jxr_keyword">int</strong> maxSize = 0;
<a name="108" href="#108">108</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; expectedTokenSequences.length; i++) {
<a name="109" href="#109">109</a>       <strong class="jxr_keyword">if</strong> (maxSize &lt; expectedTokenSequences[i].length) {
<a name="110" href="#110">110</a>         maxSize = expectedTokenSequences[i].length;
<a name="111" href="#111">111</a>       }
<a name="112" href="#112">112</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> j = 0; j &lt; expectedTokenSequences[i].length; j++) {
<a name="113" href="#113">113</a>         expected += tokenImage[expectedTokenSequences[i][j]] + <span class="jxr_string">" "</span>;
<a name="114" href="#114">114</a>       }
<a name="115" href="#115">115</a>       <strong class="jxr_keyword">if</strong> (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {
<a name="116" href="#116">116</a>         expected += <span class="jxr_string">"..."</span>;
<a name="117" href="#117">117</a>       }
<a name="118" href="#118">118</a>       expected += eol + <span class="jxr_string">"    "</span>;
<a name="119" href="#119">119</a>     }
<a name="120" href="#120">120</a>     String retval = <span class="jxr_string">"Encountered \&quot;"</span>;
<a name="121" href="#121">121</a>     <a href="../../../../../org/apache/velocity/runtime/parser/Token.html">Token</a> tok = currentToken.next;
<a name="122" href="#122">122</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; maxSize; i++) {
<a name="123" href="#123">123</a>       <strong class="jxr_keyword">if</strong> (i != 0) retval += <span class="jxr_string">" "</span>;
<a name="124" href="#124">124</a>       <strong class="jxr_keyword">if</strong> (tok.kind == 0) {
<a name="125" href="#125">125</a>         retval += tokenImage[0];
<a name="126" href="#126">126</a>         <strong class="jxr_keyword">break</strong>;
<a name="127" href="#127">127</a>       }
<a name="128" href="#128">128</a>       retval += add_escapes(tok.image);
<a name="129" href="#129">129</a>       tok = tok.next; 
<a name="130" href="#130">130</a>     }
<a name="131" href="#131">131</a>     retval += <span class="jxr_string">"\&quot; at line "</span> + currentToken.next.beginLine + <span class="jxr_string">", column "</span> + currentToken.next.beginColumn;
<a name="132" href="#132">132</a>     retval += <span class="jxr_string">"."</span> + eol;
<a name="133" href="#133">133</a>     <strong class="jxr_keyword">if</strong> (expectedTokenSequences.length == 1) {
<a name="134" href="#134">134</a>       retval += <span class="jxr_string">"Was expecting:"</span> + eol + <span class="jxr_string">"    "</span>;
<a name="135" href="#135">135</a>     } <strong class="jxr_keyword">else</strong> {
<a name="136" href="#136">136</a>       retval += <span class="jxr_string">"Was expecting one of:"</span> + eol + <span class="jxr_string">"    "</span>;
<a name="137" href="#137">137</a>     }
<a name="138" href="#138">138</a>     retval += expected;
<a name="139" href="#139">139</a>     <strong class="jxr_keyword">return</strong> retval;
<a name="140" href="#140">140</a>   }
<a name="141" href="#141">141</a> 
<a name="142" href="#142">142</a>   <em class="jxr_javadoccomment">/**</em>
<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">   * The end of line string for this machine.</em>
<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">   */</em>
<a name="145" href="#145">145</a>   <strong class="jxr_keyword">protected</strong> String eol = System.getProperty(<span class="jxr_string">"line.separator"</span>, <span class="jxr_string">"\n"</span>);
<a name="146" href="#146">146</a>  
<a name="147" href="#147">147</a>   <em class="jxr_javadoccomment">/**</em>
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">   * Used to convert raw characters to their escaped version</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">   * when these raw version cannot be used as part of an ASCII</em>
<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">   * string literal.</em>
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">   */</em>
<a name="152" href="#152">152</a>   <strong class="jxr_keyword">protected</strong> String add_escapes(String str) {
<a name="153" href="#153">153</a>       StringBuffer retval = <strong class="jxr_keyword">new</strong> StringBuffer();
<a name="154" href="#154">154</a>       <strong class="jxr_keyword">char</strong> ch;
<a name="155" href="#155">155</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; str.length(); i++) {
<a name="156" href="#156">156</a>         <strong class="jxr_keyword">switch</strong> (str.charAt(i))
<a name="157" href="#157">157</a>         {
<a name="158" href="#158">158</a>            <strong class="jxr_keyword">case</strong> 0 :
<a name="159" href="#159">159</a>               <strong class="jxr_keyword">continue</strong>;
<a name="160" href="#160">160</a>            <strong class="jxr_keyword">case</strong> '\b':
<a name="161" href="#161">161</a>               retval.append(<span class="jxr_string">"&#92;&#92;b"</span>);
<a name="162" href="#162">162</a>               <strong class="jxr_keyword">continue</strong>;
<a name="163" href="#163">163</a>            <strong class="jxr_keyword">case</strong> '\t':
<a name="164" href="#164">164</a>               retval.append(<span class="jxr_string">"&#92;&#92;t"</span>);
<a name="165" href="#165">165</a>               <strong class="jxr_keyword">continue</strong>;
<a name="166" href="#166">166</a>            <strong class="jxr_keyword">case</strong> '\n':
<a name="167" href="#167">167</a>               retval.append(<span class="jxr_string">"&#92;&#92;n"</span>);
<a name="168" href="#168">168</a>               <strong class="jxr_keyword">continue</strong>;
<a name="169" href="#169">169</a>            <strong class="jxr_keyword">case</strong> '\f':
<a name="170" href="#170">170</a>               retval.append(<span class="jxr_string">"&#92;&#92;f"</span>);
<a name="171" href="#171">171</a>               <strong class="jxr_keyword">continue</strong>;
<a name="172" href="#172">172</a>            <strong class="jxr_keyword">case</strong> '\r':
<a name="173" href="#173">173</a>               retval.append(<span class="jxr_string">"&#92;&#92;r"</span>);
<a name="174" href="#174">174</a>               <strong class="jxr_keyword">continue</strong>;
<a name="175" href="#175">175</a>            <strong class="jxr_keyword">case</strong> '\&quot;':
<a name="176" href="#176">176</a>               retval.append(<span class="jxr_string">"&#92;&#92;\&quot;"</span>);
<a name="177" href="#177">177</a>               <strong class="jxr_keyword">continue</strong>;
<a name="178" href="#178">178</a>            <strong class="jxr_keyword">case</strong> '\'':
<a name="179" href="#179">179</a>               retval.append(<span class="jxr_string">"&#92;&#92;\'"</span>);
<a name="180" href="#180">180</a>               <strong class="jxr_keyword">continue</strong>;
<a name="181" href="#181">181</a>            <strong class="jxr_keyword">case</strong> '&#92;&#92;':
<a name="182" href="#182">182</a>               retval.append(<span class="jxr_string">"&#92;&#92;&#92;&#92;"</span>);
<a name="183" href="#183">183</a>               <strong class="jxr_keyword">continue</strong>;
<a name="184" href="#184">184</a>            <strong class="jxr_keyword">default</strong>:
<a name="185" href="#185">185</a>               <strong class="jxr_keyword">if</strong> ((ch = str.charAt(i)) &lt; 0x20 || ch &gt; 0x7e) {
<a name="186" href="#186">186</a>                  String s = <span class="jxr_string">"0000"</span> + Integer.toString(ch, 16);
<a name="187" href="#187">187</a>                  retval.append(<span class="jxr_string">"&#92;&#92;u"</span> + s.substring(s.length() - 4, s.length()));
<a name="188" href="#188">188</a>               } <strong class="jxr_keyword">else</strong> {
<a name="189" href="#189">189</a>                  retval.append(ch);
<a name="190" href="#190">190</a>               }
<a name="191" href="#191">191</a>               <strong class="jxr_keyword">continue</strong>;
<a name="192" href="#192">192</a>         }
<a name="193" href="#193">193</a>       }
<a name="194" href="#194">194</a>       <strong class="jxr_keyword">return</strong> retval.toString();
<a name="195" href="#195">195</a>    }
<a name="196" href="#196">196</a> 
<a name="197" href="#197">197</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

