/* OperatorAdd_() - actual workhorse to add a new operator. * */ static void OperatorAdd_(TToken Decl, int Precedence, int Associativity, SYMBOLS List, const char* Pattern) { int iSymbol; TSymbol* Symbol; TOperator* Result = NEW(TOperator); assert(Result != NULL); Result->Precedence = Precedence; Result->Associativity = Associativity; Result->List = List; Result->Decl = Decl; Result->Pattern = StrClone(Pattern); ++NOperators; Result->IntRep = NOperators; Operators = (TOperator**)realloc(Operators, sizeof(TOperator*)*NOperators); assert(Operators != NULL); Operators[NOperators-1] = Result; for(iSymbol = 0; iSymbol < SymbolListCount(List); ++iSymbol) { Symbol = SymbolListGet(List, iSymbol); if(Symbol) { OpSymAdd(Result, iSymbol); ++Result->SymCount; } } }
void ReadingCommandLineArguements (int argc, char* argv[], char** TheWord, char** FileName,\ int* ArrayOfOptions,int *NumOfLinesAfter_forAArgument){ int i = 1; for (i = 1; i < argc; i++){ if ((i < argc - 1) && strcmp(argv[i], "-A") == 0){ ArrayOfOptions[A] = 1; *NumOfLinesAfter_forAArgument = atoi(argv[++i]); } else if (strcmp(argv[i], "-b") == 0){ ArrayOfOptions[B] = 1; } else if (strcmp(argv[i], "-c") == 0){ ArrayOfOptions[C] = 1; } else if (strcmp(argv[i], "-i") == 0){ ArrayOfOptions[I] = 1; } else if (strcmp(argv[i], "-n") == 0){ ArrayOfOptions[N] = 1; } else if (strcmp(argv[i], "-v") == 0){ ArrayOfOptions[V] = 1; } else if (strcmp(argv[i], "-x") == 0){ ArrayOfOptions[X] = 1; } else if (strcmp(argv[i], "-E") == 0){ ArrayOfOptions[E] = 1; } else{ *TheWord = StrClone(argv[i]); i++; *FileName = StrClone((i < argc) ? argv[i]:""); } } }