|
Тема |
Re: Регулярен израз за калкулатор ? [re: Alex] |
|
Автор |
lndependent (crash) |
|
Публикувано | 22.01.02 11:34 |
|
|
ne e 4ak tolkowa trudno. to4no sega oba4e nqmam wreme da pi6a i kalkulator :-). naj-lesno 6te ti byde po metoda na rekursiwnoto spuskane, ne6to ot wida:
char ch;
void E()
{
ch = getchar();
T();
while (ch == '+' || ch == '-')
T();
}
void T()
{
F();
while (ch == '*' || ch == '/')
F();
}
void F()
{
//4ete6 nqkakawa struktura s teku6tata leksema (token), nejniq tip i code
if (token.type == NUM_LITERAL || token.type == ID_LITERAL)
return;
if (ch == '(') //otwarq6ta skoba
{
E();
if (ch == ')') //zatwarq6ta skoba
return;
error("gre6ka wyw whodniq niz!!!");
}
error("gre6ka wyw whodniq niz!!!");
}
getchar() ti wry6ta edin simwol ot whodniq niz, error() otpe4atwa gre6ka.
towa e dosta zawyr6eno kato ideq, move6 da go dorazwie6.
imam edin gotow leksi4eski analizator, no toj e na C# i nqma da ti swyr6i rabota. ako pyk ne ti e mnogo spe6no, 6te se opitam da skalypq ne6to do edna-dwe sedmici, no maj pak 6te byde na C#.
stoj, ta gledaj
|
| |
|
|
|