锘??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>
            另类激情亚洲| 欧美国产亚洲精品久久久8v| 在线视频日韩| 国产精品国产一区二区| 香蕉久久夜色精品国产使用方法 | 亚洲精品久久嫩草网站秘色| 欧美激情导航| 亚洲免费影视| 欧美一区在线直播| 亚洲丰满少妇videoshd| 日韩午夜在线| 国产日韩亚洲欧美精品| 欧美成人午夜77777| 欧美精品一区二区三区高清aⅴ| 亚洲色图在线视频| 亚洲欧美一区二区精品久久久| 国产一区二区在线观看免费| 欧美福利一区二区三区| 国产精品av一区二区| 久久精品亚洲一区二区| 美玉足脚交一区二区三区图片| 一本久久综合| 欧美中文字幕在线视频| 在线一区二区日韩| 久久精品日产第一区二区三区| 亚洲日本欧美| 亚洲欧美一区二区原创| 在线观看视频欧美| 一卡二卡3卡四卡高清精品视频| 国产日韩av高清| 亚洲激情偷拍| 精品二区久久| 亚洲一区黄色| 一区二区国产精品| 久久婷婷av| 久久精品视频va| 国产精品劲爆视频| 亚洲精品在线观看视频| 在线观看精品视频| 性娇小13――14欧美| 宅男在线国产精品| 男人天堂欧美日韩| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品久久久久国产a级| 亚洲国产精品一区在线观看不卡| 国产亚洲激情| 亚洲午夜国产一区99re久久| 一区二区免费在线视频| 蜜臀a∨国产成人精品| 久久亚洲高清| 国产欧美一区二区精品仙草咪| 99视频有精品| 99re这里只有精品6| 暖暖成人免费视频| 麻豆精品在线播放| 狠狠色狠色综合曰曰| 午夜精品影院| 久久成人18免费网站| 国产精品亚洲第一区在线暖暖韩国| 91久久在线| 日韩视频不卡中文| 欧美精品18videos性欧美| 亚洲国产免费看| 亚洲区第一页| 欧美精品一卡二卡| 亚洲日韩视频| 夜夜爽99久久国产综合精品女不卡 | 亚洲激情综合| 这里是久久伊人| 国产精品hd| 亚洲视频在线观看三级| 午夜精品美女久久久久av福利| 欧美性猛片xxxx免费看久爱 | 欧美一区二区在线看| 国产精品日韩欧美综合| 欧美亚洲一区三区| 久久香蕉国产线看观看网| 亚洲国产成人91精品 | 99国产精品| 性18欧美另类| 影音先锋日韩有码| 免费成人激情视频| 日韩视频一区二区三区在线播放免费观看 | 国产精品黄视频| 香蕉久久一区二区不卡无毒影院| 久久久噜噜噜久久中文字幕色伊伊| 韩日精品视频一区| 欧美激情aⅴ一区二区三区| 亚洲免费不卡| 久久成人综合视频| 亚洲国产精品高清久久久| 欧美日韩国产区一| 欧美在线观看视频一区二区三区| 麻豆成人综合网| 在线一区亚洲| 激情另类综合| 欧美日韩精品一本二本三本| 欧美伊人久久大香线蕉综合69| 欧美xx视频| 午夜精品一区二区三区四区| 伊人久久大香线蕉综合热线| 欧美日本韩国一区二区三区| 欧美一区二区三区在线免费观看| 欧美高清在线视频| 性色av一区二区三区红粉影视| 在线观看欧美日本| 国产精品一香蕉国产线看观看 | 久久久国产亚洲精品| 日韩亚洲视频在线| 欧美成年人网站| 欧美在线免费一级片| 一本久久知道综合久久| 一区在线影院| 国产精品乱码一区二区三区| 欧美高清视频一区二区三区在线观看| 亚洲综合视频在线| 亚洲精品国产精品乱码不99 | 久久日韩粉嫩一区二区三区| 一区二区三区蜜桃网| 伊人成综合网伊人222| 国产精品五月天| 欧美日韩久久不卡| 欧美va日韩va| 久久男人资源视频| 欧美一区二区三区电影在线观看| 99国产精品久久久久久久成人热 | 国产精品看片资源| 欧美日韩国产综合一区二区| 欧美成人日本| 麻豆乱码国产一区二区三区| 久久精品国产欧美激情| 亚洲免费一在线| 亚洲一二三级电影| 亚洲午夜精品| 亚洲视频综合| 亚洲一区二区高清视频| 日韩亚洲欧美成人一区| 亚洲精品国产视频| 亚洲品质自拍| 亚洲精品1区2区| 91久久中文字幕| 亚洲乱码国产乱码精品精天堂| 亚洲国内高清视频| 亚洲国产欧美不卡在线观看| 亚洲电影有码| 亚洲七七久久综合桃花剧情介绍| 亚洲韩国青草视频| 亚洲三级国产| 一个色综合av| 亚洲综合国产激情另类一区| 亚洲小说区图片区| 午夜欧美理论片| 久久爱www| 另类尿喷潮videofree | 欧美在线视频一区二区三区| 久久精品99无色码中文字幕 | 暖暖成人免费视频| 欧美日韩高清在线观看| 国产精品免费电影| 国产亚洲欧洲一区高清在线观看| 国内久久婷婷综合| 亚洲国产精品久久| 亚洲视频一二三| 性欧美激情精品| 看欧美日韩国产| 91久久精品国产91久久| 亚洲天堂偷拍| 久久爱另类一区二区小说| 欧美77777| 欧美性大战久久久久久久| 国产亚洲欧美一区二区| 亚洲国产欧美一区二区三区同亚洲| 99国产欧美久久久精品| 性久久久久久久久久久久| 你懂的网址国产 欧美| 亚洲精品资源| 欧美伊人久久| 欧美日韩国产综合网| 国内成+人亚洲| 99国产精品国产精品毛片| 久久精品国产2020观看福利| 亚洲电影av在线| 新狼窝色av性久久久久久| 欧美电影在线观看完整版| 国产欧美一区二区三区视频| 日韩亚洲在线| 久久亚洲精品欧美| 一本色道久久精品| 美女免费视频一区| 国产伦精品一区二区三区照片91 | 亚洲电影免费观看高清完整版在线 | 麻豆精品一区二区av白丝在线| 亚洲精品国产精品乱码不99| 欧美一区二区视频97| 欧美激情综合亚洲一二区| 国产一区观看| 亚洲欧美色婷婷| 亚洲国产精品精华液2区45| 欧美一区二区成人6969| 欧美性做爰猛烈叫床潮|