// Parser.cpp: implementation of the Parser class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "Optima.h" #include "Parser.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// Parser::Parser() { } Parser::~Parser() { } void Parser::Parse(CEdit *source,Simplex& simplex) { int no_of_lines=source->GetLineCount(); char buffer[80]; CString line,temp; int line_count=0; simplex.no_of_vars=0; simplex.no_of_const=0; int length; int const_mode=0; int varfill_flag=-1; for(int i=0;iGetLine(i,(LPTSTR)buffer,78); length=source->LineLength(source->LineIndex(i)); // char t[10]; // itoa(length,t,10); // AfxMessageBox(CString(t)); buffer[length]=0; temp=(CString)buffer; // AfxMessageBox(temp); line=""; int signset_flag=0; for(int j=0;j") { letter="-1"; if(const_mode) letter="1"; signset_flag=1; } if(letter=="<") { letter="1"; if(const_mode) letter="2"; signset_flag=1; } if(letter=="*") { letter="3"; } if(letter=="=" && !signset_flag) { letter="0"; if(const_mode) letter=""; } line+=letter; } } temp=""; int comma_counter=0; line.TrimLeft(); line.TrimRight(); if(line.CompareNoCase("end")==0) break; if(line.CompareNoCase("signs")==0) { const_mode=1; continue; } line+=","; // AfxMessageBox(line); for(j=0;j0 types_______ simplex.no_of_vars++; } else //_______Constraints____ { //_______A matrix____ if(comma_counter1) line_count++; } }