锘??xml version="1.0" encoding="utf-8" standalone="yes"?>黄色一区二区在线,黑人一区二区三区四区五区,久久久国产成人精品http://m.shnenglu.com/SysProgrammer/archive/2009/12/24/104001.htmlRenoRenoThu, 24 Dec 2009 15:51:00 GMThttp://m.shnenglu.com/SysProgrammer/archive/2009/12/24/104001.htmlhttp://m.shnenglu.com/SysProgrammer/comments/104001.htmlhttp://m.shnenglu.com/SysProgrammer/archive/2009/12/24/104001.html#Feedback0http://m.shnenglu.com/SysProgrammer/comments/commentRss/104001.htmlhttp://m.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://m.shnenglu.com/SysProgrammer/archive/2009/12/23/103847.htmlRenoRenoWed, 23 Dec 2009 14:03:00 GMThttp://m.shnenglu.com/SysProgrammer/archive/2009/12/23/103847.htmlhttp://m.shnenglu.com/SysProgrammer/comments/103847.htmlhttp://m.shnenglu.com/SysProgrammer/archive/2009/12/23/103847.html#Feedback0http://m.shnenglu.com/SysProgrammer/comments/commentRss/103847.htmlhttp://m.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://m.shnenglu.com/SysProgrammer/archive/2009/12/23/103848.htmlRenoRenoWed, 23 Dec 2009 14:03:00 GMThttp://m.shnenglu.com/SysProgrammer/archive/2009/12/23/103848.htmlhttp://m.shnenglu.com/SysProgrammer/comments/103848.htmlhttp://m.shnenglu.com/SysProgrammer/archive/2009/12/23/103848.html#Feedback0http://m.shnenglu.com/SysProgrammer/comments/commentRss/103848.htmlhttp://m.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://m.shnenglu.com/SysProgrammer/archive/2009/12/23/103842.htmlRenoRenoWed, 23 Dec 2009 13:57:00 GMThttp://m.shnenglu.com/SysProgrammer/archive/2009/12/23/103842.htmlhttp://m.shnenglu.com/SysProgrammer/comments/103842.htmlhttp://m.shnenglu.com/SysProgrammer/archive/2009/12/23/103842.html#Feedback0http://m.shnenglu.com/SysProgrammer/comments/commentRss/103842.htmlhttp://m.shnenglu.com/SysProgrammer/services/trackbacks/103842.html闃呰鍏ㄦ枃

Reno 2009-12-23 21:57 鍙戣〃璇勮
]]>
榪愬姩璺嚎鎺у埗鑴氭湰璇█http://m.shnenglu.com/SysProgrammer/archive/2009/12/23/Reno.htmlRenoRenoWed, 23 Dec 2009 08:58:00 GMThttp://m.shnenglu.com/SysProgrammer/archive/2009/12/23/Reno.htmlhttp://m.shnenglu.com/SysProgrammer/comments/103817.htmlhttp://m.shnenglu.com/SysProgrammer/archive/2009/12/23/Reno.html#Feedback2http://m.shnenglu.com/SysProgrammer/comments/commentRss/103817.htmlhttp://m.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>
            国产人成精品一区二区三| 亚洲欧美视频在线观看| 亚洲精品国产欧美| 欧美国产日韩精品| 国产精品av免费在线观看| 欧美一区二区三区婷婷月色| 亚洲一区二区三区精品视频| 欧美激情综合在线| 在线观看成人网| 欧美视频一区二区三区四区 | 韩国一区电影| 老色批av在线精品| 亚洲激情视频| 欧美激情影音先锋| 国产精品久久99| 亚洲视频在线看| 欧美日产在线观看| 在线性视频日韩欧美| 久久视频这里只有精品| 欧美激情免费观看| 亚洲国产小视频| 欧美高清视频www夜色资源网| 亚洲国产91精品在线观看| 夜夜嗨av一区二区三区四季av| 好吊妞**欧美| 久久久久久**毛片大全| 国产精品视频免费| 久久精品九九| 99国产精品一区| 国产一区二区三区在线观看免费| 久久天天狠狠| 欧美一区二区三区啪啪| 亚洲欧美久久久| 在线一区视频| 欧美亚洲三级| 欧美一级二区| 夜夜嗨一区二区三区| 91久久精品美女高潮| 欧美日韩国产三级| 在线视频欧美日韩| 欧美一区二区三区免费大片| 久久精品青青大伊人av| 午夜视频在线观看一区二区| 在线电影国产精品| 亚洲精品在线免费| 一区一区视频| 国产欧美日韩一区二区三区| 国产目拍亚洲精品99久久精品| 国内揄拍国内精品少妇国语| 亚洲在线成人| 亚洲一区二区少妇| 日韩写真在线| 久久色在线播放| 欧美大尺度在线| 另类图片国产| 久热re这里精品视频在线6| 欧美一区二区三区视频在线观看| 亚洲午夜视频在线| 中文亚洲字幕| 亚洲在线观看免费视频| 亚洲一区二区三区免费观看| 亚洲系列中文字幕| 午夜国产不卡在线观看视频| 午夜一区不卡| 午夜影视日本亚洲欧洲精品| 亚洲欧美日韩综合| 先锋影院在线亚洲| 久久久久久久综合色一本| 欧美一区二区三区在| 欧美专区在线观看一区| 久久精品日韩一区二区三区| 久久综合中文字幕| 亚洲黄色在线观看| 99成人在线| 欧美一区二区在线播放| 久久久久**毛片大全| 久久亚洲综合网| 欧美不卡福利| 国产精品老牛| 亚洲国产精品va在线看黑人动漫| 亚洲精品国产精品久久清纯直播 | 男人天堂欧美日韩| 亚洲激情在线观看视频免费| 日韩网站在线观看| 欧美一区久久| 欧美精品激情在线| 国产亚洲精品美女| 一本一本久久a久久精品综合麻豆| 亚洲男人影院| 亚洲高清三级视频| 亚洲影院高清在线| 久久夜色精品国产| 国产精品久久福利| 亚洲国产天堂久久综合| 小嫩嫩精品导航| 亚洲电影免费在线观看| 香蕉久久一区二区不卡无毒影院| 欧美xxxx在线观看| 欧美一区二区三区日韩| 欧美另类在线观看| 一区在线电影| 欧美亚洲三区| 日韩一区二区精品| 麻豆精品精品国产自在97香蕉| 国产精品捆绑调教| 99精品免费视频| 国产精品vvv| 欧美日韩mp4| 国产日韩精品在线播放| 亚洲精品视频一区| 玖玖综合伊人| 亚洲欧美日韩一区二区三区在线观看 | 久久久欧美精品sm网站| 国产精品二区影院| 亚洲美女av电影| 国产日韩精品一区二区| 一区二区欧美国产| 老司机免费视频一区二区三区| 一区二区三区高清视频在线观看| 久久综合九色99| 狠狠色2019综合网| 久久国产一区二区| 亚洲综合日韩| 国产毛片久久| 欧美亚洲网站| 午夜视频一区在线观看| 欧美另类一区| 一本久久综合| 亚洲精品社区| 欧美吻胸吃奶大尺度电影| 9久re热视频在线精品| 91久久极品少妇xxxxⅹ软件| 免费试看一区| 在线观看91久久久久久| 久久综合久久综合久久综合| 久久国产黑丝| 亚洲国产高清视频| 亚洲国产精品一区二区尤物区 | 国产日韩亚洲欧美精品| 欧美一区二区三区成人| 亚洲一区二区三区高清| 国产欧美在线播放| 欧美在线黄色| 久久午夜影视| 亚洲美女性视频| 亚洲少妇最新在线视频| 国产精品久久毛片a| 午夜精品久久99蜜桃的功能介绍| 国产精品99久久久久久久久久久久| 国产精品嫩草99av在线| 久久精品国产2020观看福利| 久久精品视频在线免费观看| 亚洲国产三级网| 99国产精品久久久久久久久久| 欧美午夜不卡视频| 久久九九精品| 免费久久久一本精品久久区| av成人老司机| 亚洲综合视频1区| 欧美91大片| 亚洲毛片在线免费观看| 亚洲欧美日韩国产综合精品二区| 亚洲欧美资源在线| 亚洲三级影片| 欧美日韩精品一区| 欧美一区午夜精品| 久久久久久亚洲综合影院红桃| 亚洲国产一区二区在线| 亚洲国产美女精品久久久久∴| 欧美午夜精品久久久| 美女视频黄免费的久久| 欧美日韩爆操| 久久久亚洲国产美女国产盗摄| 欧美1区2区| 亚洲欧美一区二区三区久久| 久久一区二区三区四区| 在线视频精品一区| 久久精品国产一区二区三| 99在线热播精品免费99热| 久久9热精品视频| 久久人人爽人人爽爽久久| 久久中文字幕一区二区三区| 欧美一区二区三区免费观看视频| 欧美国产丝袜视频| 欧美激情亚洲自拍| 亚洲天堂久久| 老司机精品久久| 亚洲女同同性videoxma| 久久精品30| 亚洲欧美另类中文字幕| 老司机成人网| 久久综合电影一区| 欧美日韩专区在线| 亚洲国产视频一区| 黄色成人免费观看| 亚洲一区二区综合| 一本色道久久88亚洲综合88| 欧美成人午夜影院| 久久人人97超碰人人澡爱香蕉| 国产精品久久久久久久久借妻|