SpreadSheet.java revision 0
0N/A * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. 0N/A * Redistribution and use in source and binary forms, with or without 0N/A * modification, are permitted provided that the following conditions 0N/A * - Redistributions of source code must retain the above copyright 0N/A * notice, this list of conditions and the following disclaimer. 0N/A * - Redistributions in binary form must reproduce the above copyright 0N/A * notice, this list of conditions and the following disclaimer in the 0N/A * documentation and/or other materials provided with the distribution. 0N/A * - Neither the name of Sun Microsystems nor the names of its 0N/A * contributors may be used to endorse or promote products derived 0N/A * from this software without specific prior written permission. 0N/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 0N/A * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 0N/A * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 0N/A * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 0N/A * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 0N/A * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 0N/A * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 0N/A * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 0N/A * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 0N/A * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 0N/A * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 0N/A char l[] =
new char[
1];
0N/A l[
0] = (
char)((
int)
'a' + j);
0N/A //System.out.println("SpreadSheet.recalculate"); 0N/A //System.out.println("evaluateFormula:"); 0N/A //System.out.println("Null node"); 0N/A //System.out.println("=>" + n.value); 0N/A //System.out.println("NULL at 192"); 0N/A //System.out.println("NULL at 193"); 0N/A //System.out.println("=>" + cells[n.row][n.column].value); 0N/A //System.out.println("=>" + val); 0N/A char l[] =
new char[
1];
0N/A l[
0] = (
char)((
int)
'A' + i);
0N/A //1.1 event handling 0N/A return "Title: SpreadSheet \nAuthor: Sami Shaio \nA simple spread sheet.";
0N/A {
"title",
"string",
"The title of the spread sheet. Default is 'Spreadsheet'"},
0N/A {
"rows",
"int",
"The number of rows. Default is 9."},
0N/A {
"columns",
"int",
"The number of columns. Default is 5."}
0N/A super(
"cell updater");
0N/A public static final int URL =
2;
0N/A * Parse a spreadsheet formula. The syntax is defined as: 0N/A * formula -> value op value 0N/A * value -> '(' formula ')' 0N/A * op -> '+' | '*' | '/' | '-' 0N/A * cell -> <letter><number> 0N/A //System.out.println("subformula = " + subformula); 0N/A //System.out.println("Parse succeeded"); 0N/A //System.out.println("Parse failed"); 0N/A // parse an operator and then another value 0N/A //System.out.println("Parse succeeded"); 0N/A //System.out.println("Returning subformula=" + subformula); 0N/A //System.out.println("subformula(2) = " + subformula); 0N/A //System.out.println("Parse succeeded"); 0N/A //System.out.println("Parse failed"); 0N/A //System.out.println("Parse failed (bad operator): " + subformula); 0N/A //System.out.println("parseValue: " + formula); 0N/A //System.out.println("parseValue(" + formula + ")"); 0N/A //System.out.println("rest=(" + subformula + ")"); 0N/A //System.out.println("Failed"); 0N/A //System.out.println("Failed (missing parentheses)"); 0N/A }
else if (c >=
'0' && c <=
'9') {
0N/A //System.out.println("formula=" + formula); 0N/A if ((c <
'0' || c >
'9') && c !=
'.') {
0N/A //System.out.println("Failed (number format error)"); 0N/A //System.out.println("value= " + value + " i=" + i + 0N/A // " rest = " + restFormula); 0N/A }
else if (c >=
'A' && c <=
'Z') {
0N/A if (c <
'0' || c >
'9') {
0N/A //System.out.println("row = " + row + " column = " + column); 0N/A public static final int OP =
0;
0N/A for (
int i =
0; i <
ind; i++) {
0N/A char l[] =
new char[
1];
0N/A case '\b':
// delete 0N/A case '\n':
// return 0N/A if (c <
'0' || c >
'9')