O’zbekiston


Download 3.06 Mb.
bet4/5
Sana03.12.2023
Hajmi3.06 Mb.
#1806449
1   2   3   4   5
Bog'liq
BOZOROV OG’ABEK labaratoriya7

this->button1->TabIndex = 1;

  • this->button1->Text = L"Hisoblash";

  • this->button1->UseVisualStyleBackColor = true;

  • this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);

    289) //
    290) // textBox1
    291) //

    1. this->textBox1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 18.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

    2. static_cast(204)));

    3. this->textBox1->ForeColor = System::Drawing::SystemColors::MenuText;

    4. this->textBox1->Location = System::Drawing::Point(12, 12);

    5. this->textBox1->Multiline = true;

    6. this->textBox1->Name = L"textBox1";

    7. this->textBox1->Size = System::Drawing::Size(543, 36);

    8. this->textBox1->TabIndex = 2;

    9. this->textBox1->Text = L"Ichma_ich.cpp";

    10. this->textBox1->Click += gcnew System::EventHandler(this, &Form1::textBox1_Click);

    11. this->textBox1->TextChanged += gcnew System::EventHandler(this, &Form1::textBox1_TextChanged);

    303) //
    304) // label1
    305) //

    1. this->label1->AutoSize = true;

    2. this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 18.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

    3. static_cast(204)));

    4. this->label1->Location = System::Drawing::Point(607, 41);

    5. this->label1->Name = L"label1";

    6. this->label1->Size = System::Drawing::Size(81, 29);

    7. this->label1->TabIndex = 3;

    8. this->label1->Text = L"label1";

    314) //
    315) // label2
    316) //

    1. this->label2->AutoSize = true;

    2. this->label2->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 18.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

    3. static_cast(204)));

    4. this->label2->Location = System::Drawing::Point(607, 92);

    5. this->label2->Name = L"label2";

    6. this->label2->Size = System::Drawing::Size(81, 29);

    7. this->label2->TabIndex = 3;

    8. this->label2->Text = L"label2";

    325) //
    326) // label3
    327) //

    1. this->label3->AutoSize = true;

    2. this->label3->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 18.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

    3. static_cast(204)));

    4. this->label3->Location = System::Drawing::Point(607, 143);

    5. this->label3->Name = L"label3";

    6. this->label3->Size = System::Drawing::Size(81, 29);

    7. this->label3->TabIndex = 3;

    8. this->label3->Text = L"label3";

    336) //
    337) // label4
    338) //

    1. this->label4->AutoSize = true;

    2. this->label4->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 18.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

    3. static_cast(204)));

    4. this->label4->Location = System::Drawing::Point(607, 197);

    5. this->label4->Name = L"label4";

    6. this->label4->Size = System::Drawing::Size(81, 29);

    7. this->label4->TabIndex = 3;

    8. this->label4->Text = L"label4";

    347) //
    348) // label5
    349) //

    1. this->label5->AutoSize = true;

    2. this->label5->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 18.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

    3. static_cast(204)));

    4. this->label5->Location = System::Drawing::Point(607, 254);

    5. this->label5->Name = L"label5";

    6. this->label5->Size = System::Drawing::Size(81, 29);

    7. this->label5->TabIndex = 3;

    8. this->label5->Text = L"label5";

    358) //
    359) // Form1
    360) //

    1. this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

    2. this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;

    3. this->ClientSize = System::Drawing::Size(1027, 529);

    4. this->Controls->Add(this->label5);

    5. this->Controls->Add(this->label4);

    6. this->Controls->Add(this->label3);

    7. this->Controls->Add(this->label2);

    8. this->Controls->Add(this->label1);

    9. this->Controls->Add(this->textBox1);

    10. this->Controls->Add(this->button1);

    11. this->Controls->Add(this->dataGridView1);

    12. this->Name = L"Form1";

    13. this->Text = L"Leksik va sintaktik tahlil dasturi";

    14. (cli::safe_cast >(this-

    >dataGridView1))->EndInit();

    1. this->ResumeLayout(false);

    2. this->PerformLayout();

    377) }


    1. #pragma endregion




    1. int search(char lexeme[])

    380) {

    1. int i;




    1. for ( i = 0; i < NUM_ENTRIES; i++)

    383) {
    384) if (strcmp(lexeme,ref_tab[i].name) == 0)
    385) {

    1. strcpy_s(keyM[key],lexeme);

    2. key++;

    3. return ref_tab[i].token;

    389) }
    390) /* else
    391) {
    392) ident++;
    393) }
    394) */

    395) }


    1. strcpy_s(identM[ident],lexeme);



    2. ident++;return ID;

    399) }

    400) void output(int num)


    401) {
    402) //printf("\n%d\t%s\t\n",++token_no,out_token[num]);
    403) /* delay(350); */
    404) }

    405) void lexical(char store[], int store_len)


    406) {
    407) int i,j,line=2;
    408) char ch,lexeme[10],next;

    409) for (i = 0; i < store_len;)


    410) {

    411) ch = store[i];


    412) switch(ch)
    413) {
    414) case ' ':
    415) i++;

    416) printf("\tSPACE REMOVED\n");


    417) break;
    418) /* case ' ':
    419) i++;

    420) printf("\tTAB REMOVED\n");


    421) break; */
    422) case '{':
    423) i++;
    424) spM[sp]='{';
    425) sp++;
    426) //output(OB);
    427) break;
    428) case '}':
    429) i++;
    430) spM[sp]='}';
    431) sp++;
    432) //output(CB);
    433) break;
    434) case '(':
    435) i++;
    436) spM[sp]='(';
    437) sp++;
    438) //output(LP);
    439) break;
    440) case ')':
    441) i++;
    442) spM[sp]=')';
    443) sp++;
    444) //output(RP);
    445) break;
    446) case '=':
    447) i++;
    448) spM[sp]='=';
    449) op++;
    450) //output(EQUALTO);
    451) break;
    452) case '<':
    453) i++;
    454) spM[sp]='<';
    455) sp++;
    456) //output(LT);
    457) break;
    458) case '>':
    459) i++;
    460) spM[sp]='>';
    461) sp++;
    462) //output(GT);
    463) break;
    464) case '!':
    465) i++;
    466) spM[sp]='!';
    467) sp++;
    468) //output(NOTEQU);
    469) break;
    470) case '+':
    471) i++;
    472) opM[op][0]='+';
    473) op++;
    474) //output(PLUS);
    475) break;
    476) case '-':
    477) i++;
    478) opM[op][0]='-';
    479) op++;
    480) //output(MINUS);
    481) break;
    482) case '*':
    483) i++;
    484) opM[op][0]='*';

    485) op++;486) //output(MUL);


    487) break;

    488) case '/':


    489) i++;
    490) opM[op][0]='/';
    491) op++;
    492) next=store[i];
    493) if(next=='*')
    494) {
    495) i++;
    496) while(store[i]!='*')i++;
    497) i++;
    498) if(store[i]=='/')
    499) // else goto
    500) printf("\n\tComments removed\n");
    501) i++;
    502) }
    503) else if(next=='/')
    504) {
    505) i++;
    506) while(store[i]!='\n')i++;
    507) i++;
    508) printf("\n\tComments removed\n");
    509) }
    510) else{
    511) opM[op][0]='"\"';
    512) op++;
    513) }
    514) //output(DIV);
    515) break;

    516) case ':':


    517) i++;
    518) spM[sp]=':';
    519) sp++;
    520) //output(COLON);
    521) break;

    522) case ';':


    523) i++;
    524) spM[sp]=';';
    525) sp++;
    526) //output(SCOLON);
    527) break;

    528) case '?':


    529) i++;
    530) spM[sp]='+';
    531) sp++;
    532) //output(TERNARY);
    533) break;
    534) case '\"':
    535) i++;
    536) spM[sp]=ch;
    537) sp++;
    538) //output(DQ);
    539) break;

    540) case '\'':


    541) i++;
    542) spM[sp]=ch;
    543) sp++;
    544) //output(SQ);
    545) break;
    546) case ',':
    547) i++;
    548) spM[sp]=ch;
    549) sp++;
    550) //output(COMMA);
    551) break;
    552) case '|':
    553) i++;
    554) spM[sp]=ch;
    555) sp++;
    556) //output(PLINE);
    557) break;
    558) case '^':
    559) i++;
    560) spM[sp]=ch;
    561) sp++;
    562) //output(CARAT);
    563) break;
    564) case '[':
    565) i++;
    566) spM[sp]=ch;
    567) sp++;
    568) output(OSB);
    569) break;
    570) case ']':
    571) i++;

    572) spM[sp]=ch;573) sp++;


    574) output(CSB);
    575) break;
    576) case '#':
    577) i++;
    578) spM[sp]=ch;
    579) sp++;
    580) output(HSH);
    581) break;
    582) case '%':
    583) i++;
    584) spM[sp]=ch;
    585) sp++;
    586) output(PER);
    587) break;
    588) /* case '!':
    589) i++;
    590) sp++;
    591) output(NOTEQU);
    592) break; */
    593) case '&':
    594) i++;
    595) spM[sp]=ch;
    596) sp++;
    597) output(AND);
    598) break;
    599) case '\\':
    600) i++;
    601) spM[sp]=ch;
    602) sp++;
    603) output(BSH);
    604) break;
    605) case '.':
    606) i++;
    607) spM[sp]=ch;
    608) sp++;
    609) output(DOT);
    610) break;
    611) default:
    612) if (isalpha(store[i]))
    613) {
    614) j = 0;
    615) while(isalpha(store[i])) 616) lexeme[j++] = store[i++]; 617) lexeme[j] = '\0';
    618) output(search(lexeme));


    Download 3.06 Mb.

    Do'stlaringiz bilan baham:
  • 1   2   3   4   5




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
    ma'muriyatiga murojaat qiling