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

📄 exc.jj

📁 a small Excel made bye java and javacc
💻 JJ
📖 第 1 页 / 共 2 页
字号:
{
value=t2()
(
   <Egal> k=t2()   { if (value == k)
                   value = 1 ;
                   else 
                  value = 0 ;
                  }
  |<Diff> k=t2()  { if (value != k)
                  value = 1 ;
                  else 
                  value = 0 ;
                }
  |<SupE> k=t2()  { if (value >= k)
                  value = 1 ;
                  else 
                  value = 0 ;
                }
  |<Sup> k=t2()   { if (value > k)
                  value = 1 ;
                  else 
                  value = 0 ;
                }
  |<InfE> k=t2()  { if (value <= k)
                  value = 1 ;
                  else
                  value = 0 ;
                 }
  |<Inf> k=t2()   { if (value < k)
                  value = 1 ;
                  else 
                  value = 0 ;
                 }
)*
     {return value;}
}
/********************************/						   
double t2() throws NumberFormatException :
{double k ;
double value ;}
{
value=t3()
( <plus> k=t3() {value+=k;}
| <moins> k=t3()  {value-=k;}
)*
        		{return value;}
}
/*************************************************/
double t3() throws NumberFormatException :
{double k;
 double value;
}
{
  value=fact()
(
 <mult>  k=fact() {value*=k;}
 |<div>  k=fact() {value/=k;}
)*
{return value;}
}
/**************************************************/
double fact() throws NumberFormatException :
{
double value ;}
{
  value=fact1()         {return value;}
|<moins> value=fact1()  {return -value;}
|<plus> value=fact1()   {return value;}

}
/**************************************************/
double fact1() throws NumberFormatException :
{
double value;
}
{
  <po>  value=expression()  <pf>  {return value;}
|
   value=fonction()

  {return value;}
}

double fonction() throws NumberFormatException :
{double value;
double k,j;
Token t ;
}
{
 <Sinu>  <po> k=expression() <pf>  {return Math.sin(k);}
|<Cosi>  <po> k=expression() <pf>  {return Math.cos(k);}
|<Tang>  <po> k=expression() <pf>  {return Math.tan(k);}
|<Abs>  <po> k=expression() <pf>   {return Math.abs(k);}
|<Ln>  <po> k=expression() <pf>        {if (k>0) return Math.log(k);
                                      /*  else  throw ParseException("LN n'admet que des valeurs > 0 ...!"); */
										}
|<Log>  <po> k=expression() <pf>       {if (k>0) return Math.log(k)/10;
                                         /*else throw ParseException("LOG n'admet que des valeurs > 0 ...!");*/
										 }
|<racine>  <po> k=expression() <pf>    {if (k>=0) return Math.sqrt(k);
                                         /*else throw ParseException("RACINE n'admet que des valeurs >= 0 ...!");*/}
|<Acos>  <po> k=expression() <pf>      {if(k>1||k<-1)
                                        /*ParseException("ACOS n'admet que des valeurs entre -1 et 1 ...")*/;
										/*else*/  return Math.acos(k);}  
|<Asin>  <po> k=expression() <pf>     {if(k>1||k<-1)
                                        /*ParseException("ASIN n'admet que des valeurs entre -1 et 1 ...!");*/
										/*else*/  return Math.asin(k);} 
|<Atan>  <po> k=expression() <pf>      {return Math.atan(k);}
|<Coshy>  <po> k=expression() <pf>     {return Math.cosh(k);}
|<Sinhy>  <po> k=expression() <pf>     {return Math.sinh(k);}
|<Tanhy>   <po> k=expression() <pf>      {return Math.tanh(k);}
|<Arrondi>  <po> k=expression() <pf>     {return Math.round(k);}
|<Exp>  <po> k=expression() <pf>         {return Math.exp(k);}
|<puissance>  <po> k=expression() <virg> j=expression() <pf>   {return Math.pow(k,j);}
|<fact> <po> k=expression() <pf>         {if(k>=0)
                                           { return facto(k);}
                                          /*else ParseException("FACT n'admet pas des valeurs n間atives...!");*/}
|<p>                                      {return Math.PI;}
|<sum>  <po> list() <pf>       {
								  double r1=sume(ExcTokenManager.imb);
                                  ExcTokenManager.imb -- ;
                                  if (ExcTokenManager.imb > -1)
                                     ExcTokenManager.i = -1;
                                     return r1;  
                                }           
|<sous>  <po> list() <pf>      { double r=0;
                                    for (int l = 0 ; l <= tab[ExcTokenManager.imb] ; l ++)
									r-=arguments[ExcTokenManager.imb][ExcTokenManager.i] ;
                                     return  r;
                                     ExcTokenManager.imb -- ;
                                     if (ExcTokenManager.imb > -1)
                                     ExcTokenManager.i = tab[ExcTokenManager.imb];
                                }
|<prod>  <po> list() <pf>       {   return prode(ExcTokenManager.imb);
                                            ExcTokenManager.imb -- ;
                                            if (ExcTokenManager.imb > -1)
                                            ExcTokenManager.i = tab[ExcTokenManager.imb];
                                }
|<Vari>  <po> list() <pf>       { return var(ExcTokenManager.imb);
                                  ExcTokenManager.imb -- ;
                                  if (ExcTokenManager.imb > -1)
                                  ExcTokenManager.i = tab[ExcTokenManager.imb] ;
                                } 
|<Ecartype>  <po> list() <pf>   { 
                                  return ecarttype(ExcTokenManager.imb);/*absolue */
                                  ExcTokenManager.imb -- ;
                                  if (ExcTokenManager.imb > -1)
                                  ExcTokenManager.i = tab[ExcTokenManager.imb] ;
                                 }
|<moy>  <po> list()  <pf>      {    return moyenne(ExcTokenManager.imb);
                                    ExcTokenManager.imb -- ;
                                    if (ExcTokenManager.imb > -1)
                                    ExcTokenManager.i = tab[ExcTokenManager.imb] ;
                                 }     
|<minimum> <po> list()  <pf>  { return min(ExcTokenManager.imb);
                                    ExcTokenManager.imb -- ;
                                if (ExcTokenManager.imb > -1)
                                ExcTokenManager.i = tab[ExcTokenManager.imb];
                                }      
|<maximum>  <po> list()  <pf>  { return max(ExcTokenManager.imb) ;
                                   ExcTokenManager.imb -- ;
                                  if (ExcTokenManager.imb > -1)
                                  ExcTokenManager.i = tab[ExcTokenManager.imb];
                                }
|t=<valeur>  
           { return Double.parseDouble( t.image ) ; }
		        
/*|t=<entier>            
          { return Integer.parseInt( t.image ) ; }*/
|t=<id> {	String chaine= t.image ;
	      int y=chaine.charAt(0);
	   String souchain="";
	    for(int i=1;i<chaine.length();i++){
        souchain=souchain+chaine.charAt(i);
	    }
            int  x=Integer.parseInt(souchain);
           Object b=Excel.table.getValueAt(x-1,Excel.table.convertColumnIndexToModel(entier(y)));              		   
                           if(b!=null){
                String str = b.toString();

 double r2 = Double.valueOf(str).doubleValue();
            		return r2;}
            		else return 0;
            }   
                    
}      

/*****************************************************/ 
 void list() throws NumberFormatException : 
{}
{
arg() ( <virg> arg() )*
}
/******************************/
void arg() throws NumberFormatException :
{
double value;
}
{ value=expression() {
             ExcTokenManager.i ++ ;    
             arguments[ExcTokenManager.imb][ExcTokenManager.i] = value;
/*             JOptionPane.showConfirmDialog(null,
            		"tab["+ExcTokenManager.imb+"]["+ExcTokenManager.i+"]="+value,"About",
            		JOptionPane.CLOSED_OPTION);*/
       
             tab[ExcTokenManager.imb] = ExcTokenManager.i ;
              }
}

/*******************************************************************/
						   

   

 

⌨️ 快捷键说明

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