📄 exc.java
字号:
/* Generated By:JavaCC: Do not edit this line. Exc.java */
package javacctp;
import tpdos.*;
import javax.swing.JOptionPane;
import java.io.PrintStream ;
import java.io.ByteArrayInputStream;
public class Exc implements ExcConstants {
public Exc(String Text){
this(new ByteArrayInputStream(Text.getBytes(), 0, Text.length()));
}
public Object evale()
throws ParseException, TokenMgrError, NumberFormatException
{
return formul();
}
double previousValue = 0.0 ;
double [][]arguments=new double [20][20] ;
int [] tab=new int[20];
/************************************************/
double sume(int i)
{
double r = 0 ;
for (int j = 0 ; j <= tab[i] ; j ++)
r += arguments[i][j] ;
return r ;
}
/****************************************************/
int entier(int s)
{ int k=0;
if(s>=65||s<=90 ){ k=s-65 ;return k; }
else if(s>=97||s<=122){k=s-97;return k;}
else return k;
}
/************************************************/
void recalcul(String chaine){
for(int i=0;i<=Excel.table.getRowCount();i++){
for(int j=0;j<=Excel.table.getColumnCount();j++){
Excel.tablesave[i][j].equals(chaine); }}
}
/************************************************/
double moyenne(int imb)
{
double r = 0 ;
for (int i = 0 ; i <= tab[imb] ; i ++)
r += arguments[imb][i] ;
return (r / (tab[imb] + 1)) ;
}
/***************************************************/
double facto(double i)
{
long r = 1 ;
for (int j = 1 ; j <= i ; j ++)
r *= j ;
return r ;
}
/****************************************************/
double max(int i)
{
double r = -10000 ;
for (int j = 0 ; j <= tab[i] ; j ++)
if (r < arguments[i][j])
r = arguments[i][j] ;
return r ;
}
/*********************************************************/
double min(int i)
{
double r = 10000;
for (int j = 0 ; j <= tab[i] ; j ++)
if (r > arguments[i][j])
r = arguments[i][j] ;
return r ;
}
/****************************************************/
double prode(int i)
{
double r = 1 ;
for (int j = 0 ; j <= tab[i] ; j ++)
r *= arguments[i][j] ;
return r ;
}
/***************************************************/
double var(int i)
{
double r = 0 ;
double m ;
m = moyenne(i) ;
for (int j = 0 ; j <= tab[i] ; j ++)
r += (arguments[i][j] - m) * (arguments[i][j] - m) ;
return (r / (tab[i] + 1)) ;
}
/****************************************************/
double ecarttype(int i)
{
return (Math.sqrt(var(i)));
}
/************************************************************************************/
final public Object formul() throws ParseException, NumberFormatException {
jj_consume_token(egal);
previousValue = expression();
jj_consume_token(EOL);
{if (true) return (Object)(previousValue) ;}
throw new Error("Missing return statement in function");
}
/*********************************/
final public double expression() throws ParseException {
double k,value;
value = t();
label_1:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case or:
;
break;
default:
jj_la1[0] = jj_gen;
break label_1;
}
jj_consume_token(or);
k = t();
if ((k != 0) || (value != 0))
value= 1 ;
else
value= 0 ;
}
{if (true) return value;}
throw new Error("Missing return statement in function");
}
/*******************************/
final public double t() throws ParseException {
double k,value;
value = t1();
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case and:
;
break;
default:
jj_la1[1] = jj_gen;
break label_2;
}
jj_consume_token(and);
k = t1();
if ((k == 0) || (value == 0))
value = 0 ;
else
value = 1 ;
}
{if (true) return value;}
throw new Error("Missing return statement in function");
}
/******************************/
final public double t1() throws ParseException {
double k,value;
value = t2();
label_3:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case Egal:
case Diff:
case Inf:
case Sup:
case SupE:
case InfE:
;
break;
default:
jj_la1[2] = jj_gen;
break label_3;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case Egal:
jj_consume_token(Egal);
k = t2();
if (value == k)
value = 1 ;
else
value = 0 ;
break;
case Diff:
jj_consume_token(Diff);
k = t2();
if (value != k)
value = 1 ;
else
value = 0 ;
break;
case SupE:
jj_consume_token(SupE);
k = t2();
if (value >= k)
value = 1 ;
else
value = 0 ;
break;
case Sup:
jj_consume_token(Sup);
k = t2();
if (value > k)
value = 1 ;
else
value = 0 ;
break;
case InfE:
jj_consume_token(InfE);
k = t2();
if (value <= k)
value = 1 ;
else
value = 0 ;
break;
case Inf:
jj_consume_token(Inf);
k = t2();
if (value < k)
value = 1 ;
else
value = 0 ;
break;
default:
jj_la1[3] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
{if (true) return value;}
throw new Error("Missing return statement in function");
}
/********************************/
final public double t2() throws ParseException, NumberFormatException {
double k ;
double value ;
value = t3();
label_4:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case plus:
case moins:
;
break;
default:
jj_la1[4] = jj_gen;
break label_4;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case plus:
jj_consume_token(plus);
k = t3();
value+=k;
break;
case moins:
jj_consume_token(moins);
k = t3();
value-=k;
break;
default:
jj_la1[5] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
{if (true) return value;}
throw new Error("Missing return statement in function");
}
/*************************************************/
final public double t3() throws ParseException, NumberFormatException {
double k;
double value;
value = fact();
label_5:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case mult:
case div:
;
break;
default:
jj_la1[6] = jj_gen;
break label_5;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case mult:
jj_consume_token(mult);
k = fact();
value*=k;
break;
case div:
jj_consume_token(div);
k = fact();
value/=k;
break;
default:
jj_la1[7] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
{if (true) return value;}
throw new Error("Missing return statement in function");
}
/**************************************************/
final public double fact() throws ParseException, NumberFormatException {
double value ;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case po:
case p:
case Sinu:
case Cosi:
case Tang:
case Abs:
case Acos:
case Asin:
case Atan:
case Coshy:
case Sinhy:
case Tanhy:
case Arrondi:
case Exp:
case Ln:
case Log:
case racine:
case puissance:
case fact:
case minimum:
case maximum:
case moy:
case sum:
case prod:
case Vari:
case Ecartype:
case sous:
case valeur:
case id:
value = fact1();
{if (true) return value;}
break;
case moins:
jj_consume_token(moins);
value = fact1();
{if (true) return -value;}
break;
case plus:
jj_consume_token(plus);
value = fact1();
{if (true) return value;}
break;
default:
jj_la1[8] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
/**************************************************/
final public double fact1() throws ParseException, NumberFormatException {
double value;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case po:
jj_consume_token(po);
value = expression();
jj_consume_token(pf);
{if (true) return value;}
break;
case p:
case Sinu:
case Cosi:
case Tang:
case Abs:
case Acos:
case Asin:
case Atan:
case Coshy:
case Sinhy:
case Tanhy:
case Arrondi:
case Exp:
case Ln:
case Log:
case racine:
case puissance:
case fact:
case minimum:
case maximum:
case moy:
case sum:
case prod:
case Vari:
case Ecartype:
case sous:
case valeur:
case id:
value = fonction();
{if (true) return value;}
break;
default:
jj_la1[9] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public double fonction() throws ParseException, NumberFormatException {
double value;
double k,j;
Token t ;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case Sinu:
jj_consume_token(Sinu);
jj_consume_token(po);
k = expression();
jj_consume_token(pf);
{if (true) return Math.sin(k);}
break;
case Cosi:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -