Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<conio.h>
- #include<stdlib.h>
- #include"ReadFromFile.h"
- #include"DbLinkedLIst.h"
- #include<locale.h>
- void main()
- {
- setlocale(LC_ALL, ".1251");
- DbLinkedLIst* List = new DbLinkedLIst();
- ReadFromFile *per = new ReadFromFile();
- per->ReadText(List);
- delete(per);
- getch();
- }
- __________________________________________________________
- #pragma once
- #include<iostream>
- #include"DbLinkedLIst.h"
- #include<stdio.h>
- class ReadFromFile
- {
- FILE *in;
- int Size_char;
- char ReadOneElement();
- public:
- ReadFromFile()
- {
- in = fopen("ReadIn.txt","r");
- }
- void ReadText(DbLinkedLIst *List);
- void processing(DbLinkedLIst *List);
- ~ReadFromFile()
- {
- fclose(in);
- }
- };
- _________________________________________________________
- #include "ReadFromFile.h"
- void ReadFromFile::ReadText(DbLinkedLIst *List)
- {
- int i, j;
- char c;
- c = ReadOneElement();
- while (c!=EOF)
- {
- List->CreateOfNode(c);
- c = ReadOneElement();
- }
- List->printList(List);
- processing(List);
- }
- char ReadFromFile::ReadOneElement()
- {
- char c;
- c = fgetc(in);
- return c;
- }
- void ReadFromFile::processing(DbLinkedLIst* List)
- {
- List->FindFor(List);
- }
- _____________________________________________________
- private:
- Node *head;
- Node *tail;
- public:
- DbLinkedLIst();
- void CreateOfNode(int data);
- void printList(DbLinkedLIst *List);
- void FindFor(DbLinkedLIst *List);
- DbLinkedLIst* AnotherList(DbLinkedLIst *List);
- int Flag(DbLinkedLIst *List,Node *cur,int flag);
- int Bracket(DbLinkedLIst* List,Node *cur);
- int OutPut(int flag, int flag2, int flag3,int flag4,int flag5,int flag6,int flag7,int flag8,int flag9,int flag10,int countOfSpace,int flag12,int flag13,int flag14,int flag15);
- int Bracket2(DbLinkedLIst* List, Node *cur);
- int provarka(DbLinkedLIst* SecondList, Node *Buf);
- int spase(DbLinkedLIst* SecondList, Node **Buf);
- int NotNUl(DbLinkedLIst* SecondList,Node **Buf);
- int LogicOperation(DbLinkedLIst* SecondList, Node *Buf);
- int print(DbLinkedLIst* SecondList, Node *Buf);
- int PoslPos(DbLinkedLIst* SecondList, Node *Buf);
- Node* check(DbLinkedLIst* SecondList, Node *Buf);
- int Skip(DbLinkedLIst* SecondList, Node **Buf);
- int STR(Node* Buf, DbLinkedLIst* List);
- int LogicOperation2(DbLinkedLIst *SecondList, Node *per);
- int KeyWord(DbLinkedLIst *List, Node* Buf);
- };
- _____________________________________________________________________________
- #include "DbLinkedLIst.h"
- #include<stdlib.h>
- #include <stdio.h>
- #include<string.h>
- #include<ctype.h>
- DbLinkedLIst::DbLinkedLIst()
- {
- head = tail = NULL;
- }
- void DbLinkedLIst::CreateOfNode(int data)
- {
- Node* tmp = (Node *)malloc(sizeof(Node));
- if (tmp == NULL)
- return;
- tmp->value = data;
- if (head==NULL)
- {
- tmp->next = tmp->prev = NULL;
- head = tail = tmp;
- return;
- }
- tmp->prev = tail;
- tail->next = tmp;
- tmp->next = NULL;
- tail = tmp;
- }
- void DbLinkedLIst::printList(DbLinkedLIst *List)
- {
- Node *cur = head;
- while (cur != NULL)
- {
- putchar(cur->value);
- cur = cur->next;
- }
- }
- void DbLinkedLIst::FindFor(DbLinkedLIst *List)
- {
- char c='f';
- int flag = 0, count = 1, flag2 = 0,i,j,flag3=0,Space,flagOfBazis=0,CountOfSleshen=0;
- Node *cur = (Node *)malloc(sizeof(Node));
- Node *Buf = (Node *)malloc(sizeof(Node));
- Node *per = (Node *)malloc(sizeof(Node));
- Node *Dopper = (Node *)malloc(sizeof(Node));
- Node *Push = (Node *)malloc(sizeof(Node));
- cur = head;
- if (spase(List, &cur) == 1)
- Buf = cur;
- if (Skip(List, &cur) == 1)
- Buf = cur;
- if (Skip(List, &cur) == 5)
- {
- printf("\n");
- printf("ERROR:не найдено ключевого слова\n");
- return;
- }
- while (cur != NULL)
- {
- flag = 0;
- flag2 = 0;
- count = 1;
- flag3 = 0;
- flag = Flag(List,cur,flag);
- if (flag==3||flag==2)
- {
- count = 3;
- Buf = cur->next->next;
- while (Buf!= NULL )
- {
- if (Flag(List, Buf, flag) != 3)
- {
- if (Flag(List, Buf, flag) != 2)
- {
- if (Bracket(List, Buf) == 1)
- {
- if (Buf->next == NULL)
- {
- flag2++;
- per = Buf;
- break;
- }
- if (Buf->next->value == ')')
- {
- flag3++;
- Buf = Buf->next;
- continue;
- }
- flag2++;
- }
- if (Bracket2(List, Buf) == 1)
- {
- if (Buf->next->value == '(')
- {
- flag3++;
- Buf = Buf->next;
- continue;
- }
- flag2++;
- }
- count++;
- per = Buf;
- Buf = Buf->next;
- if (Buf->value == '\n')
- {
- }
- }
- else
- break;
- }
- else
- break;
- }
- }
- if (OutPut(flag, flag2, flag3,0,0,0,0,0,0,0,0,0,0,0,0) == 0)
- {
- DbLinkedLIst *SecondList = new DbLinkedLIst();
- Buf = cur->next->next->next;
- Push = per;
- while (Buf->value!=')' )
- {
- Buf = Buf->next;
- SecondList->CreateOfNode(Buf->value);
- }
- Push = Buf;
- while (Buf->value != '\n')
- {
- if (Buf->next != NULL)
- {
- if (!isspace(Buf->next->value))
- {
- flagOfBazis = 1;
- break;
- }
- }
- else
- break;
- Buf = Buf->next;
- }
- if (flagOfBazis == 0)
- {
- SecondList = SecondList->AnotherList(SecondList);
- }
- }
- else
- cur = tail;
- for (i = 1; i < count+1; i++)
- {
- if (cur == NULL)
- break;
- cur = cur->next;
- }
- count = 1;
- }
- }
- int DbLinkedLIst::Flag(DbLinkedLIst *List,Node *cur,int flag)
- {
- flag = 0;
- if (cur->value == 'f')
- flag++;
- if (cur->next == NULL)
- {
- return 1;
- }
- if (cur->next->value == 'o')
- flag++;
- if (cur->next->next== NULL)
- {
- return 1;
- }
- if (cur->next->next->value == 'r')
- flag++;
- return flag;
- }
- DbLinkedLIst* DbLinkedLIst::AnotherList(DbLinkedLIst *SecondList)
- {
- int flag = 0, flag2 = 0, flag3 = 0, flag4 = 0, flag5 = 0,i;
- char c;
- Node *cur = head;
- Node* Biff;
- for (cur; cur != NULL;cur=cur->next)
- {
- if (cur->value == ';')
- flag++;
- }
- if (flag != 2)
- {
- printf("Ошибка мало ; в заголовек цикла \n");
- return SecondList;
- }
- else
- {
- Node *Buf = head;
- for (i=0;i<3; i++)
- {
- if (provarka(SecondList, Buf) == 1)
- {
- Buf = tail;
- break;
- }
- else
- {
- Buf = Buf->next;
- while (Buf->value != ';')
- {
- Buf = Buf->next;
- if (Buf->next == NULL)
- break;
- }
- }
- }
- PoslPos(SecondList,Buf);
- }
- return SecondList;
- }
- int DbLinkedLIst::Bracket(DbLinkedLIst* List,Node *cur)
- {
- if (cur->value == ')')
- return 1;
- return 0;
- }
- int DbLinkedLIst::Bracket2(DbLinkedLIst* List, Node *cur)
- {
- if (cur->value == '(')
- return 1;
- return 0;
- }
- int DbLinkedLIst::OutPut(int flag, int flag2, int flag3, int flag4, int flag5, int flag6, int flag7, int flag8, int flag9, int flag10, int countOfSpace, int flag12, int flag13, int flag14,int flag15)
- {
- if (flag3 != 0)
- {
- printf("\n");
- printf("ERROR:слишком много скобок в заголовке for\n");
- return 1;
- }
- if (flag != 3)
- {
- printf("\n");
- printf("ERROR:неправильно написано ключевое слово for\n");
- return 1;
- }
- if (flag2 % 2 != 0)
- {
- printf("\n");
- printf("ERROR:нехватает либо открывающей скобки '(' либо закрывающей скобки ')'\n");
- return 1;
- }
- if (flag4 > 0)
- {
- printf("\n");
- printf("ERROR:слишком много переменных при инициализации\n");
- return 1;
- }
- if (flag5!=0)
- {
- printf("\n");
- printf("ERROR:найдена цифра вместо буквы\n");
- return 1;
- }
- if (flag6 != 0)
- {
- printf("\n");
- printf("ERROR:слишком много переменных\n");
- return 1;
- }
- if (flag7 != 0)
- {
- printf("\n");
- printf("ERROR:неправомочная ининциальзация переменной\n");
- return 1;
- }
- if (flag8 != 0)
- {
- printf("\n");
- printf("ERROR:много цифр в выражении\n");
- return 1;
- }
- if (flag9 != 0)
- {
- printf("\n");
- printf("ERROR:много букв в выражении\n");
- return 1;
- }
- if (flag10 != 0)
- {
- printf("\n");
- printf("ERROR:невыполнимое выражение\n");
- return 1;
- }
- if (countOfSpace !=0)
- {
- printf("\n");
- printf("ERROR:невыполнимый оператор'\n");
- return 1;
- }
- if (flag12 != 0)
- {
- printf("\n");
- printf("ERROR:неправомочное использование символа '_''\n");
- return 1;
- }
- if (flag13 != 0)
- {
- printf("\n");
- printf("ERROR:в левой части выражение должно обязательно содержать переменную\n");
- return 1;
- }
- if (flag14 != 0)
- {
- printf("\n");
- printf("ERROR:в правой части выражение должно обязательно содержать только число\n");
- return 1;
- }
- if (flag15 != 0)
- {
- printf("\n");
- printf("ERROR:ожидалось выражение\n");
- return 1;
- }
- return 0;
- }
- int DbLinkedLIst::spase(DbLinkedLIst* SecondList, Node **Buf)
- {
- int flag=0;
- Node *cur;
- cur = (*Buf)->next;
- if ((*Buf)->next == NULL)
- return 1;
- if (isspace((*Buf)->next->value) != NULL)
- {
- while (isspace(cur->value)!=NULL)
- {
- cur = cur->next;
- if (isalpha(cur->value) != NULL||isdigit(cur->value)!=NULL)
- {
- (*Buf) = cur;
- return 1;
- }
- }
- }
- return 0;
- }
- int DbLinkedLIst::NotNUl(DbLinkedLIst* SecondList, Node **Buf)
- {
- int flag3=0,countOfSpace=0,flag=0,flag2=0,flag5=0,flag8=0,flag9=0,flag10=0,flag11=0,flag12=0,flagOfalpha=0,flag14=0,logic=0;
- Node *per = *Buf;
- Node *Dopper = *Buf;
- if (LogicOperation(SecondList, *Buf) == 1)
- {
- if (((*Buf)->value == '&' && (*Buf)->next->value == '&') || ((*Buf)->value == '!' && ((*Buf)->next->value == '=') || ((*Buf)->value == '>') || ((*Buf)->value == '<') || ((*Buf)->value == '|' && (*Buf)->next->value == '|') || ((*Buf)->value == '=')))
- {
- if ((*Buf)->value == '=')
- {
- for (*Buf = (*Buf)->next; (*Buf)->value != ';'; *Buf = (*Buf)->next)
- {
- if (isdigit((*Buf)->value) != NULL)
- {
- if (spase(SecondList, Buf) == 1 && isdigit((*Buf)->value) != NULL)
- flag3++;
- }
- else
- {
- if (isalpha((*Buf)->value) == NULL&&!isspace((*Buf)->value) && (*Buf)->value != '_' && (*Buf)->value != '=')
- flag5++;
- }
- if (isalpha((*Buf)->value) != NULL)
- {
- flagOfalpha++;
- if (spase(SecondList, Buf) == 1 && (*Buf)->prev->value == ' ')
- flag3++;
- }
- else
- {
- if (!isspace((*Buf)->value) && isdigit((*Buf)->value) == NULL && (*Buf)->value != '_' && (*Buf)->value != '=')
- flag5++;
- }
- for (Dopper; Dopper->value != ';'; Dopper = Dopper->next)
- {
- if (isalpha(Dopper->value) != NULL)
- flagOfalpha++;
- }
- if ((*Buf)->value == '_')
- if (flagOfalpha == 0)
- flag12++;
- }
- }
- if (((*Buf)->value == '!' && (*Buf)->next->value == '=') || (((*Buf)->value == '>')) || ((*Buf)->value == '<') || ((*Buf)->value == '&' && (*Buf)->next->value == '&') || ((*Buf)->value == '|' && (*Buf)->next->value == '|'))
- {
- if (((*Buf)->value == '!' && (*Buf)->next->value == '=') || ((*Buf)->value == '&' && (*Buf)->next->value == '&') || ((*Buf)->value == '|' && (*Buf)->next->value == '|'))
- (*Buf) = (*Buf)->next;
- for (*Buf = (*Buf)->next; (*Buf)->value != ';'; *Buf = (*Buf)->next)
- {
- if ((*Buf)->next == NULL)
- break;
- if (isdigit((*Buf)->value) != NULL)
- {
- if (spase(SecondList, Buf) == 1 && isdigit((*Buf)->value) != NULL)
- flag8++;
- }
- else
- {
- if (isalpha((*Buf)->value) == NULL&&!isspace((*Buf)->value) && (*Buf)->value != '_' && (((*Buf)->value != '!' && (*Buf)->next->value != '=') && (*Buf)->value != '>' && (*Buf)->value != '<' && ((*Buf)->value != '&' && (*Buf)->next->value != '&') && ((*Buf)->value != '|' && (*Buf)->next->value != '|') && (*Buf)->value != '+'&&(*Buf)->value != '-'))
- flag10++;
- }
- if (isalpha((*Buf)->value) != NULL)
- {
- if (spase(SecondList, Buf) == 1 && (*Buf)->prev->value == ' ')
- flag9++;
- }
- else
- {
- if (!isspace((*Buf)->value) && isdigit((*Buf)->value) == NULL && (*Buf)->value != '_' && (((*Buf)->value != '!' && (*Buf)->next->value != '=') && (*Buf)->value != '>' && (*Buf)->value != '<' && ((*Buf)->value != '&' && (*Buf)->next->value != '&') && ((*Buf)->value != '|' && (*Buf)->next->value != '|') && (*Buf)->value != '+' && (*Buf)->value != '-'))
- flag10++;
- }
- for (Dopper; Dopper->value!=')'; Dopper = Dopper->next)
- {
- if (isalpha(per->value) != NULL)
- flagOfalpha++;
- }
- }
- }
- if (((*Buf)->value == '+' && (*Buf)->next->value == '+') || (((*Buf)->value == '-'))&& ((*Buf)->value == '-'))
- for (*Buf = (*Buf)->next; (*Buf)->value != ';'; *Buf = (*Buf)->next)
- {
- if (isdigit((*Buf)->value) != NULL)
- flag11++;
- }
- }
- }
- if (OutPut(3, 0, 0, 0, 0, 0, 0, flag8, flag9, flag10,flag11,flag12,0,flag14,0) == 1)
- return 1;
- if (flag!=0 &&flag2!=0)
- {
- printf("\n");
- printf("ERROR:ожидалось ; после'++'или '--'\n");
- return 1;
- }
- if (flag5 != 0)
- {
- printf("\n");
- printf("ERROR:неприменимая инициализация\n");
- return 1;
- }
- if (flag3 != 0)
- {
- printf("\n");
- printf("ERROR:неправильная инициализация\n");
- return 1;
- }
- }
- int DbLinkedLIst::provarka(DbLinkedLIst* SecondList, Node *Buf)
- {
- Buf = Buf->next;
- Node *per=Buf;
- Node *Dopper = Buf->next;
- Node *Bazis = Buf->next;
- int flag = 0, flag2 = 0, flag3 = 0, flag4 = 0, flag5 = 0, flag6 = 0, f, flag7 = 0, flag8 = 0, flag9=0,flag10=0,count=0,flag11=0,flagOfalpha=0,flag12=0,flag13=0,flag15=0,logika=0;
- while (Buf->value != ';')
- {
- if (LogicOperation(SecondList, Buf) == 1)
- {
- flag++;
- Dopper = Buf;
- break;
- }
- if (Buf->value == '(')
- {
- Bazis = Buf;
- }
- Buf = Buf->next;
- if (Buf->next == NULL)
- break;
- }
- Buf = per;
- per = Buf;
- while (Buf->value != ';')
- {
- if (Dopper->value=='=')
- {
- if (isdigit(Buf->value) != NULL)
- {
- if (spase(SecondList, &Buf) == 1 && isdigit(Buf->value) != NULL)
- flag4++;
- if (flagOfalpha==0)
- if (spase(SecondList, &Buf) == 0 && Buf->next->value == '=')
- flag4;
- }
- else
- {
- if (isalpha(Buf->value) == NULL&&!isspace(Buf->value) && Buf->value != '_'&&Buf->value != '=')
- flag7++;
- }
- if (isalpha(Buf->value) != NULL)
- {
- flagOfalpha++;
- if (spase(SecondList, &Buf) == 1 && Buf->prev->value == ' ')
- flag6++;
- }
- else
- {
- if (!isspace(Buf->value) && isdigit(Buf->value) == NULL&&Buf->value!= '_'&&Buf->value != '=')
- flag7++;
- }
- for (per; per->value != '='; per = per->next)
- {
- if (isalpha(per->value) != NULL)
- flagOfalpha++;
- }
- if (Buf->value == '_')
- if (flagOfalpha == 0)
- flag12++;
- if (flagOfalpha == 0)
- flag13++;
- }
- if ((Dopper->value == '!'&&Dopper->next->value == '=') || (Dopper->value == '>') || Dopper->value == '<' || (Dopper->value == '&'&&Dopper->next->value == '&') || (Dopper->value == '|'&&Dopper->next->value == '|') || (Dopper->value == '>'&&Dopper->next->value == '=') || (Dopper->value == '<'&&Dopper->next->value == '='))
- {
- if (isdigit(Buf->value) != NULL)
- {
- if (spase(SecondList, &Buf) == 1 && isdigit(Buf->value) != NULL)
- flag8++;
- }
- else
- {
- if (isalpha(Buf->value) == NULL&&!isspace(Buf->value) && Buf->value != '_' && ((Buf->value != '!'&&Buf->next->value != '=') && Buf->value != '>' && Buf->value != '<' && (Buf->value != '&'&&Buf->next->value != '&') && (Buf->value != '|'&&Buf->next->value != '|')&&Buf->value=='+'&&Buf->value=='-'))
- flag10++;
- }
- if (isalpha(Buf->value) != NULL)
- {
- if (spase(SecondList, &Buf) == 1 && Buf->prev->value == ' ')
- flag9++;
- }
- else
- {
- if (!isspace(Buf->value) && isdigit(Buf->value) == NULL&&Buf->value != '_' && ((Buf->value != '!'&&Buf->next->value != '=') && Buf->value != '>'&&Buf->value != '<' && (Buf->value != '&'&&Buf->next->value != '&') && (Buf->value != '|'&&Buf->next->value != '|') && Buf->value == '+'&&Buf->value == '-'))
- flag10++;
- }
- logika = LogicOperation2(SecondList, per);
- for (per;logika!=1 ; per = per->next)
- {
- if (per->value == ';')
- break;
- if (per->next == NULL)
- break;
- if (isalpha(per->value) != NULL)
- flagOfalpha++;
- logika = LogicOperation2(SecondList, per);
- }
- if (Buf->value == '_')
- if (flagOfalpha == 0)
- flag12++;
- }
- if (Dopper->value == '+'&&Dopper->next->value == '+')
- {
- if (isdigit(Buf->value) != NULL)
- {
- if (spase(SecondList, &Buf) == 1 && isdigit(Buf->value) != NULL)
- flag4++;
- }
- else
- {
- if (isalpha(Buf->value) == NULL&&!isspace(Buf->value) && Buf->value != '_' && Buf->value != '+'&&Buf->next->value == '+' )
- flag11++;
- }
- if (isalpha(Buf->value) != NULL)
- {
- if (spase(SecondList, &Buf) == 1 && Buf->prev->value == ' ')
- flag6++;
- }
- else
- {
- if (!isspace(Buf->value) && isdigit(Buf->value) == NULL&&Buf->value != '_' && (Buf->value != '+'&&Buf->next->value == '+'))
- flag11++;
- }
- if (Buf->value == '+'&&Buf->value != '+')
- flag11++;
- for (per; (per->value !='+'&&per->next->value!='+'); per = per->next)
- {
- if (isalpha(per->value) != NULL)
- flagOfalpha++;
- if (per->value=='+')
- if (!isspace(per->next->value) && per->next->value != '+')
- flag11++;
- }
- if (Buf->value == '_')
- if (flagOfalpha == 0)
- flag12++;
- }
- if ((Dopper->value == '!'&&Dopper->next->value!='='))
- {
- if (isdigit(Buf->value) != NULL)
- {
- if (spase(SecondList, &Buf) == 1 && isdigit(Buf->value) != NULL)
- flag8++;
- }
- else
- {
- if (isalpha(Buf->value) == NULL&&!isspace(Buf->value) && Buf->value != '_' && ((Buf->value != '!'&&Buf->next->value != '=') && Buf->value != '>' && Buf->value != '<' && (Buf->value != '&'&&Buf->next->value != '&') && (Buf->value != '|'&&Buf->next->value != '|')))
- flag10++;
- }
- if (isalpha(Buf->value) != NULL)
- {
- if (spase(SecondList, &Buf) == 1 && Buf->prev->value == ' ')
- flag9++;
- }
- else
- {
- if (!isspace(Buf->value) && isdigit(Buf->value) == NULL&&Buf->value != '_' && ((Buf->value != '!'&&Buf->next->value != '=') && Buf->value != '>'&&Buf->value != '<' && (Buf->value != '&'&&Buf->next->value != '&') && (Buf->value != '|'&&Buf->next->value != '|')))
- flag10++;
- }
- for (per; per->value != ';'; per = per->next)
- {
- if (isalpha(per->value) != NULL)
- flagOfalpha++;
- }
- if (Buf->value == '_')
- if (flagOfalpha == 0)
- flag12++;
- if (Buf->value == '!' && (!isspace(Buf->prev->value) || Buf->next->value == ' '))
- flag11++;
- }
- if (flag == 0)
- {
- printf("\n");
- printf("ERROR:\n");
- return 1;
- }
- if (NotNUl(SecondList, &Buf) == 1)
- return 1;
- if (OutPut(3, 0, 0, flag3, flag4, flag6, flag7, flag8, flag9, flag10,flag11,flag12,flag13,0,flag15) == 1)
- return 1;
- if (Buf->value == ';')
- return 0;
- Buf = Buf->next;
- if (Buf == NULL)
- break;
- if (Buf->next == NULL)
- break;
- }
- }
- int DbLinkedLIst::LogicOperation(DbLinkedLIst* SecondList, Node *Buf)
- {
- int i, i_1, a, _ = 0;
- if ((Buf->value == '&'&&Buf->next->value == '&') || (Buf->value == '!'&&Buf->next->value == '=') || Buf->value == '>' || Buf->value == '<' || (Buf->value == '|'&&Buf->next->value == '|') || Buf->value == '=' || (Buf->value == '+'&&Buf->next->value == '+') || (Buf->value == '-'&&Buf->next->value == '-') || Buf->value == '!')
- return 1;
- else
- return 0;
- }
- int DbLinkedLIst::print(DbLinkedLIst* SecondList, Node *Buf)
- {
- if ((Buf->value == '+'&&Buf->next->value == '+') || (Buf->value == '-'&&Buf->next->value == '-'))
- return 1;
- else
- return 0;
- }
- int DbLinkedLIst::PoslPos(DbLinkedLIst* SecondList, Node *Buf)
- {
- return 0;
- }
- int DbLinkedLIst::Skip(DbLinkedLIst* List, Node **Buf)
- {
- int flag = 0;
- Node *cur;
- cur = (*Buf);
- if (Flag(List, *Buf, flag) != 3 || Flag(List, *Buf, flag) != 2)
- {
- while (Flag(List, cur, flag) != 3&& Flag(List, cur, flag) != 2)
- {
- cur = cur->next;
- if (cur == NULL)
- {
- return 5;
- }
- }
- (*Buf) = cur;
- return 1;
- }
- return 0;
- }
- int DbLinkedLIst::STR(Node *Buf, DbLinkedLIst* List)
- {
- int count = 0;
- while (Buf != NULL)
- {
- if (Buf->value == '\n')
- {
- count++;
- }
- Buf = Buf->next;
- }
- return count;
- }
- int DbLinkedLIst::LogicOperation2(DbLinkedLIst *SecondList, Node *per)
- {
- if ((per->value == '!'&&per->next->value == '=') || (per->value == '>') || per->value == '<' || (per->value == '&'&&per->next->value == '&') || (per->value == '|'&&per->next->value == '|') || (per->value == '>'&&per->next->value == '=') || (per->value == '<'&&per->next->value == '='))
- return 1;
- else
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement