「AOJよく使うコード」の編集履歴(バックアップ)一覧に戻る

AOJよく使うコード - (2013/02/15 (金) 12:03:41) のソース

再帰下降構文解析のスケルトン。

 int saiki(std::string formula,int& p,int pr){
 	int re,a;
 	while(formula.size()>p){
 		char c=formula[p];
 		if(c=='('){
  			p++;
 			re=saiki(formula,p,0);
 			p++;
 		}else if(c==')'){
  			return re;
  		}else if(c=='+' || c=='-'){
  			if(pr>=1){
  				return re;
  			}
  			p++;
  			a=saiki(formula,p,1);
  			//ここに計算を書く
   		}else if(c=='*'){
   			if(pr>=2){
  				return re;
  			}
 			p++;
   			a=saiki(formula,p,2);
   			//ここで計算を行う
  		}else if(c=='/'){
  			if(pr>=2){
  				return re;
  			}
  			p++;
  			a=saiki(formula,p,2);
  			//ここで計算を行う
   		}else{
                         //変数や自然数の読み込み
 			
  		}
  	}
   	return re;
 }