Esempio n. 1
0
File: AST.cs Progetto: chenzuo/blue
 // Any of the array parameters may be null
 public NamespaceDecl(
     Identifier idName, // must be non-null
     UsingDirective [] arUsingDirectives,
     NamespaceDecl[] arNestedNamespaces,
     ClassDecl[] arClasses,
     TypeDeclBase[] arTypes
 )
 {
     m_idName = idName;
 
     m_arUsingDirectives = (arUsingDirectives == null) ? new UsingDirective [0] : arUsingDirectives;
     m_arNestedNamespaces = (arNestedNamespaces == null) ? new NamespaceDecl[0] : arNestedNamespaces; 
     //m_arClasses = (arClasses == null) ? new ClassDecl[0] : arClasses;
     Debug.Assert(arClasses == null);
     
     m_arTypes = (arTypes == null) ? new TypeDeclBase[0] : arTypes;
 }
Esempio n. 2
0
File: AST.cs Progetto: chenzuo/blue
 public DelegateDecl(
     Identifier      idName,
     TypeSig         tRetType,
     ParamVarDecl[]  arParams,        
     Modifiers       mods
 )
 {
     Debug.Assert(idName != null);
     Debug.Assert(tRetType != null);
     Debug.Assert(arParams != null);
             
     m_idName    = idName;
     m_tRetType  = tRetType;
     m_arParams  = arParams;
     m_mods      = mods;
     
     // Implied sealed
     m_mods.SetSealed();
 }    
Esempio n. 3
0
File: AST.cs Progetto: chenzuo/blue
    // For non-interface types
    public ClassDecl(
        Identifier idName,         
        TypeSig [] arSuper, // super class & implemented interfaces
        MethodDecl [] alMethods,
        PropertyDecl[] alProperties,
        FieldDecl[] alFields,
        EventDecl [] alEvents,
        TypeDeclBase[] alNestedTypes,
        Modifiers mods,
        bool fIsClass // true for class, false for struct
    ) 
    {        
        Debug.Assert(idName != null);
        Debug.Assert(alMethods != null);
        Debug.Assert(alFields != null);
        Debug.Assert(alProperties != null);
        Debug.Assert(alEvents != null);


        m_strName = idName.Text;
        
        m_arSuper = (arSuper == null) ? new TypeSig[0] : arSuper;

        m_alNestedTypes     = (alNestedTypes == null) ?  m_sEmptyTypeList : alNestedTypes;
        m_alMethods         = alMethods;
        m_alProperties      = alProperties;
        m_alFields          = alFields;
        m_alEvents          = alEvents;
        
        // @todo - this is wrong
        m_filerange = idName.Location;

        if (!fIsClass) // structs are implicitly sealed.           
            mods.SetSealed();
            
        m_mods = mods;          
                    
        m_genre = fIsClass ? TypeEntry.Genre.cClass : TypeEntry.Genre.cStruct;
    }
Esempio n. 4
0
File: AST.cs Progetto: chenzuo/blue
 public EventDecl(
     Identifier idName,
     NonRefTypeSig tType,
     Modifiers mods
 )
 {
     Debug.Assert(idName != null);
     Debug.Assert(tType != null);
     
     m_idName    = idName;
     m_tType     = tType;
     m_mods      = mods;    
 }              
Esempio n. 5
0
File: AST.cs Progetto: chenzuo/blue
 public EnumDecl(Identifier idName, FieldDecl[] fields, Modifiers mods)
 {
     Debug.Assert(fields != null);
     m_fields = fields;
     m_idName = idName;
     m_mods = mods;
 }
Esempio n. 6
0
File: AST.cs Progetto: chenzuo/blue
    // For interface types
    public ClassDecl(
        Identifier idName,         
        TypeSig [] arSuper, // super class & implemented interfaces
        MethodDecl [] alMethods,
        PropertyDecl[] alProperties,
        Modifiers mods    
    ) 
    {        
        Debug.Assert(idName != null);
        Debug.Assert(alMethods != null);
        

        m_strName = idName.Text;
        
        m_arSuper = (arSuper == null) ? new TypeSig[0] : arSuper;

        m_alMethods = alMethods;
        m_alProperties = alProperties;
        m_alNestedTypes = m_sEmptyTypeList;
        
        // @todo - this is wrong
        m_filerange = idName.Location;

        //m_mods.FlagSetter = mods.Flags | Modifiers.EFlags.Abstract;
        m_mods = mods;
        m_mods.SetAbstract();
       
        m_genre = TypeEntry.Genre.cInterface;
    }
Esempio n. 7
0
 public CatchHandler(
     TypeSig type,           // type we're catching (must derived from System.Exception)
     Identifier idName,       // optional (can be null) name for local var to store exception
     BlockStatement stmtBody // handler body (non-null)
 ) 
 {         
     Debug.Assert(stmtBody != null);
     
     // General catch blocks just becomes a System.Exception
     if (type == null)
     {        
         m_type = new SimpleTypeSig(new DotObjExp(
             new SimpleObjExp(new Identifier("System", null)),
             new Identifier("Exception", null)
             ));
     
         
     } else {     
         m_type = type;
     }
     m_idVarName = idName;
     m_body = stmtBody;
 }
Esempio n. 8
0
 public DotObjExp(Exp left, Identifier id)
 {
     m_left = left;
     m_strId = id;
     
     m_filerange = id.Location;
 }
Esempio n. 9
0
 public SimpleObjExp(string st)
 {
     m_filerange = null;
     m_strId = new Identifier(st, m_filerange);
 }
Esempio n. 10
0
 public SimpleObjExp(Identifier id)
 {
     m_filerange = id.Location;
     m_strId = id;
 }
Esempio n. 11
0
 public MethodCallExp(
     Exp e, // may be null,
     Identifier id,
     ArgExp [] arParams
 )
 {   
 // m_objExp may be null _until_ we resolve this. And then it's either
 // going to the implied 'this' ptr, a global func or a static func.
     m_objExp = e;
     m_idName = id;
     m_arParams = (arParams == null) ? new ArgExp[0] : arParams;
     
     
     // @todo - set in parser
     m_filerange = id.Location;        
 }