#include #include #include using namespace std; int main(){ string s; bool p; bool I, B, V;//index register, base register, variable while(1){ getline(cin, s); if(cin.eof()){ break; } s+='\0'; p=true; I = B = V = false; for(int i=0; i<(int)s.size()-1; i++){ if(isalpha(s[i])){//spremenljivka ali register if(isalpha(s[i+1])){//register s[i] = tolower(s[i]); s[i+1] = tolower(s[i+1]); if(s[i] == 'b' && (s[i+1] == 'x' || s[i+1] == 'p')){//base register if(B==true){//sta v adressu vsaj 2 base registra p=false; break; } else{B=true;} i++;//da gre čez drugo črko registra } else if(s[i+1] == 'i' && (s[i] == 's' || s[i] == 'd')){ if(I==true){//index register p=false; break; } else{I=true;} i++;//da gre čez drugo črko registra } else{//potem sta to 2 zaporedni spremenljivki p=false; break; } } else{//spremenljivka if(isupper(s[i])){ p=false; break; } if(V == true){p=false; break;} else{V=true;} } } else{//če ni črkaA if(s[i] == '+' || s[i] == '-'){ if(i==0 || s[i-1] == '['){//+ in - ne smeta biti na začetku p=false; break; } else if(s[i+1] == '\0' || s[i+1] == ']'){ p=false; break;//+ in - ne smeta biti na koncu } } else if(s[i] != '[' && s[i] != ']' && isdigit(s[i]) == false){ p=false;break; } } } if(p==true){cout<<"OK\n";} else{p=true; cout<<"ERROR\n";} } return 0; }