ÔÆÌ⺣ - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

µ±Ç°Î»ÖãºÊ×Ò³ > Ìì½òÀí¹¤´óѧ±àÒëÔ­ÀíʵÑé3£ºÓïÒå·ÖÎöÓëÖмä´úÂëÉú³É

Ìì½òÀí¹¤´óѧ±àÒëÔ­ÀíʵÑé3£ºÓïÒå·ÖÎöÓëÖмä´úÂëÉú³É

  • 62 ´ÎÔĶÁ
  • 3 ´ÎÏÂÔØ
  • 2025/6/15 17:04:52

} }; std::vector source; std::string sourceCode; private:

Lexical.cpp #include \#include #include using namespace ccyg; Lexical::Lexical() { } Lexical::Lexical(std::string s) { } Lexical::~Lexical() { } bool Lexical::analysis() { if (sourceCode.size() == 0) { } source.clear(); identifier.clear(); int number = NULL; for (int i = 0; i <= sourceCode.size(); i++) { if (i == sourceCode.size()) { if (number != NULL) { } source.push_back(sha); return true; µÚ5Ò³ ¹²15Ò³

sourceCode = s; std::cout << \ << std::endl; return false; source.push_back(ide); identifier.push_back(number); number = 0; } } else if (sourceCode[i] >= '0'&& sourceCode[i] <= '9') { } else { } if (number != NULL) { } switch (sourceCode[i]) { case '+': } source.push_back(add); break; source.push_back(sub); break; source.push_back(mul); break; source.push_back(div); break; source.push_back(pow); break; source.push_back(lef); break; source.push_back(rig); break; std::cout << \ << sourceCode[i] << return false; break; source.push_back(ide); identifier.push_back(number); number = 0; number = number * 10 + sourceCode[i] - 48; case '-': case '*': case '/': case '^': case '(': case ')': default: std::endl; source.push_back(sha); µÚ6Ò³ ¹²15Ò³

} return true; void Lexical::printSource() { } char Lexical::toChar(int a) { } void Lexical::setSourceCode(std::string source) { } sourceCode = source; switch (a) { case add: } return 0; return '+'; return '-'; return '*'; return '/'; return '^'; return 'i'; return '('; return ')'; return '#'; break; case sub: case mul: case div: case pow: case ide: case lef: case rig: case sha: default: for (int i = 0; i < source.size(); i++) { } std::cout << \; std::cout << toChar(source[i]);

µÚ7Ò³ ¹²15Ò³

Syntax.h #pragma once #include \namespace ccyg { std::vector symbolStack;// ¶¨Òå·ûºÅÕ» std::vector inputStack; // ¶¨ÒåÊäÈëÕ» std::vector semStack; //¶¨ÒåÓïÒåÕ» bool isSuccess; bool isInitNext; µÚ8Ò³ ¹²15Ò³

class Syntax : public ccyg::Lexical { public: enum Relation //¶¨ÒåÓÅÏȹØÏµÃ¶¾Ù { }; enum Symbol { }; Syntax(std::string = 0); ~Syntax(); bool reduced();//¶¨Òå¹éÔ¼·½·¨ void movein();//¶¨ÒåÒÆ½ø·½·¨ int findOperator();//²éÕÒ×î½üÔËËã·û char toChar(int); bool nextStep(); void initNext(); void printSymbol(); void printSemantic(); bool getSuccess(); E = 9, T = 10, F = 11, P = 12 equal = 0, less = 1, greater = 2, //´íÎó i_i = 3, i_left = 4, left_sharp = 5, right_i = 6, right_left = 7, sharp_right = 8

  • ÊÕ²Ø
  • Î¥¹æ¾Ù±¨
  • °æÈ¨ÈÏÁì
ÏÂÔØÎĵµ10.00 Ôª ¼ÓÈëVIPÃâ·ÑÏÂÔØ
ÍÆ¼öÏÂÔØ
±¾ÎÄ×÷Õߣº...

¹²·ÖÏí92ƪÏà¹ØÎĵµ

Îĵµ¼ò½é£º

} }; std::vector source; std::string sourceCode; private: Lexical.cpp #include \#include #include using namespace ccyg; Lexical::Lexical() { } Lexical::Lexical(std::string s) { } Lexical::~Lexical() { } bool Lexical::analysis() { if (sourceCode.size() == 0) { } source.clear(); identifier.clear(); int number = NULL; for (int i = 0;

¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩
µ¥Æª¸¶·ÑÏÂÔØ
ÏÞÊ±ÌØ¼Û£º10 Ôª/·Ý Ô­¼Û:20Ôª
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºfanwen365 QQ£º370150219
Copyright © ÔÆÌ⺣ All Rights Reserved. ËÕICP±¸16052595ºÅ-3 ÍøÕ¾µØÍ¼ ¿Í·þQQ£º370150219 ÓÊÏ䣺370150219@qq.com