⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bfunc.java

📁 类似于Windows上的Excel
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
/*
 * MC2 -- j2me spreadsheet
 *
 * Copyright (c) 2004-2006 Michael Zemljanukha (mixaz@mail.ru)
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the Free
 * Software Foundation; either version 2 of the License, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 */

package com.wapindustrial.calc;

//#ifndef NOGUI
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.rms.RecordStoreException;
//#endif

/*
 * Bfunc.java
 *
 * Created on December 25, 2003, 11:18 AM
 */

public class Bfunc extends FunctionModule {

    // basic finction set, implemented in root code FunctionObject
    public static final Bfunc BFUNC = new Bfunc();

    
    private static final String _namesArray = 
    		"\02if" +
			"\05while" +
            "\04setq" +
            "\05defun" +
            "\04sadd" +
            "\04ssub" +
            "\04smul" +
            "\04sdiv" +
            "\03sgt" +
            "\03sge" +
            "\03slt" +
            "\03sle" +
            "\03seq" +
            "\03sne" +
            "\04load" +
            "\13module-load" +
            "\05isnil" +

			"\14sheet-create" +
            "\13cell-create" +
            "\03ref" +
            "\12cursor-set" +
            "\13cursor-move" +
            "\12cursor-get" +
            "\15sheet-addcell" +
            "\17cell-getformula" +
            "\17cell-setformula" +
            "\21cell-getwsformula" +
            "\21cell-setwsformula" +
            "\15sheet-getcell" +
            "\12sexp-parse" +
            "\13cell-active" +
            "\21sheet-recalculate" +
            "\15sexp-evaluate" +
            "\14cell-repaint" +
            "\04date" +
            "\11rowcolumn" +
            "\16sheet-activate" +
            "\14sheet-active" +
            "\12sheet-save" +
            "\12sheet-load" +
            "\15sheet-getname" +
            "\15sheet-setname" +
            "\12sheet-list" +
            "\16cell-setformat" +
            "\16cell-getformat" +
            "\14sheet-delete" +
            "\07message" +
            "\24sheet-getwidthheight" +
            "\24sheet-setwidthheight" +
            "\15sheet-repaint" +
            "\15selection-get" +
            "\15selection-set" +
            "\10gold-key" +
            "\12cell-clear" +
            "\21reference-process" +
            "\11selection" +
            "\14setsheetsize" +
            "\14sheet-insert" +
            "\17cell-getwsvalue" +
            "\14str-getwidth" +
            "\11cell-copy" +
            "\15cell-copyfrom" +
            "\14cell-gettype" +
            "\05error" +
            "\13system-info" +
            "\11debug-set" +
            "\16screen-setmode" +
            "\24screen-setformulabar" +
            "\22formulabar-repaint" +
            "\16screen-getmode" +
            "\24screen-getformulabar" +
            "\10parse-ws" +
            "\16cell-create-ws" +
            "\16screen-setfont" +
            "\24sheet-setdefaultsize" +
            "\13history-get" +
			
			"\14cell-address" +
            "\17sheet-ischanged" +
            "\20sheet-setchanged" +
            "\12colors-set" +
            "\05qlist" +
            "\11color-rgb" +
            "\17app-getproperty"
//#ifndef MINIMAL_SET
			+
            "\16qlist-to-sheet" +
            "\10defmacro" +
            "\14sexp-gettype" +
            "\17sexp-preprocess" +
            "\10gold-set" +
            "\13throw-error"
//#endif
//#ifdef JAVA_COMPILER
			+
            "\03$if" +
            "\10$include"
//#endif			
    ;
    
    private static final int NAME_IF = 0;
    private static final int NAME_WHILE = NAME_IF + 2 + 1;
    private static final int NAME_SETQ = NAME_WHILE + 5 + 1;
    private static final int NAME_DEFUN = NAME_SETQ + 4 + 1;
    private static final int NAME_SADD = NAME_DEFUN + 5 + 1;
    private static final int NAME_SSUB = NAME_SADD + 4 + 1;
    private static final int NAME_SMUL = NAME_SSUB + 4 + 1;
    private static final int NAME_SDIV = NAME_SMUL + 4 + 1;
    private static final int NAME_SGT = NAME_SDIV + 4 + 1;
    private static final int NAME_SGE = NAME_SGT + 3 + 1;
    private static final int NAME_SLT = NAME_SGE + 3 + 1;
    private static final int NAME_SLE = NAME_SLT + 3 + 1;
    private static final int NAME_SEQ = NAME_SLE + 3 + 1;
    private static final int NAME_SNE = NAME_SEQ + 3 + 1;
    private static final int NAME_LOAD = NAME_SNE + 3 + 1;
    private static final int NAME_MODULE_LOAD = NAME_LOAD + 4 + 1;
    private static final int NAME_ISNIL = NAME_MODULE_LOAD + 11 + 1;
    
    private static final int NAME_SHEET_CREATE = NAME_ISNIL + 5 + 1;
    private static final int NAME_CELL_CREATE = NAME_SHEET_CREATE + 12 + 1;
    private static final int NAME_REF = NAME_CELL_CREATE + 11 + 1;
    private static final int NAME_CURSOR_SET = NAME_REF + 3 + 1;
    private static final int NAME_CURSOR_MOVE = NAME_CURSOR_SET + 10 + 1;
    private static final int NAME_CURSOR_GET = NAME_CURSOR_MOVE + 11 + 1;
    private static final int NAME_SHEET_ADDCELL = NAME_CURSOR_GET + 10 + 1;
    private static final int NAME_CELL_GETFORMULA = NAME_SHEET_ADDCELL + 13 + 1;
    private static final int NAME_CELL_SETFORMULA = NAME_CELL_GETFORMULA + 15 + 1;
    private static final int NAME_CELL_GETWSFORMULA = NAME_CELL_SETFORMULA + 15 + 1;
    private static final int NAME_CELL_SETWSFORMULA = NAME_CELL_GETWSFORMULA + 17 + 1;
    private static final int NAME_SHEET_GETCELL = NAME_CELL_SETWSFORMULA + 17 + 1;
    private static final int NAME_SEXP_PARSE = NAME_SHEET_GETCELL + 13 + 1;
    private static final int NAME_CELL_ACTIVE = NAME_SEXP_PARSE + 10 + 1;
    private static final int NAME_SHEET_RECALCULATE = NAME_CELL_ACTIVE + 11 + 1;
    private static final int NAME_SEXP_EVALUATE = NAME_SHEET_RECALCULATE + 17 + 1;
    private static final int NAME_CELL_REPAINT = NAME_SEXP_EVALUATE + 13 + 1;
    private static final int NAME_DATE = NAME_CELL_REPAINT + 12 + 1;
    private static final int NAME_ROWCOLUMN = NAME_DATE + 4 + 1;
    private static final int NAME_SHEET_ACTIVATE = NAME_ROWCOLUMN + 9 + 1;
    private static final int NAME_SHEET_ACTIVE = NAME_SHEET_ACTIVATE + 14 + 1;
    private static final int NAME_SHEET_SAVE = NAME_SHEET_ACTIVE + 12 + 1;
    private static final int NAME_SHEET_LOAD = NAME_SHEET_SAVE + 10 + 1;
    private static final int NAME_SHEET_GETNAME = NAME_SHEET_LOAD + 10 + 1;
    private static final int NAME_SHEET_SETNAME = NAME_SHEET_GETNAME + 13 + 1;
    private static final int NAME_SHEET_LIST = NAME_SHEET_SETNAME + 13 + 1;
    private static final int NAME_CELL_SETFORMAT = NAME_SHEET_LIST + 10 + 1;
    private static final int NAME_CELL_GETFORMAT = NAME_CELL_SETFORMAT + 14 + 1;
    private static final int NAME_SHEET_DELETE = NAME_CELL_GETFORMAT + 14 + 1;
    private static final int NAME_MESSAGE = NAME_SHEET_DELETE + 12 + 1;
    private static final int NAME_SHEET_GETWIDTHHEIGHT = NAME_MESSAGE + 7 + 1;
    private static final int NAME_SHEET_SETWIDTHHEIGHT = NAME_SHEET_GETWIDTHHEIGHT + 20 + 1;
    private static final int NAME_SHEET_REPAINT = NAME_SHEET_SETWIDTHHEIGHT + 20 + 1;
    private static final int NAME_SELECTION_GET = NAME_SHEET_REPAINT + 13 + 1;
    private static final int NAME_SELECTION_SET = NAME_SELECTION_GET + 13 + 1;
    private static final int NAME_GOLD_KEY = NAME_SELECTION_SET + 13 + 1;
    private static final int NAME_CELL_CLEAR = NAME_GOLD_KEY + 8 + 1;
    private static final int NAME_REFERENCE_PROCESS = NAME_CELL_CLEAR + 10 + 1;
    private static final int NAME_SELECTION = NAME_REFERENCE_PROCESS + 17 + 1;
    private static final int NAME_SETSHEETSIZE = NAME_SELECTION + 9 + 1;
    private static final int NAME_SHEET_INSERT = NAME_SETSHEETSIZE + 12 + 1;
    private static final int NAME_CELL_GETWSVALUE = NAME_SHEET_INSERT + 12 + 1;
    private static final int NAME_STR_GETWIDTH = NAME_CELL_GETWSVALUE + 15 + 1;
    private static final int NAME_CELL_COPY = NAME_STR_GETWIDTH + 12 + 1;
    private static final int NAME_CELL_COPYFROM = NAME_CELL_COPY + 9 + 1;
    private static final int NAME_CELL_GETTYPE = NAME_CELL_COPYFROM + 13 + 1;
    private static final int NAME_ERROR = NAME_CELL_GETTYPE + 12 + 1;
    private static final int NAME_SYSTEM_INFO = NAME_ERROR + 5 + 1;
    private static final int NAME_DEBUG_SET = NAME_SYSTEM_INFO + 11 + 1;
    private static final int NAME_SCREEN_SETMODE = NAME_DEBUG_SET + 9 + 1;
    private static final int NAME_SCREEN_SETFORMULABAR = NAME_SCREEN_SETMODE + 14 + 1;
    private static final int NAME_FORMULABAR_REPAINT = NAME_SCREEN_SETFORMULABAR + 20 + 1;
    private static final int NAME_SCREEN_GETMODE = NAME_FORMULABAR_REPAINT + 18 + 1;
    private static final int NAME_SCREEN_GETFORMULABAR = NAME_SCREEN_GETMODE + 14 + 1;
    private static final int NAME_PARSE_WS = NAME_SCREEN_GETFORMULABAR + 20 + 1;
    private static final int NAME_CELL_CREATE_WS = NAME_PARSE_WS + 8 + 1;
    private static final int NAME_SCREEN_SETFONT = NAME_CELL_CREATE_WS + 14 + 1;
    private static final int NAME_SHEET_SETDEFAULTSIZE = NAME_SCREEN_SETFONT + 14 + 1;
    private static final int NAME_HISTORY_GET = NAME_SHEET_SETDEFAULTSIZE + 20 + 1;
    
    private static final int NAME_CELL_ADDRESS = NAME_HISTORY_GET + 11 + 1;
    private static final int NAME_SHEET_ISCHANGED = NAME_CELL_ADDRESS + 12 + 1;
    private static final int NAME_SHEET_SETCHANGED = NAME_SHEET_ISCHANGED + 15 + 1;
    private static final int NAME_COLORS_SET = NAME_SHEET_SETCHANGED + 16 + 1;
    private static final int NAME_QLIST = NAME_COLORS_SET + 10 + 1;
    private static final int NAME_COLOR_RGB = NAME_QLIST + 5 + 1;
    private static final int NAME_APP_GETPROPERTY = NAME_COLOR_RGB + 9 + 1;
    
    private static final int NAMESTART_MINIMAL_SET = NAME_APP_GETPROPERTY+16;
//#ifndef MINIMAL_SET
    private static final int NAME_QLIST_TO_SHEET = NAMESTART_MINIMAL_SET;
    private static final int NAME_DEFMACRO = NAME_QLIST_TO_SHEET+15;
    private static final int NAME_SEXP_GETTYPE = NAME_DEFMACRO+9;
    private static final int NAME_SEXP_PREPROCESS = NAME_SEXP_GETTYPE+13;
    private static final int NAME_GOLD_SET = NAME_SEXP_PREPROCESS+16;
    private static final int NAME_THROW_ERROR = NAME_GOLD_SET+9;
    private static final int NAMESTOP_MINIMAL_SET = NAME_THROW_ERROR+12;
//#else    
//#    private static final int NAMESTOP_MINIMAL_SET = NAMESTART_MINIMAL_SET;
//#endif
    
    private static final int NAMESTART_JAVA_COMPILER = NAMESTOP_MINIMAL_SET;
//#ifdef JAVA_COMPILER
    private static final int NAME__IF = NAMESTART_JAVA_COMPILER;
    private static final int NAME__INCLUDE = NAME__IF+4;
    private static final int NAMESTOP_JAVA_COMPILER = NAME__INCLUDE+9;
//#else    
//#    private static final int NAMESTOP_JAVA_COMPILER = NAMESTART_JAVA_COMPILER;
//#endif
    
    public static final int INDEX_IF = 0;
    public static final int INDEX_WHILE = INDEX_IF + 1;
    public static final int INDEX_SETQ = INDEX_WHILE + 1;
    public static final int INDEX_DEFUN = INDEX_SETQ + 1;
    public static final int INDEX_SADD = INDEX_DEFUN + 1;
    public static final int INDEX_SSUB = INDEX_SADD + 1;
    public static final int INDEX_SMUL = INDEX_SSUB + 1;
    public static final int INDEX_SDIV = INDEX_SMUL + 1;
    public static final int INDEX_SGT = INDEX_SDIV + 1;
    public static final int INDEX_SGE = INDEX_SGT + 1;
    public static final int INDEX_SLT = INDEX_SGE + 1;
    public static final int INDEX_SLE = INDEX_SLT + 1;
    public static final int INDEX_SEQ = INDEX_SLE + 1;
    public static final int INDEX_SNE = INDEX_SEQ + 1;
    public static final int INDEX_LOAD = INDEX_SNE + 1;
    public static final int INDEX_MODULE_LOAD = INDEX_LOAD + 1;
    public static final int INDEX_ISNIL = INDEX_MODULE_LOAD + 1;
    
    public static final int INDEX_SHEET_CREATE = INDEX_ISNIL + 1;
    public static final int INDEX_CELL_CREATE = INDEX_SHEET_CREATE + 1;
    public static final int INDEX_REF = INDEX_CELL_CREATE + 1;
    public static final int INDEX_CURSOR_SET = INDEX_REF + 1;
    public static final int INDEX_CURSOR_MOVE = INDEX_CURSOR_SET + 1;
    public static final int INDEX_CURSOR_GET = INDEX_CURSOR_MOVE + 1;
    public static final int INDEX_SHEET_ADDCELL = INDEX_CURSOR_GET + 1;
    public static final int INDEX_CELL_GETFORMULA = INDEX_SHEET_ADDCELL + 1;
    public static final int INDEX_CELL_SETFORMULA = INDEX_CELL_GETFORMULA + 1;
    public static final int INDEX_CELL_GETWSFORMULA = INDEX_CELL_SETFORMULA + 1;
    public static final int INDEX_CELL_SETWSFORMULA = INDEX_CELL_GETWSFORMULA + 1;
    public static final int INDEX_SHEET_GETCELL = INDEX_CELL_SETWSFORMULA + 1;
    public static final int INDEX_SEXP_PARSE = INDEX_SHEET_GETCELL + 1;
    public static final int INDEX_CELL_ACTIVE = INDEX_SEXP_PARSE + 1;
    public static final int INDEX_SHEET_RECALCULATE = INDEX_CELL_ACTIVE + 1;
    public static final int INDEX_SEXP_EVALUATE = INDEX_SHEET_RECALCULATE + 1;
    public static final int INDEX_CELL_REPAINT = INDEX_SEXP_EVALUATE + 1;
    public static final int INDEX_DATE = INDEX_CELL_REPAINT + 1;
    public static final int INDEX_ROWCOLUMN = INDEX_DATE + 1;
    public static final int INDEX_SHEET_ACTIVATE = INDEX_ROWCOLUMN + 1;
    public static final int INDEX_SHEET_ACTIVE = INDEX_SHEET_ACTIVATE + 1;
    public static final int INDEX_SHEET_SAVE = INDEX_SHEET_ACTIVE + 1;
    public static final int INDEX_SHEET_LOAD = INDEX_SHEET_SAVE + 1;
    public static final int INDEX_SHEET_GETNAME = INDEX_SHEET_LOAD + 1;
    public static final int INDEX_SHEET_SETNAME = INDEX_SHEET_GETNAME + 1;
    public static final int INDEX_SHEET_LIST = INDEX_SHEET_SETNAME + 1;
    public static final int INDEX_CELL_SETFORMAT = INDEX_SHEET_LIST + 1;
    public static final int INDEX_CELL_GETFORMAT = INDEX_CELL_SETFORMAT + 1;
    public static final int INDEX_SHEET_DELETE = INDEX_CELL_GETFORMAT + 1;
    public static final int INDEX_MESSAGE = INDEX_SHEET_DELETE + 1;
    public static final int INDEX_SHEET_GETWIDTHHEIGHT = INDEX_MESSAGE + 1;
    public static final int INDEX_SHEET_SETWIDTHHEIGHT = INDEX_SHEET_GETWIDTHHEIGHT + 1;
    public static final int INDEX_SHEET_REPAINT = INDEX_SHEET_SETWIDTHHEIGHT + 1;
    public static final int INDEX_SELECTION_GET = INDEX_SHEET_REPAINT + 1;
    public static final int INDEX_SELECTION_SET = INDEX_SELECTION_GET + 1;
    public static final int INDEX_GOLD_KEY = INDEX_SELECTION_SET + 1;
    public static final int INDEX_CELL_CLEAR = INDEX_GOLD_KEY + 1;
    public static final int INDEX_REFERENCE_PROCESS = INDEX_CELL_CLEAR + 1;
    public static final int INDEX_SELECTION = INDEX_REFERENCE_PROCESS + 1;
    public static final int INDEX_SETSHEETSIZE = INDEX_SELECTION + 1;
    public static final int INDEX_SHEET_INSERT = INDEX_SETSHEETSIZE + 1;
    public static final int INDEX_CELL_GETWSVALUE = INDEX_SHEET_INSERT + 1;
    public static final int INDEX_STR_GETWIDTH = INDEX_CELL_GETWSVALUE + 1;
    public static final int INDEX_CELL_COPY = INDEX_STR_GETWIDTH + 1;
    public static final int INDEX_CELL_COPYFROM = INDEX_CELL_COPY + 1;
    public static final int INDEX_CELL_GETTYPE = INDEX_CELL_COPYFROM + 1;
    public static final int INDEX_ERROR = INDEX_CELL_GETTYPE + 1;
    public static final int INDEX_SYSTEM_INFO = INDEX_ERROR + 1;
    public static final int INDEX_DEBUG_SET = INDEX_SYSTEM_INFO + 1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -