#include "deftype.h"
#include "vsiki.h"

int Yusen(unint c)
/* 演算子優先順位：順位が高いものほど数字が大きい */
/* unintをunsintにするとＧＣＣのバグでコンパイル出来ない */
{
// レベルは１０から始まり、,0がある毎に＋１０する
static unsint Lvs[]={
		 '=',0				// 代入
		,'&','|','^',0			// 論理演算（実数では不可）
		,VEQU,VNE,'>','<',VGE,VLE,0	// 比較
		,VRROT,VLROT,VRSHIFT,VLSHIFT,0	// ローテート、シフト（実数では不可）
		,'+','-',0			// 加減
		,'*','/','\\',0			// 乗除剰余
		,VTWO,VDEC,VINC,VMINUS,'~',0	// 単項演算子（'~'のみ実数では不可）
		,0xffff				// End of table
	};
unsint cc,*Lvv;
int lv=10; // 最初の優先順位
	Lvv=Lvs;
	while ((cc=*Lvv++)!=0xffff) {
		if (cc==c) return(lv); // 見つかった
		// c!=0なのでこれでいい
		if (cc==0) lv+=10; // 次の優先順位へ
	}
	// 見つからない
	return(0);
}
