锘??xml version="1.0" encoding="utf-8" standalone="yes"?>黄色一区二区在线,黑人一区二区三区四区五区,久久久国产成人精品http://www.shnenglu.com/SysProgrammer/archive/2009/12/24/104001.htmlRenoRenoThu, 24 Dec 2009 15:51:00 GMThttp://www.shnenglu.com/SysProgrammer/archive/2009/12/24/104001.htmlhttp://www.shnenglu.com/SysProgrammer/comments/104001.htmlhttp://www.shnenglu.com/SysProgrammer/archive/2009/12/24/104001.html#Feedback0http://www.shnenglu.com/SysProgrammer/comments/commentRss/104001.htmlhttp://www.shnenglu.com/SysProgrammer/services/trackbacks/104001.html
// Unnamed simple script language products define as the flowing:
program ::= declaration_list
declaration_list ::= var_declaration | fun_declaration
var_declaration ::= DECLARE type_specifier_list ID; END
type_specifier_list ::= type_specifier type_specifier_list | EMPTY
type_specifier ::= VAR
fun_declaration ::= BEGIN statement_list END
statement_list ::= statement statement_list | EMPTY
statement ::= expression_stmt | compund_list | selection_stmt | iteration_stmt
expression_stmt ::= expression; | ;
compund_list ::= { statement_list }
selection_stmt :: IF ( expression ) statement | IF ( expression ) statement ELSE statement
ireation_stmt ::= WHILE ( expression ) statement
expression ::= var = expression | simple_expression
var ::= ID
simple_expression ::= additive_expression relop additive_expression | additive_expression
relop ::= <= | < | > | >= | == | !=
additive_expression ::= additive_expression addop term | term
addop ::= + | -
term ::= term mulop factor | factor
mulop ::= * | /
factor ::= ( expression ) | var | NUM

Reno 2009-12-24 23:51 鍙戣〃璇勮
]]>
PathInterpreter.hhttp://www.shnenglu.com/SysProgrammer/archive/2009/12/23/103847.htmlRenoRenoWed, 23 Dec 2009 14:03:00 GMThttp://www.shnenglu.com/SysProgrammer/archive/2009/12/23/103847.htmlhttp://www.shnenglu.com/SysProgrammer/comments/103847.htmlhttp://www.shnenglu.com/SysProgrammer/archive/2009/12/23/103847.html#Feedback0http://www.shnenglu.com/SysProgrammer/comments/commentRss/103847.htmlhttp://www.shnenglu.com/SysProgrammer/services/trackbacks/103847.html 

  1 #ifndef PATH_INTERPRETER
  2 #define PATH_INTERPRETER
  3 
  4 #define WIN32_LEAN_AND_MEAN
  5 #include <windows.h>
  6 #include <string.h>
  7 #include <stdlib.h>
  8 #include <ctype.h>
  9 #include <string>
 10 #include <list>
 11 
 12 using std::string;
 13 using std::list;
 14 
 15 #define MAX_WORD_LEN 8 // 8 Bytes
 16 
 17 class ContexScan;
 18 
 19 // CPathScriptLoader
 20 class CPathScriptLoader
 21 {
 22 public:
 23  string Context;
 24 
 25  void LoadScript( const char *szFile );
 26 };
 27 
 28 //
 29 // Contex Lex
 30 //
 31 //
 32 // ContexScan
 33 class ContexScan
 34 {
 35 public:
 36  enum ScanState { WORD, NOPRINT, };
 37 
 38 public:
 39  ContexScan();
 40  ~ContexScan();
 41 
 42  void SetExpression( const char *szExpr );
 43 
 44  bool SkipWord( const char *szWord );
 45  char *  GetNextWord();
 46  char *  CurrentWord() { return m_szCurrWord; }
 47  bool NextWord();
 48  void RebackWordByCount( int n ); // 閫鍑犱釜?
 49  void RebackNearestWordByName( const char *szWord ); // 閫鍒板摢涓?
 50 
 51 private:
 52  char * m_szExpr;
 53  char * m_pLastChar;
 54  char * m_pCurrChar;
 55  char m_szCurrWord[MAX_WORD_LEN];
 56  ScanState m_eState;
 57 };
 58 
 59 //
 60 // Syntax Tree Nodes
 61 //
 62 // AbstractNode
 63 class AbstractNode
 64 {
 65 public:
 66    AbstractNode( ContexScan& contex );
 67  virtual ~AbstractNode();
 68 
 69  virtual void Parse() = 0;
 70 
 71 protected:
 72  ContexScan& m_RefContexScan;
 73  list<AbstractNode *> m_Nodes;
 74 };
 75 
 76 // ProgramNode
 77 class ProgramNode : public AbstractNode
 78 {
 79 public:
 80    ProgramNode( ContexScan& contex );
 81  virtual ~ProgramNode();
 82 
 83  virtual void Parse();
 84 };
 85 
 86 // CommandListNode
 87 class CommandListNode : public AbstractNode
 88 {
 89 public:
 90    CommandListNode( ContexScan& contex );
 91  virtual ~CommandListNode();
 92 
 93  virtual void Parse();
 94 };
 95 
 96 // CommandNode
 97 class CommandNode : public AbstractNode
 98 {
 99 public:
100    CommandNode( ContexScan& contex );
101  virtual ~CommandNode();
102 
103  virtual void Parse();
104 };
105 
106 // RepeatNode
107 class RepeatNode : public AbstractNode
108 {
109 public:
110    RepeatNode( ContexScan& contex );
111  virtual ~RepeatNode();
112 
113  virtual void Parse();
114 };
115 
116 // BlockNode
117 class BlockNode : public AbstractNode
118 {
119 public:
120    BlockNode( ContexScan& contex );
121  virtual ~BlockNode();
122 
123  virtual void Parse();
124 };
125 
126 // PrimitiveNode
127 class PrimitiveNode : public AbstractNode
128 {
129 public:
130    PrimitiveNode( ContexScan& contex );
131  virtual ~PrimitiveNode();
132 
133  virtual void Parse();
134 };
135 
136 // CPathInterpret
137 // The Interpreter Facade interface
138 class CPathInterpret
139 {
140 public:
141  enum InterpretMode { NDEBUG, DEBUG, };
142 
143 public:
144  static InterpretMode m_Mode;
145 
146 public:
147  void LoadScript( const char *szFile );
148  void Interpret( InterpretMode mode = NDEBUG );
149 
150 private:
151  CPathScriptLoader m_ScriptLoader;
152  ContexScan   m_ContexScaner;
153 
154 };
155 
156 #endif // PATH_INTERPRETER
157 


Reno 2009-12-23 22:03 鍙戣〃璇勮
]]>
ConsoleMain.cpphttp://www.shnenglu.com/SysProgrammer/archive/2009/12/23/103848.htmlRenoRenoWed, 23 Dec 2009 14:03:00 GMThttp://www.shnenglu.com/SysProgrammer/archive/2009/12/23/103848.htmlhttp://www.shnenglu.com/SysProgrammer/comments/103848.htmlhttp://www.shnenglu.com/SysProgrammer/archive/2009/12/23/103848.html#Feedback0http://www.shnenglu.com/SysProgrammer/comments/commentRss/103848.htmlhttp://www.shnenglu.com/SysProgrammer/services/trackbacks/103848.html 

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include "PathInterpreter.h"
 4 
 5 int main( int argc, char *argv[] )
 6 {
 7  if ( argc < 2 )
 8  {
 9   printf( "Usage: ExecuableFileName ScriptFileName [-DEBUG|-debug] \n" );
10   return 0;
11  }
12 
13  if ( argc > 3 )
14  {
15   printf( "Warning: More parameters have expected, after the third has ignored!\n" );
16   return 0;
17  }
18 
19  CPathInterpret Instance;
20  Instance.LoadScript( argv[1] );
21  if ( argc == 3 )
22  {
23   if ( strcmp( argv[2], "-DEBUG" ) == 0 || strcmp( argv[2], "-debug" ) == 0 )
24    Instance.Interpret( CPathInterpret::DEBUG );
25   else
26    printf( "Warning: Unknown about the third parameter!\n" );
27  }
28  else
29   Instance.Interpret();
30 
31  return 0;
32 }
33 
34 

 



Reno 2009-12-23 22:03 鍙戣〃璇勮
]]>
PathInterpreter.cpphttp://www.shnenglu.com/SysProgrammer/archive/2009/12/23/103842.htmlRenoRenoWed, 23 Dec 2009 13:57:00 GMThttp://www.shnenglu.com/SysProgrammer/archive/2009/12/23/103842.htmlhttp://www.shnenglu.com/SysProgrammer/comments/103842.htmlhttp://www.shnenglu.com/SysProgrammer/archive/2009/12/23/103842.html#Feedback0http://www.shnenglu.com/SysProgrammer/comments/commentRss/103842.htmlhttp://www.shnenglu.com/SysProgrammer/services/trackbacks/103842.html闃呰鍏ㄦ枃

Reno 2009-12-23 21:57 鍙戣〃璇勮
]]>
榪愬姩璺嚎鎺у埗鑴氭湰璇█http://www.shnenglu.com/SysProgrammer/archive/2009/12/23/Reno.htmlRenoRenoWed, 23 Dec 2009 08:58:00 GMThttp://www.shnenglu.com/SysProgrammer/archive/2009/12/23/Reno.htmlhttp://www.shnenglu.com/SysProgrammer/comments/103817.htmlhttp://www.shnenglu.com/SysProgrammer/archive/2009/12/23/Reno.html#Feedback2http://www.shnenglu.com/SysProgrammer/comments/commentRss/103817.htmlhttp://www.shnenglu.com/SysProgrammer/services/trackbacks/103817.html鏈榪戝湪鍋氫豢闆風數鐨勬父鎴忥紝鍏朵腑鏁屼漢椋炶埞鐨勮繍鍔ㄨ礬綰垮拰鐗瑰緛闇瑕佽兘鐏墊椿鐨勮緗紝騫朵笖灝介噺灝戝姩鍏朵粬閮ㄥ垎鐨勪唬鐮侊紝浜庢槸鎴戠殑鎯蟲硶鏄妸姣忕綾誨瀷鐨勯鑸規寚瀹氱殑榪愬姩璺嚎瀛樺叆鑴氭湰涓紝鐒跺悗鐢卞紩鎿庢牴鎹剼鏈墽琛?
鍥犳鍙互鎶婇鑸圭殑璺嚎鐪嬫垚鏄敱涓緋誨垪鐨勫叧閿偣緇勬垚錛屾瘡涓偣鏈夋瘮濡?涓睘鎬э紝X閫熷害錛孻閫熷害鍜屼繚鎸佽閫熷害鐨勬寔緇椂闂淬傝岃礬綰跨殑榪愬姩杞ㄨ抗鍙互鐢辯畝鍗曠殑鑴氭湰璇█鏉ュ畾涔夛紝姣斿涔熻闇瑕佸湪鏌愬嚑涓偣涔嬮棿閲嶅縐誨姩涓瀹氱殑嬈℃暟銆?/p>

浠ヤ笅鏄竴涓猄cript Demo:

GO
    BEGIN
        1.0 0.0 500
    END
    BEGIN
        -1.0 0.0 500
    END
    REPEAT 4
        BEGIN
             0.0 1.0 500
        END
        BEGIN
             1.0 0.0 500
        END
        BEGIN
             0.0 -1.0 500
        END
        BEGIN
            -1.0 0.0 500
        END
    END
END

琛ㄧず鍏堝乏鍙崇Щ鍔ㄤ竴嬈★紝鐒跺悗鍚戜笅錛屽悜鍙籌紝鍚戜笂錛屽悜宸﹀憟鐭╁艦縐誨姩4嬈★紝閫氳繃璁劇疆閫熷害鍒嗛噺鍙互瀹炵幇浠諱綍璺嚎鐨勭Щ鍔ㄤ互鍙婂叾浠栫壒寰併?br>璇ヨ剼鏈璦瑙i噴鍣ㄩ噰鐢ㄤ簡2涓璁℃ā寮忥紝Facade鍜孖nterpret妯″紡錛屽叾涓殑瑙i噴鍣ㄤ嬌鐢ㄤ簡鍑犱箮鍜屼換浣曡璁℃ā寮忎功涓婁粙緇嶇殑涓鏍風殑緇撴瀯錛屽緢緇忓吀鍛悀

闄勪笂璇█鐨勬枃娉曞畾涔?
program ::= GO command_list
command_list ::= command* END
command ::= begin_end_block | repeat
begin_end_block ::= BEGIN primitive END // Leaf Node on the Syntax tree
repeat ::= REPEAT INT command_list
primitive ::= SpeedX,SpeedY,Time // Recursive exit

// TestScript.txt
GO
  BEGIN
   1.0,0.0,500
  END
  BEGIN
   -1.0,0.0,500
  END
  REPEAT 4
   BEGIN
    0.0,1.0,500
   END
   BEGIN
    0.0,-1.0,500
   END
  END
END

// Execute result:



Reno 2009-12-23 16:58 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲毛片在线看| 亚洲精品日韩激情在线电影| 这里是久久伊人| 国产精品久久久久毛片软件 | 伊人精品在线| 麻豆精品视频在线| 欧美大片免费| 亚洲一区二区三区成人在线视频精品| 日韩午夜电影| 国产精品欧美日韩| 久久综合五月| 欧美精品三级| 性做久久久久久| 久久免费精品视频| 在线亚洲美日韩| 午夜亚洲福利| 最新国产成人在线观看 | 亚洲欧美日韩精品久久久| 午夜精品久久久久久久99樱桃| 精品福利电影| 一级日韩一区在线观看| 国产亚洲福利一区| 亚洲第一中文字幕| 国产精品久久久久久久浪潮网站 | 久久天天躁夜夜躁狠狠躁2022| 男女精品视频| 久久精品一区二区国产| 欧美精品亚洲精品| 久久夜色精品国产亚洲aⅴ| 欧美激情中文字幕在线| 久久九九免费| 欧美色道久久88综合亚洲精品| 蜜桃av噜噜一区| 国产精品男女猛烈高潮激情| 亚洲高清色综合| 国产自产2019最新不卡| 在线一区二区三区四区| 亚洲日本理论电影| 欧美一级欧美一级在线播放| 亚洲午夜在线视频| 欧美好骚综合网| 久久久免费av| 国产乱码精品1区2区3区| 亚洲国产综合在线| 亚洲第一成人在线| 久久爱www.| 欧美中在线观看| 国产精品久久久久久久久婷婷| 亚洲高清影视| 亚洲成在线观看| 久久精品国产v日韩v亚洲| 亚洲欧美日韩在线一区| 欧美色图一区二区三区| 亚洲人人精品| 99精品热6080yy久久| 欧美激情第二页| 亚洲国产精品va在线观看黑人| 在线看片第一页欧美| 久久精品国产一区二区三| 久久国产夜色精品鲁鲁99| 国产精品制服诱惑| 亚洲视频在线播放| 亚洲欧洲99久久| 国产精品丝袜91| 午夜久久久久| 久久久999精品免费| 国产亚洲日本欧美韩国| 欧美一区二区大片| 久久午夜国产精品| 亚洲高清毛片| 欧美福利一区二区三区| 亚洲精品视频在线看| 亚洲一区二区动漫| 国产老女人精品毛片久久| 翔田千里一区二区| 免费亚洲一区二区| 亚洲久久一区| 欧美午夜无遮挡| 亚洲欧美第一页| 久久视频在线免费观看| 亚洲激情网站免费观看| 欧美精品v日韩精品v国产精品| 亚洲免费观看视频| 欧美在线视频一区二区三区| 国产一区二区观看| 欧美插天视频在线播放| 亚洲六月丁香色婷婷综合久久| 亚洲一区二区三区中文字幕| 国产欧美一区二区三区在线老狼 | 欧美连裤袜在线视频| 亚洲一区二区黄| 久久综合伊人77777尤物| 亚洲精品视频免费| 国产乱人伦精品一区二区| 久久久精品性| 亚洲色图制服丝袜| 美女视频一区免费观看| 亚洲一区成人| 亚洲电影在线看| 国产精品视频免费| 牛牛国产精品| 欧美亚洲网站| 日韩视频一区二区三区| 久久久久久久综合| 国产精品99久久不卡二区| 狠狠色综合网站久久久久久久| 欧美啪啪一区| 久久久人成影片一区二区三区观看| 亚洲精品极品| 欧美成人精品一区二区| 性做久久久久久久久| 亚洲免费电影在线| 精品88久久久久88久久久| 国产精品久久久久久av福利软件 | 欧美在线日韩在线| 洋洋av久久久久久久一区| 久久免费精品视频| 午夜精品在线视频| 在线综合视频| 亚洲精品偷拍| 亚洲国产三级在线| 一区二区三区在线免费观看| 国产精品无码永久免费888| 欧美成人在线网站| 久久婷婷久久| 久久成人av少妇免费| 午夜精品网站| 亚洲一区二区三区在线视频| 亚洲伦理中文字幕| 亚洲三级免费| 91久久精品国产91久久| 欧美国产极速在线| 蜜桃av一区二区在线观看| 久久精品综合网| 欧美一区91| 欧美专区亚洲专区| 欧美专区18| 久久久www| 久久婷婷成人综合色| 久久露脸国产精品| 久久综合福利| 欧美a级一区| 欧美多人爱爱视频网站| 欧美激情成人在线| 亚洲第一久久影院| 亚洲国产日韩精品| 亚洲美女精品久久| 一区二区久久久久| 亚洲网站视频| 亚洲欧美日韩一区在线观看| 性高湖久久久久久久久| 久久精品国产亚洲a| 久久午夜精品| 欧美黄在线观看| 国产精品久久久久aaaa九色| 国产欧美日韩精品在线| 黄色成人在线网站| 亚洲日本激情| 亚洲欧美色婷婷| 久久视频在线看| 亚洲国产欧美一区二区三区同亚洲| 亚洲全部视频| 午夜精品久久久久久| 久久免费99精品久久久久久| 欧美成人a∨高清免费观看| 欧美区视频在线观看| 国产精品久久久久久久9999| 国产亚洲欧洲一区高清在线观看| 在线播放亚洲| 亚洲婷婷综合久久一本伊一区| 欧美一区2区三区4区公司二百| 久久亚洲综合| 99精品热视频只有精品10| 亚洲欧美日韩一区二区| 乱人伦精品视频在线观看| 欧美日韩亚洲一区二区三区在线 | 国产精品国色综合久久| 伊人婷婷欧美激情| 亚洲一区尤物| 欧美成人xxx| 亚洲综合大片69999| 另类国产ts人妖高潮视频| 欧美视频网址| 在线观看欧美亚洲| 亚洲一区成人| 亚洲国产精品电影在线观看| 亚洲午夜精品一区二区| 免费成人黄色片| 国产一区二区三区视频在线观看| 日韩视频免费观看高清完整版| 久久黄色网页| 在线视频你懂得一区二区三区| 美女日韩在线中文字幕| 国产一区二区日韩| 亚洲免费在线观看视频| 亚洲人成在线免费观看| 久久综合久色欧美综合狠狠| 国产麻豆视频精品| 亚洲亚洲精品三区日韩精品在线视频| 美女黄毛**国产精品啪啪|