• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-91  評(píng)論-137  文章-0  trackbacks-0
            1.類(lèi)的定義
            1 class a [inherit Object]
            2 end class

            2.類(lèi)中可以包含(聲明,函數(shù),新類(lèi)。其中除了class都含有public、private、protected和static屬性)
            1 class a
            2     [public] declare a as string // 聲明
            3 
            4     [private] [static] function main() // 函數(shù)
            5     end function
            6 
            7     class b // 新類(lèi)
            8     end class
            9 end class
            3.變量聲明
            1 declare a as integer[,b as integer]
            4.函數(shù)
            1 function main([a as integer[,b as integer]])[as integer]
            2 end function
            5.stmt_list包含聲明語(yǔ)句、if語(yǔ)句、do語(yǔ)句、while語(yǔ)句、for語(yǔ)句、switch語(yǔ)句和experience表達(dá)式
            6.if語(yǔ)句
            1 if experience then
            2 stmt_list
            3 [else stmt_list]
            4 end if
            7.do語(yǔ)句
            1 do
            2 stmt_list
            3 while experience end
            8.while語(yǔ)句
            1 while experience do
            2 stmt_list
            3 end while
            9.for語(yǔ)句
            1 for stmt_list to experience by stmt_list do
            2 stmt_list
            3 next
            10.switch語(yǔ)句
            1 switch experience do
            2 case experience:
            3 [stmt_list]
            4 [case experience:
            5 [stmt_list]]
            6 [default:
            7 [stmt_list]]
            8 end switch
            11.experience表達(dá)式
             1 函數(shù)調(diào)用語(yǔ)句
             2 賦值語(yǔ)句
             3 symbol
             4 string
             5 number
             6 true
             7 false
             8 (+|-)experience
             9 not experience
            10 experience (&|||^|%) experience
            11 experience (>|<|>=|<=|==|!=) experience
            12 experience (+|-|*|/) experience
            13 ++symbol
            14 --symbol
            15 symbol++
            16 symbol--
            12.函數(shù)調(diào)用語(yǔ)句
            1 函數(shù)名(參數(shù)表)
            13.賦值語(yǔ)句
            1 變量=experience

            組合子代碼
             1     program = *item;
             2     item = declare_desc |
             3             class_desc |
             4             function_desc;
             5     property_desc = str_public |
             6                     str_private |
             7                     str_protected;
             8     declare_type = str_integer |
             9                     str_string |
            10                     str_bool |
            11                     str_real |
            12                     type_symbol;
            13     paramter_desc_list = (type_symbol + str_as + declare_type) +
            14                         *(str_comma + type_symbol + str_as + declare_type);
            15     paramter_value_list = exp_desc + *(str_comma + exp_desc);
            16     declare_desc = str_declare + type_symbol + str_as + declare_type +
            17         *(str_comma + type_symbol + str_as + declare_type);
            18     class_desc = str_class + type_symbol +
            19                 Parser_Combinator_Node::opt(str_inherit + type_symbol +
            20                 *(str_comma + (type_symbol & Parser_Combinator_Node::not(str_class | str_function | property_desc | str_static)))
            21                 ) + *class_content_desc + str_end + str_class;
            22     class_content_desc = (Parser_Combinator_Node::opt(property_desc) + Parser_Combinator_Node::opt(str_static) +
            23                         (declare_desc | function_desc)) |
            24                         class_desc;
            25     function_desc = (str_function + type_symbol) +
            26                     (str_leftbracket + Parser_Combinator_Node::opt(paramter_desc_list) + str_rightbracket) +
            27                     Parser_Combinator_Node::opt(str_as + declare_type) +
            28                     stmt_list +
            29                     (str_end + str_function);
            30     stmt_list = *(stmt & Parser_Combinator_Node::not(str_end));
            31     stmt = declare_desc |
            32             if_desc |
            33             do_desc |
            34             while_desc |
            35             for_desc |
            36             switch_desc |
            37             exp_desc;
            38     if_desc = (str_if + exp_desc) +
            39             (str_then + stmt_list) +
            40             Parser_Combinator_Node::opt(str_else + stmt_list) +
            41             (str_end + str_if);
            42     do_desc = (str_do + stmt_list) +
            43                 (str_while + exp_desc + str_end);
            44     while_desc = str_while + exp_desc + str_do + stmt_list + str_end + str_while;
            45     for_desc = str_for + stmt_list + str_to + exp_desc + str_by + stmt_list + str_do + stmt_list + str_next;
            46     switch_desc = str_switch + exp_desc + str_do + case_list + str_end + str_switch;
            47     case_list = *case_desc;
            48     case_desc = (str_case + exp_desc + str_colon + stmt_list) |
            49                 (str_default + str_colon + stmt_list);
            50     assign_desc = type_symbol + str_equal + exp_desc;
            51     call_desc = type_symbol + str_leftbracket + Parser_Combinator_Node::opt(paramter_value_list) + str_rightbracket;
            52     logic_desc = (str_not + compare_desc) |
            53                 (compare_desc + *((str_operator_and | str_operator_or | str_xor | str_mod) + compare_desc));
            54     compare_desc = term_desc + *((str_bigger | str_smaller |
            55                                 str_bigger_equal | str_smaller_equal |
            56                                 str_equal_equal | str_not_equal) + term_desc);
            57     term_desc = factor_desc + *((str_add | str_sub) + factor_desc);
            58     factor_desc = self_desc + *((str_mul | str_div) + self_desc);
            59     self_desc = (str_add_add + type_symbol) |
            60                 (str_sub_sub + type_symbol) |
            61                 (type_symbol + str_add_add) |
            62                 (type_symbol + str_sub_sub) |
            63                 value_desc;
            64     value_desc = call_desc |
            65                 assign_desc |
            66                 type_symbol |
            67                 type_string |
            68                 type_number |
            69                 str_true |
            70                 str_false |
            71                 ((str_add | str_sub) + logic_desc) |
            72                 (str_leftbracket + logic_desc + str_rightbracket);
            73     exp_desc = logic_desc;

            如有任何補(bǔ)充將會(huì)在此文檔更新。
            posted on 2011-06-27 16:36 lwch 閱讀(1156) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): QLanguage
            久久久久久久久无码精品亚洲日韩 | 久久精品国产精品亚洲精品 | 99久久超碰中文字幕伊人| 欧洲人妻丰满av无码久久不卡| 国产精品免费看久久久| 伊人热人久久中文字幕| 亚洲精品97久久中文字幕无码| 97香蕉久久夜色精品国产 | 国产ww久久久久久久久久| 欧美亚洲国产精品久久| av色综合久久天堂av色综合在| 精品人妻伦九区久久AAA片69| 中文字幕久久久久人妻| 精品久久久久久久| 亚洲AV无码久久精品成人 | 色综合久久综合中文综合网| 热re99久久精品国产99热| 国产亚洲精品美女久久久| 久久综合久久伊人| 久久国产精品二国产精品| 色综合久久久久久久久五月| 老司机午夜网站国内精品久久久久久久久 | 免费精品久久天干天干| 日韩精品久久久久久| 色综合久久久久无码专区| 色综合久久久久综合99| 久久人人爽人人爽人人片AV麻豆| 日韩人妻无码一区二区三区久久| 国产香蕉97碰碰久久人人| 国产情侣久久久久aⅴ免费| 亚洲综合精品香蕉久久网| 久久亚洲天堂| 亚洲精品综合久久| 韩国三级中文字幕hd久久精品 | 国产精品久久久福利| 久久99国产精一区二区三区| 久久久久久亚洲精品成人| 亚洲乱码中文字幕久久孕妇黑人| 久久人人爽人人爽人人片av麻烦| 色婷婷狠狠久久综合五月| 午夜精品久久影院蜜桃|