📄 sp_test.java
字号:
import java.util.*;
/**
* 演示类
*
* @author 林玉东.烟台
* @version 1.0 11/01 2003
*/
public class SP_test implements SP_SimpleParseUI
{
//
public boolean isVariable(String ident)
{
if(ident.equals("变量"))
return true;
else
return false;
}
//
public String getVariableValue(String vname)
{
if(vname.equals("变量"))
return "10";
else
return null;
}
public int getVariableType(String vname)
{
return SP_Const.WT_StringConst;
}
//
public String getVariableValue(String vname,Object args)
{
return null;
}
//
public boolean isUserFunction(String fname)
{
return fname.equals("max");
}
public void proUserFunction(SP_Parser parser,String fname,SP_RunUnit src)
throws Exception
{
SP_Scanner scanner=parser.getScanner();
scanner.readOneWord();
if(scanner.curWordType!=SP_Const.WT_LPAREN)
throw new Exception("缺少( !");
//
if(fname.equals("max")){
parser.proMathExpression1(src);
scanner.readOneWord();
if(scanner.curWordType!=SP_Const.WT_COMMA)
throw new Exception("缺少, !");
SP_RunUnit targ=new SP_RunUnit();
parser.proMathExpression1(targ);
src.value1=(float)Math.max(src.value1,targ.value1);
}
}
public static void main(String[] args)
{
//
if(args.length!=1){
System.out.println("Usage: java Sp_test exp!");
return;
}
//
SP_Parser parser=new SP_Parser(new SP_test());
System.out.println("exp=="+args[0]);
System.out.println("result="+parser.calExpress(args[0]));
//有些符号控制台输入不方便,输入的例子可参照下面
/*
System.out.println("------------------------------");
System.out.println("result="+parser.calExpress("12*3/4>5 && 1<0"));
System.out.println("result="+parser.calExpress("(int)变量+max(12+8/2,pow(变量,2))"));
System.out.println("result="+parser.calExpress("getSomeDate(getDateSeconds(2003,12,1,0,0,0),\"yyyy年mm月--dd日\")"));
System.out.println("result="+parser.calExpress("getSomeTime(getDateSeconds(2003,12,1,15,3,5),\"hh--mm--ss\")"));
System.out.println("result="+parser.calExpress("[']+getNowDate('year')+'年/'+getNowDate('mon')+'月/'+getNowDate('day')+'日 !'+[']"));
System.out.println("result="+parser.calExpress("10+pow(2+pow(4*2/4,2)/2,2+pow(2,2)-3)-pow(3,2)"));
//
String exp="((int)变量*107042400+8+3600*2+60*3)";
System.out.println("result="+parser.calExpress("getYear"+exp));
System.out.println("result="+parser.calExpress("getMonth"+exp));
System.out.println("result="+parser.calExpress("getDay"+exp));
System.out.println("result="+parser.calExpress("getHour"+exp));
System.out.println("result="+parser.calExpress("getMinute"+exp));
//
System.out.println("result="+parser.calExpress("getDate(\"yyyy mm-dd\",-1)"));
System.out.println("result="+parser.calExpress("getTime(\"hh点mm分ss秒\")"));
System.out.println("result="+parser.calExpress("(int)getDate(\"dd\",-1)+100"));
String sss="12345--45";
System.out.println("result="+parser.calExpress("substring(\"12345--45\",0,6)"));
//
String date=parser.calExpress( "getSDate(\"2004 01-24\",\"yyyy mm-dd\",\"mon\",-1)" );
System.out.println("=="+date);
date=parser.calExpress( "getSDate(\"2004 11-01\",\"yyyy mm-dd\",\"day\",-1)" );
System.out.println("=="+date);
*/
}
}
//cd _output && java hexinfo.simpleparse.SP_test
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -