ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

±àÒëÔ­ÀíµÝ¹éϽµ·ÖÎö·¨(Ò»)
2013-11-20 14:23:25 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:421´Î
Tags£º±àÒë Ô­Àí Ͻµ ·ÖÎö·¨

    ½ñÌìÎÒÃÇÀ´¿´¿´±àÒëÔ­ÀíÖеĵݹéϽµ·ÖÎö·¨£¬·Ñ»°¾Í²»¶à˵ÁË£¬Ö±½ÓÉÏ´úÂëÁË£º
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    char prog[80],token ;
    char ch;
    int syn=-1,p,t;
    void scanner£¨£©£»
    void statement£¨£©£»
    void expression_r£¨£©£»
    void term£¨£©£»
    void factor£¨£©£»
    void getcha£¨£©
    {
    ch=prog[p++];
    }
    void getbc£¨£©
    {
    while£¨prog[p]==' '£©
    p++;
    getcha£¨£©£»
    }
    void concat£¨£©
    {
    token[t++]=ch;
    }
    bool letter£¨char ch£©
    {
    if£¨£¨ch>='a'&&ch<='z'£©||£¨ch>='A'&&ch<='Z'£©£©
    return true;
    return false;
    }
    bool digit£¨char ch£©
    {
    if£¨ch>='0'&&ch<='9'£©
    return true;
    return false;
    }
    int reserve£¨£©
    {
    token[t++]='\0';
    if£¨strcmp£¨token,"begin"£©==0£© return 1;
    if£¨strcmp£¨token,"end"£©==0£© return 6;
    if£¨strcmp£¨token,"if"£©==0£© return 2;
    if£¨strcmp£¨token,"then"£©==0£© return 3;
    if£¨strcmp£¨token,"else"£©==0£© return 7;
    if£¨strcmp£¨token,"while"£©==0£© return 4;
    if£¨strcmp£¨token,"do"£©==0£© return 5;
    return 10;
    }
    void retract£¨£©
    {
    p--;
    }
    int dtb£¨£©
    {
    token[t++]='\0';
    int i=atoi£¨token£©£»
    return i;
    }
    void Irparse£¨£©
    {
    scanner£¨£©£»
    statement£¨£©£»
    while£¨syn==26£©//;
    {
    scanner£¨£©£»
    statement£¨£©£»
    }
    }
    void statement£¨£©
    {
    if£¨syn==10£©
    {
    scanner£¨£©£»
    if£¨syn==18£©
    {
    scanner£¨£©£»
    expression_r£¨£©£»
    }
    else
    {
    printf£¨"Óï·¨·ÖÎö³ö´í£¡ Çë¼ì²é±í´ïʽÊÇ·ñº¬£º=\n"£©£»return ;
    }
    }
    else
    {
    //printf£¨"Óï·¨·ÖÎö³ö´í£¡  Çë¼ì²éÓï¾äÊÇ·ñÕýÈ·\n"£©£»return 0;
    }
    }
    void expression_r£¨£©
    {
    term£¨£©£»
    while£¨syn==13||syn==14£©//+ -
    {
    scanner£¨£©£»
    term£¨£©£»
    }
    }
    void term£¨£©
    {
    factor£¨£©£»
    while£¨syn==15||syn==16£©//* /
    {
    scanner£¨£©£»
    factor£¨£©£»
    }
    }
    void factor£¨£©
    {
    if£¨syn==10||syn==11£©
    {
    scanner£¨£©£»
    }
    else if£¨syn==27£©
    {
    scanner£¨£©£»
    expression_r£¨£©£»
    if£¨syn==28£©
    {
    scanner£¨£©£»
    }
    else {printf£¨"Óï·¨·ÖÎö³ö´í£¡ Çë¼ì²éÊÇ·ñȱÉÙ'£©'\n"£©£»return;}
    }
    else {printf£¨"Óï·¨·ÖÎö³ö´í£¡ Çë¼ì²éÊÇ·ñÊäÈë·Ç·¨×Ö·û\n"£©£»return;}
    }

   

Ê×Ò³ ÉÏÒ»Ò³ 1 2 3 4 5 6 ÏÂÒ»Ò³ βҳ 1/6/6
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºC++ÖÐ×Ö·û´®Á½´Î·­×ª ÏÂһƪ£ºC++ »ñµÃÎļþ´óСµÄ·½·¨

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Linuxϵͳ¼ò½é (2025-12-25 21:55:25)
¡¤Linux°²×°MySQL¹ý³Ì (2025-12-25 21:55:22)
¡¤Linuxϵͳ°²×°½Ì³Ì£¨ (2025-12-25 21:55:20)
¡¤HTTP Åc HTTPS µÄ²î„ (2025-12-25 21:19:45)
¡¤ÍøÕ¾°²È«±ØÐ޿ΣºÍ¼ (2025-12-25 21:19:42)