/usr/share/doc/libcobertura-java/api/src-html/net/sourceforge/cobertura/javancss/parser/java15/ParseException.html is in libcobertura-java-doc 1.9.4.1+dfsg-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
</head>
<body>
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
<span class="sourceLineNo">002</span> * Cobertura - http://cobertura.sourceforge.net/<a name="line.2"></a>
<span class="sourceLineNo">003</span> *<a name="line.3"></a>
<span class="sourceLineNo">004</span> * This file was taken from JavaNCSS<a name="line.4"></a>
<span class="sourceLineNo">005</span> * http://www.kclee.com/clemens/java/javancss/<a name="line.5"></a>
<span class="sourceLineNo">006</span> * Copyright (C) 2000 Chr. Clemens Lee <clemens a.t kclee d.o.t com><a name="line.6"></a>
<span class="sourceLineNo">007</span> *<a name="line.7"></a>
<span class="sourceLineNo">008</span> * Cobertura is free software; you can redistribute it and/or modify<a name="line.8"></a>
<span class="sourceLineNo">009</span> * it under the terms of the GNU General Public License as published<a name="line.9"></a>
<span class="sourceLineNo">010</span> * by the Free Software Foundation; either version 2 of the License,<a name="line.10"></a>
<span class="sourceLineNo">011</span> * or (at your option) any later version.<a name="line.11"></a>
<span class="sourceLineNo">012</span> *<a name="line.12"></a>
<span class="sourceLineNo">013</span> * Cobertura is distributed in the hope that it will be useful, but<a name="line.13"></a>
<span class="sourceLineNo">014</span> * WITHOUT ANY WARRANTY; without even the implied warranty of<a name="line.14"></a>
<span class="sourceLineNo">015</span> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<a name="line.15"></a>
<span class="sourceLineNo">016</span> * General Public License for more details.<a name="line.16"></a>
<span class="sourceLineNo">017</span> *<a name="line.17"></a>
<span class="sourceLineNo">018</span> * You should have received a copy of the GNU General Public License<a name="line.18"></a>
<span class="sourceLineNo">019</span> * along with Cobertura; if not, write to the Free Software<a name="line.19"></a>
<span class="sourceLineNo">020</span> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307<a name="line.20"></a>
<span class="sourceLineNo">021</span> * USA<a name="line.21"></a>
<span class="sourceLineNo">022</span> */<a name="line.22"></a>
<span class="sourceLineNo">023</span><a name="line.23"></a>
<span class="sourceLineNo">024</span><a name="line.24"></a>
<span class="sourceLineNo">025</span>/*<a name="line.25"></a>
<span class="sourceLineNo">026</span> *<a name="line.26"></a>
<span class="sourceLineNo">027</span> * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING <a name="line.27"></a>
<span class="sourceLineNo">028</span> *<a name="line.28"></a>
<span class="sourceLineNo">029</span> * WARNING TO COBERTURA DEVELOPERS<a name="line.29"></a>
<span class="sourceLineNo">030</span> *<a name="line.30"></a>
<span class="sourceLineNo">031</span> * DO NOT MODIFY THIS FILE!<a name="line.31"></a>
<span class="sourceLineNo">032</span> *<a name="line.32"></a>
<span class="sourceLineNo">033</span> * MODIFY THE FILES UNDER THE JAVANCSS DIRECTORY LOCATED AT THE ROOT OF THE COBERTURA PROJECT.<a name="line.33"></a>
<span class="sourceLineNo">034</span> *<a name="line.34"></a>
<span class="sourceLineNo">035</span> * FOLLOW THE PROCEDURE FOR MERGING THE LATEST JAVANCSS INTO COBERTURA LOCATED AT<a name="line.35"></a>
<span class="sourceLineNo">036</span> * javancss/coberturaREADME.txt<a name="line.36"></a>
<span class="sourceLineNo">037</span> *<a name="line.37"></a>
<span class="sourceLineNo">038</span> * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING <a name="line.38"></a>
<span class="sourceLineNo">039</span> */<a name="line.39"></a>
<span class="sourceLineNo">040</span>/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 4.1 */<a name="line.40"></a>
<span class="sourceLineNo">041</span>/* JavaCCOptions:KEEP_LINE_COL=null */<a name="line.41"></a>
<span class="sourceLineNo">042</span>package net.sourceforge.cobertura.javancss.parser.java15;<a name="line.42"></a>
<span class="sourceLineNo">043</span><a name="line.43"></a>
<span class="sourceLineNo">044</span>/**<a name="line.44"></a>
<span class="sourceLineNo">045</span> * This exception is thrown when parse errors are encountered.<a name="line.45"></a>
<span class="sourceLineNo">046</span> * You can explicitly create objects of this exception type by<a name="line.46"></a>
<span class="sourceLineNo">047</span> * calling the method generateParseException in the generated<a name="line.47"></a>
<span class="sourceLineNo">048</span> * parser.<a name="line.48"></a>
<span class="sourceLineNo">049</span> *<a name="line.49"></a>
<span class="sourceLineNo">050</span> * You can modify this class to customize your error reporting<a name="line.50"></a>
<span class="sourceLineNo">051</span> * mechanisms so long as you retain the public fields.<a name="line.51"></a>
<span class="sourceLineNo">052</span> */<a name="line.52"></a>
<span class="sourceLineNo">053</span>public class ParseException extends Exception {<a name="line.53"></a>
<span class="sourceLineNo">054</span><a name="line.54"></a>
<span class="sourceLineNo">055</span> /**<a name="line.55"></a>
<span class="sourceLineNo">056</span> * This constructor is used by the method "generateParseException"<a name="line.56"></a>
<span class="sourceLineNo">057</span> * in the generated parser. Calling this constructor generates<a name="line.57"></a>
<span class="sourceLineNo">058</span> * a new object of this type with the fields "currentToken",<a name="line.58"></a>
<span class="sourceLineNo">059</span> * "expectedTokenSequences", and "tokenImage" set. The boolean<a name="line.59"></a>
<span class="sourceLineNo">060</span> * flag "specialConstructor" is also set to true to indicate that<a name="line.60"></a>
<span class="sourceLineNo">061</span> * this constructor was used to create this object.<a name="line.61"></a>
<span class="sourceLineNo">062</span> * This constructor calls its super class with the empty string<a name="line.62"></a>
<span class="sourceLineNo">063</span> * to force the "toString" method of parent class "Throwable" to<a name="line.63"></a>
<span class="sourceLineNo">064</span> * print the error message in the form:<a name="line.64"></a>
<span class="sourceLineNo">065</span> * ParseException: <result of getMessage><a name="line.65"></a>
<span class="sourceLineNo">066</span> */<a name="line.66"></a>
<span class="sourceLineNo">067</span> public ParseException(Token currentTokenVal,<a name="line.67"></a>
<span class="sourceLineNo">068</span> int[][] expectedTokenSequencesVal,<a name="line.68"></a>
<span class="sourceLineNo">069</span> String[] tokenImageVal<a name="line.69"></a>
<span class="sourceLineNo">070</span> )<a name="line.70"></a>
<span class="sourceLineNo">071</span> {<a name="line.71"></a>
<span class="sourceLineNo">072</span> super("");<a name="line.72"></a>
<span class="sourceLineNo">073</span> specialConstructor = true;<a name="line.73"></a>
<span class="sourceLineNo">074</span> currentToken = currentTokenVal;<a name="line.74"></a>
<span class="sourceLineNo">075</span> expectedTokenSequences = expectedTokenSequencesVal;<a name="line.75"></a>
<span class="sourceLineNo">076</span> tokenImage = tokenImageVal;<a name="line.76"></a>
<span class="sourceLineNo">077</span> }<a name="line.77"></a>
<span class="sourceLineNo">078</span><a name="line.78"></a>
<span class="sourceLineNo">079</span> /**<a name="line.79"></a>
<span class="sourceLineNo">080</span> * The following constructors are for use by you for whatever<a name="line.80"></a>
<span class="sourceLineNo">081</span> * purpose you can think of. Constructing the exception in this<a name="line.81"></a>
<span class="sourceLineNo">082</span> * manner makes the exception behave in the normal way - i.e., as<a name="line.82"></a>
<span class="sourceLineNo">083</span> * documented in the class "Throwable". The fields "errorToken",<a name="line.83"></a>
<span class="sourceLineNo">084</span> * "expectedTokenSequences", and "tokenImage" do not contain<a name="line.84"></a>
<span class="sourceLineNo">085</span> * relevant information. The JavaCC generated code does not use<a name="line.85"></a>
<span class="sourceLineNo">086</span> * these constructors.<a name="line.86"></a>
<span class="sourceLineNo">087</span> */<a name="line.87"></a>
<span class="sourceLineNo">088</span><a name="line.88"></a>
<span class="sourceLineNo">089</span> public ParseException() {<a name="line.89"></a>
<span class="sourceLineNo">090</span> super();<a name="line.90"></a>
<span class="sourceLineNo">091</span> specialConstructor = false;<a name="line.91"></a>
<span class="sourceLineNo">092</span> }<a name="line.92"></a>
<span class="sourceLineNo">093</span><a name="line.93"></a>
<span class="sourceLineNo">094</span> /** Constructor with message. */<a name="line.94"></a>
<span class="sourceLineNo">095</span> public ParseException(String message) {<a name="line.95"></a>
<span class="sourceLineNo">096</span> super(message);<a name="line.96"></a>
<span class="sourceLineNo">097</span> specialConstructor = false;<a name="line.97"></a>
<span class="sourceLineNo">098</span> }<a name="line.98"></a>
<span class="sourceLineNo">099</span><a name="line.99"></a>
<span class="sourceLineNo">100</span> /**<a name="line.100"></a>
<span class="sourceLineNo">101</span> * This variable determines which constructor was used to create<a name="line.101"></a>
<span class="sourceLineNo">102</span> * this object and thereby affects the semantics of the<a name="line.102"></a>
<span class="sourceLineNo">103</span> * "getMessage" method (see below).<a name="line.103"></a>
<span class="sourceLineNo">104</span> */<a name="line.104"></a>
<span class="sourceLineNo">105</span> protected boolean specialConstructor;<a name="line.105"></a>
<span class="sourceLineNo">106</span><a name="line.106"></a>
<span class="sourceLineNo">107</span> /**<a name="line.107"></a>
<span class="sourceLineNo">108</span> * This is the last token that has been consumed successfully. If<a name="line.108"></a>
<span class="sourceLineNo">109</span> * this object has been created due to a parse error, the token<a name="line.109"></a>
<span class="sourceLineNo">110</span> * followng this token will (therefore) be the first error token.<a name="line.110"></a>
<span class="sourceLineNo">111</span> */<a name="line.111"></a>
<span class="sourceLineNo">112</span> public Token currentToken;<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
<span class="sourceLineNo">114</span> /**<a name="line.114"></a>
<span class="sourceLineNo">115</span> * Each entry in this array is an array of integers. Each array<a name="line.115"></a>
<span class="sourceLineNo">116</span> * of integers represents a sequence of tokens (by their ordinal<a name="line.116"></a>
<span class="sourceLineNo">117</span> * values) that is expected at this point of the parse.<a name="line.117"></a>
<span class="sourceLineNo">118</span> */<a name="line.118"></a>
<span class="sourceLineNo">119</span> public int[][] expectedTokenSequences;<a name="line.119"></a>
<span class="sourceLineNo">120</span><a name="line.120"></a>
<span class="sourceLineNo">121</span> /**<a name="line.121"></a>
<span class="sourceLineNo">122</span> * This is a reference to the "tokenImage" array of the generated<a name="line.122"></a>
<span class="sourceLineNo">123</span> * parser within which the parse error occurred. This array is<a name="line.123"></a>
<span class="sourceLineNo">124</span> * defined in the generated ...Constants interface.<a name="line.124"></a>
<span class="sourceLineNo">125</span> */<a name="line.125"></a>
<span class="sourceLineNo">126</span> public String[] tokenImage;<a name="line.126"></a>
<span class="sourceLineNo">127</span><a name="line.127"></a>
<span class="sourceLineNo">128</span> /**<a name="line.128"></a>
<span class="sourceLineNo">129</span> * This method has the standard behavior when this object has been<a name="line.129"></a>
<span class="sourceLineNo">130</span> * created using the standard constructors. Otherwise, it uses<a name="line.130"></a>
<span class="sourceLineNo">131</span> * "currentToken" and "expectedTokenSequences" to generate a parse<a name="line.131"></a>
<span class="sourceLineNo">132</span> * error message and returns it. If this object has been created<a name="line.132"></a>
<span class="sourceLineNo">133</span> * due to a parse error, and you do not catch it (it gets thrown<a name="line.133"></a>
<span class="sourceLineNo">134</span> * from the parser), then this method is called during the printing<a name="line.134"></a>
<span class="sourceLineNo">135</span> * of the final stack trace, and hence the correct error message<a name="line.135"></a>
<span class="sourceLineNo">136</span> * gets displayed.<a name="line.136"></a>
<span class="sourceLineNo">137</span> */<a name="line.137"></a>
<span class="sourceLineNo">138</span> public String getMessage() {<a name="line.138"></a>
<span class="sourceLineNo">139</span> if (!specialConstructor) {<a name="line.139"></a>
<span class="sourceLineNo">140</span> return super.getMessage();<a name="line.140"></a>
<span class="sourceLineNo">141</span> }<a name="line.141"></a>
<span class="sourceLineNo">142</span> StringBuffer expected = new StringBuffer();<a name="line.142"></a>
<span class="sourceLineNo">143</span> int maxSize = 0;<a name="line.143"></a>
<span class="sourceLineNo">144</span> for (int i = 0; i < expectedTokenSequences.length; i++) {<a name="line.144"></a>
<span class="sourceLineNo">145</span> if (maxSize < expectedTokenSequences[i].length) {<a name="line.145"></a>
<span class="sourceLineNo">146</span> maxSize = expectedTokenSequences[i].length;<a name="line.146"></a>
<span class="sourceLineNo">147</span> }<a name="line.147"></a>
<span class="sourceLineNo">148</span> for (int j = 0; j < expectedTokenSequences[i].length; j++) {<a name="line.148"></a>
<span class="sourceLineNo">149</span> expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' ');<a name="line.149"></a>
<span class="sourceLineNo">150</span> }<a name="line.150"></a>
<span class="sourceLineNo">151</span> if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {<a name="line.151"></a>
<span class="sourceLineNo">152</span> expected.append("...");<a name="line.152"></a>
<span class="sourceLineNo">153</span> }<a name="line.153"></a>
<span class="sourceLineNo">154</span> expected.append(eol).append(" ");<a name="line.154"></a>
<span class="sourceLineNo">155</span> }<a name="line.155"></a>
<span class="sourceLineNo">156</span> String retval = "Encountered \"";<a name="line.156"></a>
<span class="sourceLineNo">157</span> Token tok = currentToken.next;<a name="line.157"></a>
<span class="sourceLineNo">158</span> for (int i = 0; i < maxSize; i++) {<a name="line.158"></a>
<span class="sourceLineNo">159</span> if (i != 0) retval += " ";<a name="line.159"></a>
<span class="sourceLineNo">160</span> if (tok.kind == 0) {<a name="line.160"></a>
<span class="sourceLineNo">161</span> retval += tokenImage[0];<a name="line.161"></a>
<span class="sourceLineNo">162</span> break;<a name="line.162"></a>
<span class="sourceLineNo">163</span> }<a name="line.163"></a>
<span class="sourceLineNo">164</span> retval += " " + tokenImage[tok.kind];<a name="line.164"></a>
<span class="sourceLineNo">165</span> retval += " \"";<a name="line.165"></a>
<span class="sourceLineNo">166</span> retval += add_escapes(tok.image);<a name="line.166"></a>
<span class="sourceLineNo">167</span> retval += " \"";<a name="line.167"></a>
<span class="sourceLineNo">168</span> tok = tok.next;<a name="line.168"></a>
<span class="sourceLineNo">169</span> }<a name="line.169"></a>
<span class="sourceLineNo">170</span> retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;<a name="line.170"></a>
<span class="sourceLineNo">171</span> retval += "." + eol;<a name="line.171"></a>
<span class="sourceLineNo">172</span> if (expectedTokenSequences.length == 1) {<a name="line.172"></a>
<span class="sourceLineNo">173</span> retval += "Was expecting:" + eol + " ";<a name="line.173"></a>
<span class="sourceLineNo">174</span> } else {<a name="line.174"></a>
<span class="sourceLineNo">175</span> retval += "Was expecting one of:" + eol + " ";<a name="line.175"></a>
<span class="sourceLineNo">176</span> }<a name="line.176"></a>
<span class="sourceLineNo">177</span> retval += expected.toString();<a name="line.177"></a>
<span class="sourceLineNo">178</span> return retval;<a name="line.178"></a>
<span class="sourceLineNo">179</span> }<a name="line.179"></a>
<span class="sourceLineNo">180</span><a name="line.180"></a>
<span class="sourceLineNo">181</span> /**<a name="line.181"></a>
<span class="sourceLineNo">182</span> * The end of line string for this machine.<a name="line.182"></a>
<span class="sourceLineNo">183</span> */<a name="line.183"></a>
<span class="sourceLineNo">184</span> protected String eol = System.getProperty("line.separator", "\n");<a name="line.184"></a>
<span class="sourceLineNo">185</span><a name="line.185"></a>
<span class="sourceLineNo">186</span> /**<a name="line.186"></a>
<span class="sourceLineNo">187</span> * Used to convert raw characters to their escaped version<a name="line.187"></a>
<span class="sourceLineNo">188</span> * when these raw version cannot be used as part of an ASCII<a name="line.188"></a>
<span class="sourceLineNo">189</span> * string literal.<a name="line.189"></a>
<span class="sourceLineNo">190</span> */<a name="line.190"></a>
<span class="sourceLineNo">191</span> protected String add_escapes(String str) {<a name="line.191"></a>
<span class="sourceLineNo">192</span> StringBuffer retval = new StringBuffer();<a name="line.192"></a>
<span class="sourceLineNo">193</span> char ch;<a name="line.193"></a>
<span class="sourceLineNo">194</span> for (int i = 0; i < str.length(); i++) {<a name="line.194"></a>
<span class="sourceLineNo">195</span> switch (str.charAt(i))<a name="line.195"></a>
<span class="sourceLineNo">196</span> {<a name="line.196"></a>
<span class="sourceLineNo">197</span> case 0 :<a name="line.197"></a>
<span class="sourceLineNo">198</span> continue;<a name="line.198"></a>
<span class="sourceLineNo">199</span> case '\b':<a name="line.199"></a>
<span class="sourceLineNo">200</span> retval.append("\\b");<a name="line.200"></a>
<span class="sourceLineNo">201</span> continue;<a name="line.201"></a>
<span class="sourceLineNo">202</span> case '\t':<a name="line.202"></a>
<span class="sourceLineNo">203</span> retval.append("\\t");<a name="line.203"></a>
<span class="sourceLineNo">204</span> continue;<a name="line.204"></a>
<span class="sourceLineNo">205</span> case '\n':<a name="line.205"></a>
<span class="sourceLineNo">206</span> retval.append("\\n");<a name="line.206"></a>
<span class="sourceLineNo">207</span> continue;<a name="line.207"></a>
<span class="sourceLineNo">208</span> case '\f':<a name="line.208"></a>
<span class="sourceLineNo">209</span> retval.append("\\f");<a name="line.209"></a>
<span class="sourceLineNo">210</span> continue;<a name="line.210"></a>
<span class="sourceLineNo">211</span> case '\r':<a name="line.211"></a>
<span class="sourceLineNo">212</span> retval.append("\\r");<a name="line.212"></a>
<span class="sourceLineNo">213</span> continue;<a name="line.213"></a>
<span class="sourceLineNo">214</span> case '\"':<a name="line.214"></a>
<span class="sourceLineNo">215</span> retval.append("\\\"");<a name="line.215"></a>
<span class="sourceLineNo">216</span> continue;<a name="line.216"></a>
<span class="sourceLineNo">217</span> case '\'':<a name="line.217"></a>
<span class="sourceLineNo">218</span> retval.append("\\\'");<a name="line.218"></a>
<span class="sourceLineNo">219</span> continue;<a name="line.219"></a>
<span class="sourceLineNo">220</span> case '\\':<a name="line.220"></a>
<span class="sourceLineNo">221</span> retval.append("\\\\");<a name="line.221"></a>
<span class="sourceLineNo">222</span> continue;<a name="line.222"></a>
<span class="sourceLineNo">223</span> default:<a name="line.223"></a>
<span class="sourceLineNo">224</span> if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {<a name="line.224"></a>
<span class="sourceLineNo">225</span> String s = "0000" + Integer.toString(ch, 16);<a name="line.225"></a>
<span class="sourceLineNo">226</span> retval.append("\\u" + s.substring(s.length() - 4, s.length()));<a name="line.226"></a>
<span class="sourceLineNo">227</span> } else {<a name="line.227"></a>
<span class="sourceLineNo">228</span> retval.append(ch);<a name="line.228"></a>
<span class="sourceLineNo">229</span> }<a name="line.229"></a>
<span class="sourceLineNo">230</span> continue;<a name="line.230"></a>
<span class="sourceLineNo">231</span> }<a name="line.231"></a>
<span class="sourceLineNo">232</span> }<a name="line.232"></a>
<span class="sourceLineNo">233</span> return retval.toString();<a name="line.233"></a>
<span class="sourceLineNo">234</span> }<a name="line.234"></a>
<span class="sourceLineNo">235</span><a name="line.235"></a>
<span class="sourceLineNo">236</span>}<a name="line.236"></a>
<span class="sourceLineNo">237</span>/* JavaCC - OriginalChecksum=e07eeb809ef62869a5836bb515bc01e5 (do not edit this line) */<a name="line.237"></a>
</pre>
</div>
</body>
</html>
|