private void TexArgumentMode(char x) { // _texCommandFlag == false // _texArgumentFlag == true // _supOrSubFlag == true or false // _primeFlag == false if (_texCommandFlag) { throw new InvalidOperationException("_texCommandFlag == false でないのにTexArgumentModeに来るのはおかしい"); } if (!_texArgumentFlag) { throw new InvalidOperationException("_texArgumentFlag == true でないのにTexArgumentModeに来るのはおかしい"); } if (_primeFlag) { throw new InvalidOperationException("_primeFlag == false でないのにTexArgumentModeに来るのはおかしい"); } if (_temp.Length == 1) { if (x >= '0' && x <= '9') { _temp.Append(x); _origin.Append(x); } else { throw new InvalidOperationException("# の直後は数字でなければなりません。"); } } else if (x.AllowedCharacter()) { _texArgumentFlag = false; _temp.Append(x); _origin.Append(x); AddToken(_temp.ToString(), _supOrSubFlag); } else { _texArgumentFlag = false; AddToken(_temp.ToString(), _supOrSubFlag); TextMode(x); } }