Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

stree.h

Go to the documentation of this file.
00001 #ifndef _STREE_H_
00002 #define _STREE_H_
00003 
00004 #include <iostream>
00005 #include <algorithm>
00006 
00007 #include "streenamedlist.h"
00008 
00009 #define CMainList "MainList"
00010 
00011 #define CStatementList "StatementList"
00012 #define CExpressionList "ExpressionList"
00013 #define CDeclareList "DeclareList"
00014 #define CArrayPairList "ArrayPairList"
00015 #define CTemplateList "TemplateList"
00016 #define CInlineHTMLList "InlineHTMLList"
00017 
00018 #define CPHP "PHP"
00019 #define CEchoPHP "EchoPHP"
00020 
00021 #define CCurlyBraces "CurlyBraces"
00022 #define CSmartyBraces "SmartyBraces"
00023 #define CDoubleQuote "DoubleQuote"
00024 
00025 #define CIf "If"
00026 #define CFor "For"
00027 #define CWhile "While"
00028 #define CDo "Do"
00029 #define CSwitch "Switch"
00030 #define CBreak "Break"
00031 #define CContinue "Continue"
00032 #define CReturn "Return"
00033 #define CGlobal "Global"
00034 #define CStatic "Static"
00035 #define CEcho "Echo"
00036 #define CTemplate "Template"
00037 #define CSmartyAssign "SmartyAssign"
00038 #define CInlineHTML "InlineHTML"
00039 #define CExpression "Expression"
00040 #define CUnset "Unset"
00041 #define CUse "Use"
00042 #define CForeach "Foreach"
00043 #define CDeclare "Declare"
00044 #define CEmptyStatement "EmptyStatement"
00045 #define CFunction "Function"
00046 #define CClass "Class"
00047 
00048 #define CCaseList "CaseList"
00049 #define CEncapsList "EncapsList"
00050 #define CAssignmentList "AssignmentList"
00051 
00052 #define CConst "Const"
00053 #define CCase "Case"
00054 #define CParameter "Parameter"
00055 #define CClassVariable "ClassVariable"
00056 #define CUnaryOperator "UnaryOperator"
00057 #define CPostUnaryOperator "PostUnaryOperator"
00058 #define CBinaryOperator "BinaryOperator"
00059 #define CAList "AList"
00060 #define CEncapsExpr "EncapsExpr"
00061 #define CAskOperator "AskOperator"
00062 #define CExit "Exit"
00063 #define CPrint "Print"
00064 #define CArray "Array"
00065 #define CFunctionCall "FunctionCall"
00066 #define CArrayPair "ArrayPair"
00067 #define CObjectOperator "ObjectOperator"
00068 #define CArrayOperator "ArrayOperator"
00069 #define CMapOperator "MapOperator"
00070 #define OpRef "$"
00071 #define CIsset "Isset"
00072 #define CConstantEncapsedString "ConstantEncapsedString"
00073 #define CPHPVariable "PHPVariable"
00074 #define CConstantString "ConstantString"
00075 
00077 class StatementList : public NamedList{
00078  public:
00080   StatementList() ;
00082   StatementList(Node *statement) ;
00083 
00084   virtual ostream& php(ostream &os) const;  
00085 
00086   virtual Node* copy() const;
00087 };
00088 
00090 class InlineHTMLList : public NamedList{
00091  public:
00093   InlineHTMLList() ;
00095   InlineHTMLList(Node *statement) ;
00096 
00097   virtual ostream& php(ostream &os) const;  
00098 
00099   virtual Node* copy() const;
00100 };
00101 
00103 class TemplateList : public NamedList{
00104  public:
00106   TemplateList() ;
00108   TemplateList(Node *statement);
00109 
00110   virtual ostream& php(ostream &os) const;  
00111 
00112   virtual Node* copy() const;
00113 };
00114 
00116 class ExpressionList : public NamedList{
00117  public:
00119   ExpressionList() ;
00121   ExpressionList(Node *statement) ;
00122 
00123   virtual ostream& php(ostream &os) const;
00124 
00125   virtual Node* copy() const;
00126 };
00127 
00129 class ArrayPairList : public NamedList{
00130  public:
00132   ArrayPairList() ;
00134   ArrayPairList(Node *statement) ;
00135 
00136   virtual ostream& php(ostream &os) const;
00137 
00138   virtual Node* copy() const;
00139 };
00140 
00142 class DeclareList : public NamedList{
00143  public:
00145   DeclareList() ;
00147   DeclareList(Node *statement) ;
00148 
00149   virtual ostream& php(ostream &os) const;  
00150 
00151   virtual Node* copy() const;
00152 };
00153 
00155 class CaseList : public NamedList{
00156  public:
00158   CaseList() ;
00160   CaseList(Node *statement) ;
00161 
00162   virtual ostream& php(ostream &os) const;
00163     
00164   virtual Node* copy() const;
00165 };
00166 
00168 class EncapsList : public NamedList{
00169  public:
00171   EncapsList() ;
00173   EncapsList(Node *statement) ;
00174 
00175   virtual ostream& php(ostream &os) const;  
00176 
00177   virtual Node* copy() const;
00178 
00179   virtual string evaluate(const NameSpace &nameSpace) const;  
00180 };
00181 
00183 class AssignmentList : public NamedList{
00184  public:
00186   AssignmentList() ;
00188   AssignmentList(Node *statement) ;
00189 
00190   virtual ostream& php(ostream &os) const;  
00191   virtual Node* copy() const;
00192 };
00193 
00195 class PHP : public Unary{
00196  public:
00198   PHP(Node *statement);
00199 
00200   virtual ostream& php(ostream &os) const;    
00201   virtual Node* copy() const;
00202 };
00203 
00205 class EchoPHP : public Unary{
00206  public:
00208   EchoPHP(Node *statement) ;
00209 
00210   virtual ostream& php(ostream &os) const;    
00211   virtual Node* copy() const;
00212 };
00213 
00215 class CurlyBraces : public Unary{
00216  public:
00218   CurlyBraces(Node *statement) ;
00219 
00220   virtual ostream& php(ostream &os) const;  
00221 
00222   virtual Node* copy() const;
00223 };
00224 
00226 class SmartyBraces : public Unary{
00227  public:
00229   SmartyBraces(Node *statement) ;
00230 
00231   virtual ostream& php(ostream &os) const;    
00232   virtual Node* copy() const;
00233 };
00234 
00236 class DoubleQuote : public Unary{
00237  public:
00239   DoubleQuote(Node *statement) ;
00240 
00241   virtual ostream& php(ostream &os) const;    
00242   virtual Node* copy() const;
00243 
00244   virtual string evaluate(const NameSpace &nameSpace) const;  
00245 };
00246 
00248 
00254 class If : public Ternary{
00255  public:
00257   If(Node* statement1, Node* statement2, Node* statement3) ;
00258 
00259   virtual ostream& php(ostream &os) const;  
00260 
00261   virtual Node* copy() const;
00262 };
00263 
00265 
00270 class For : public Quadary{
00271  public:
00273   For(Node* statement1, Node* statement2, Node* statement3, Node* statement4);
00274 
00275   virtual ostream& php(ostream &os) const;  
00276 
00277   virtual Node* copy() const;
00278 };
00279 
00281 
00286 class While : public Binary{
00287  public:
00289   While(Node* statement1, Node* statement2);
00290 
00291   virtual ostream& php(ostream &os) const;    
00292   virtual Node* copy() const;
00293 };
00294 
00296 
00301 class Do : public Binary{
00302  public:
00304   Do(Node* statement1, Node* statement2) ;
00305 
00306   virtual ostream& php(ostream &os) const;    
00307   virtual Node* copy() const;
00308 };
00309 
00311 
00316 class Switch : public Binary{
00317  public:
00319   Switch(Node* statement1, Node* statement2) ;
00320 
00321   virtual ostream& php(ostream &os) const;    
00322   virtual Node* copy() const;
00323 };
00324 
00326 
00329 class Break : public Unary{
00330  public:
00332   Break(Node *statement) ;
00333 
00334   virtual ostream& php(ostream &os) const;  
00335 
00336   virtual Node* copy() const;
00337 };
00338 
00340 
00343 class Continue : public Unary{
00344  public:
00346   Continue(Node *statement) ;
00347 
00348   virtual ostream& php(ostream &os) const;    
00349   virtual Node* copy() const;
00350 };
00351 
00353 
00356 class Return : public Unary{
00357  public:
00359   Return(Node *statement) ;
00360 
00361   virtual ostream& php(ostream &os) const;    
00362   virtual Node* copy() const;
00363 };
00364 
00366 class Global : public Unary{
00367  public:
00369   Global(Node *statement) ;
00370 
00371   virtual ostream& php(ostream &os) const;
00372 
00373   virtual Node* copy() const;
00374 };
00375 
00377 class Static : public Unary{
00378  public:
00380   Static(Node *statement);
00381 
00382   virtual ostream& php(ostream &os) const;    
00383   virtual Node* copy() const;
00384 };
00385 
00387 class Echo : public Unary{
00388  public:
00390   Echo(Node *statement) ;
00391 
00392   virtual ostream& php(ostream &os) const;
00393 
00394   virtual Node* copy() const;
00395 };
00396 
00398 class Template : public Unary{
00399  public:
00401   Template(Node *statement) ;
00402 
00403   virtual ostream& php(ostream &os) const;
00404 
00405   virtual Node* copy() const;
00406 };
00407 
00409 
00415 class SmartyAssign : public Binary{
00417   string phpOut;
00418  public:
00420   SmartyAssign(Node* statement1, Node* statement2) ;
00422   SmartyAssign(Node* statement1, Node* statement2, string iphpOut) ;
00423 
00424   virtual ostream& php(ostream &os) const;
00425 
00427   const Node* getVariable() const;
00428   
00430   const Node* getAssignment() const;
00431 
00433   void setPHPOut(string iphpOut);
00434 
00435   virtual Node* copy() const;
00436 };
00437 
00439 class InlineHTML : public Unary{
00440  public:
00442   InlineHTML(Node *statement) ;
00443 
00444   virtual ostream& php(ostream &os) const;  
00445 
00446   virtual Node* copy() const;
00447 
00449   string getHTML() const;
00451   void setHTML(const string &html);
00452 };
00453 
00455 class Expression : public Unary{
00456  public:
00458   Expression(Node *statement) ;
00459   
00460   virtual ostream& php(ostream &os) const;
00461   
00462   virtual Node* copy() const;
00463 };
00464 
00466 class Unset : public Unary{
00467  public:
00469   Unset(Node *statement) ;
00470   
00471   virtual ostream& php(ostream &os) const;
00472   
00473   virtual Node* copy() const;
00474 };
00475 
00477 class Use : public Unary{
00478  public:
00480   Use(Node *statement) ;
00481   
00482   virtual ostream& php(ostream &os) const; 
00483 
00484   virtual Node* copy() const;
00485 };
00486 
00488 
00495 class Foreach : public Quadary{
00496  public:
00498   Foreach(Node* statement1, Node* statement2, Node* statement3, Node* statement4) ;
00499 
00500   virtual ostream& php(ostream &os) const;
00501 
00502   virtual Node* copy() const;
00503 };
00504 
00506 
00511 class Declare : public Binary{
00512  public:
00514   Declare(Node* statement1, Node* statement2) ;
00515 
00516   virtual ostream& php(ostream &os) const;
00517 
00518   virtual Node* copy() const;
00519 };
00520 
00522 
00524 class EmptyStatement : public Nullary{
00525  public:
00527   EmptyStatement() ;
00528 
00529   virtual ostream& php(ostream &os) const;    
00530   virtual Node* copy() const;
00531 };
00532 
00534 
00541 class Function : public Quadary{
00542  public:
00544   Function(Node* statement1, Node* statement2, Node* statement3, Node* statement4) ;
00545 
00546   virtual ostream& php(ostream &os) const;
00547 
00548   virtual Node* copy() const;
00549 };
00550 
00552 
00558 class Class : public Ternary{
00559  public:
00561   Class(Node* statement1, Node* statement2, Node* statement3) ;
00562 
00563   virtual ostream& php(ostream &os) const;
00564 
00565   virtual Node* copy() const;
00566 };
00567 
00569 class Const : public Binary{
00570  public:
00572   Const(Node* statement1, Node* statement2) ;
00573 
00574   virtual ostream& php(ostream &os) const;
00575 
00576   virtual Node* copy() const;
00577 };
00578 
00580 class Case : public Binary{
00581  public:
00583   Case(Node* statement1, Node* statement2);
00584 
00585   virtual ostream& php(ostream &os) const;
00586   
00587   virtual Node* copy() const;
00588 };
00589 
00591 
00597 class Parameter : public Ternary{
00598  public:
00600   Parameter(Node* statement1, Node* statement2, Node* statement3) ;
00601 
00602   virtual ostream& php(ostream &os) const;
00603 
00604   virtual Node* copy() const;
00605 };
00606 
00608 class ClassVariable : public Unary{
00609  public:
00611   ClassVariable(Node *statement) ;
00612 
00613   virtual ostream& php(ostream &os) const;
00614 
00615   virtual Node* copy() const;
00616 };
00617 
00619 
00622 class UnaryOperator : public Binary{
00623  public:
00625   UnaryOperator(string oname, Node* statement2) ;
00626 
00627   virtual ostream& php(ostream &os) const;
00628 
00629   virtual Node* copy() const;
00630 
00631   virtual string evaluate(const NameSpace &nameSpace) const;  
00632 };
00633 
00635 
00638 class PostUnaryOperator : public Binary{
00639  public:
00641   PostUnaryOperator(string oname, Node* statement2) ;
00642 
00643   virtual ostream& php(ostream &os) const;
00644 
00645   virtual Node* copy() const;
00646 
00647   virtual string evaluate(const NameSpace &nameSpace) const;  
00648 };
00649 
00651 
00654 class BinaryOperator : public Ternary{
00655  public:
00657   BinaryOperator(string oname, Node* statement2, Node* statement3) ;
00658   BinaryOperator(Node* ioperator, Node* statement2, Node* statement3) ;
00659 
00660   virtual ostream& php(ostream &os) const;
00661 
00662   virtual Node* copy() const;
00663 
00664   virtual string evaluate(const NameSpace &nameSpace) const;  
00665 };
00666 
00668 class AList : public Unary{
00669  public:
00671   AList(Node *statement);
00672 
00673   virtual ostream& php(ostream &os) const;
00674 
00675   virtual Node* copy() const;
00676 };
00677 
00679 class EncapsExpr : public Ternary{
00680  public:
00682   EncapsExpr(string ebegin, Node *statement, string eend) ;
00683 
00684   virtual ostream& php(ostream &os) const;
00685 
00686   virtual Node* copy() const;
00687 
00688   virtual string evaluate(const NameSpace &nameSpace) const;  
00689 };
00690 
00692 class AskOperator : public Ternary{
00693  public:
00695   AskOperator(Node* statement1, Node* statement2, Node* statement3);
00696 
00697   virtual ostream& php(ostream &os) const;
00698 
00699   virtual Node* copy() const;
00700 
00701   virtual string evaluate(const NameSpace &nameSpace) const;  
00702 };
00703 
00705 class Exit : public Unary{
00706  public:
00708   Exit(Node *statement) ;
00709 
00710   virtual ostream& php(ostream &os) const;
00711 
00712   virtual Node* copy() const;
00713 };
00714 
00716 class Print : public Unary{
00717  public:
00719   Print(Node *statement) ;
00720 
00721   virtual ostream& php(ostream &os) const;
00722 
00723   virtual Node* copy() const;
00724 };
00725 
00727 class Array : public Unary{
00728  public:
00730   Array(Node *statement) ;
00731 
00732   virtual ostream& php(ostream &os) const;
00733 
00734   virtual Node* copy() const;
00735 };
00736 
00738 
00744 class FunctionCall : public Ternary{
00745  public:
00747   FunctionCall(Node* statement1, Node* statement2, Node* statement3) ;
00748 
00749   virtual ostream& php(ostream &os) const;  
00750 
00751   virtual Node* copy() const;
00752 };
00753 
00755 
00760 class ArrayPair : public Binary{
00761  public:
00763   ArrayPair(Node* statement1, Node* statement2) ;
00764 
00765   virtual ostream& php(ostream &os) const;
00766   
00767   virtual Node* copy() const;
00768 };
00769 
00771 
00776 class ObjectOperator : public Binary{
00777  public:
00779   ObjectOperator(Node* statement1, Node* statement2) ;
00780 
00781   virtual ostream& php(ostream &os) const;
00782   
00783   virtual Node* copy() const;
00784 };
00785 
00787 
00792 class ArrayOperator : public Binary{
00793  public:
00795   ArrayOperator(Node* statement1, Node* statement2) ;
00796 
00797   virtual ostream& php(ostream &os) const;
00798 
00799   virtual Node* copy() const;
00800 };
00801 
00803 class MapOperator : public Binary{
00804  public:
00806   MapOperator(Node* statement1, Node* statement2) ;
00807 
00808   virtual ostream& php(ostream &os) const;
00809   
00810   virtual Node* copy() const;
00811 };
00812 
00814 class Ref : public UnaryOperator{
00815  public:
00817   Ref(Node* statement) ;
00818 };
00819 
00821 class Isset : public Unary{
00822  public:
00824   Isset(Node *statement) ;
00825 
00826   virtual ostream& php(ostream &os) const;
00827 
00828   virtual Node* copy() const;
00829 };
00830 
00832 class ConstantEncapsedString : public Unary{
00833  public:
00835   ConstantEncapsedString(Node *statement) ;
00836 
00837   virtual ostream& php(ostream &os) const;
00838 
00839   virtual Node* copy() const;
00840 
00841   virtual string evaluate(const NameSpace &nameSpace) const;  
00842 };
00843 
00845 class ConstantString : public Unary{
00846  public:
00848   ConstantString(Node *statement) ;
00849 
00850   virtual ostream& php(ostream &os) const;
00851 
00852   virtual Node* copy() const;
00853 
00854   virtual string evaluate(const NameSpace &nameSpace) const;  
00855 };
00856 
00858 class PHPVariable : public Unary{
00859  public:
00861   PHPVariable(Node *statement) ;
00862 
00863   virtual ostream& php(ostream &os) const;
00864 
00865   virtual Node* copy() const;
00866 };
00867 
00868 #endif
00869 
00870 
00871 

Generated on Fri Nov 21 17:54:04 2003 for PHPX by doxygen 1.3.3