コード例 #1
0
ファイル: class.cs プロジェクト: shugo/babel
 public RoutineDefinition(string name,
                          TypedNodeList arguments,
                          TypeSpecifier returnType,
                          StatementList statementList,
                          RoutineModifier modifier,
                          Location location)
     : base(name, arguments, returnType, location)
 {
     this.statementList = statementList;
     this.modifier = modifier;
 }
コード例 #2
0
ファイル: class.cs プロジェクト: shugo/babel
 public SharedAttrDefinition(string name,
                             TypeSpecifier typeSpecifier,
                             Expression value,
                             AttrModifier modifier,
                             Location location)
     : base(name, typeSpecifier, modifier, location)
 {
     this.value = value;
 }
コード例 #3
0
ファイル: statement.cs プロジェクト: shugo/babel
 public DeclarationStatement(string name, TypeSpecifier typeSpecifier,
                             Location location)
     : base(location)
 {
     this.name = name;
     this.typeSpecifier = typeSpecifier;
 }
コード例 #4
0
ファイル: class.cs プロジェクト: shugo/babel
 public ParameterDeclaration(string name,
                             TypeSpecifier constrainingType,
                             Location location)
     : base(location)
 {
     this.name = name;
     this.constrainingType = constrainingType;
     builder = null;
 }
コード例 #5
0
ファイル: class.cs プロジェクト: shugo/babel
 public IncludeClause(TypeSpecifier typeSpecifier,
                      IncludeModifier modifier,
                      NodeList featureModifierList,
                      Location location)
     : base(location)
 {
     this.typeSpecifier = typeSpecifier;
     this.modifier = modifier;
     this.featureModifierList = featureModifierList;
 }
コード例 #6
0
ファイル: class.cs プロジェクト: shugo/babel
 public AbstractIterSignature(string name,
                              TypedNodeList arguments,
                              TypeSpecifier returnType,
                              Location location)
     : base(name, arguments, returnType, location)
 {
     typeBuilder = null;
     constructor = null;
     moveNext = null;
     getCurrent = null;
     moveNextArguments = null;
     creator = null;
     InitArguments();
 }
コード例 #7
0
ファイル: expression.cs プロジェクト: shugo/babel
 public CallExpression(Expression receiver,
                       string name,
                       TypedNodeList arguments,
                       bool flip,
                       Location location)
     : base(location)
 {
     this.receiver = receiver;
     typeSpecifier = null;
     this.name = name;
     this.arguments = arguments;
     this.flip = flip;
     method = null;
     isBuiltin = false;
 }
コード例 #8
0
ファイル: class.cs プロジェクト: shugo/babel
 public AttrDefinition(string name,
                       TypeSpecifier typeSpecifier,
                       AttrModifier modifier,
                       Location location)
     : base(location)
 {
     this.name = name;
     this.typeSpecifier = typeSpecifier;
     this.modifier = modifier;
     fieldBuilder = null;
     reader = null;
     writer = null;
 }
コード例 #9
0
ファイル: eltcreate.cs プロジェクト: shugo/babel
 protected virtual MethodBuilder DefineReader(TypeBuilder type,
                  string name,
                  MethodAttributes attributes,
                  TypeSpecifier attrType)
 {
     CheckMethodConfliction(typeManager.GetTypeData(type),
                            name,
                            attrType.NodeType,
                            new TypedNodeList());
     return DefineMethod(type, name, attributes,
                         attrType.NodeType, new TypedNodeList());
 }
コード例 #10
0
ファイル: eltcreate.cs プロジェクト: shugo/babel
 protected virtual MethodBuilder DefineWriter(TypeBuilder type,
                  string name,
                  MethodAttributes attributes,
                  TypeSpecifier attrType)
 {
     Argument arg = new Argument(ArgumentMode.In, "value",
                                 attrType, Location.Null);
     arg.Index = 1;
     arg.NodeType = attrType.NodeType;
     TypedNodeList args = new TypedNodeList(arg);
     CheckMethodConfliction(typeManager.GetTypeData(type),
                            name,
                            typeManager.VoidType,
                            new TypedNodeList());
     return DefineMethod(type, name, attributes,
                         typeManager.VoidType, args);
 }
コード例 #11
0
ファイル: typemanager.cs プロジェクト: shugo/babel
 public virtual TypeData GetType(TypeSpecifier typeSpecifier,
                                 ArrayList namespaces)
 {
     TypeData typeData = GetType(typeSpecifier.Name);
     if (typeData == null) {
         foreach (string ns in namespaces) {
             typeData = GetType(ns + Type.Delimiter +
                                typeSpecifier.Name);
             if (typeData != null)
                 break;
         }
     }
     if (typeData == null)
         return null;
     TypedNodeList typeParameters = typeSpecifier.TypeParameters;
     if (typeParameters.Length == 0) {
         return typeData;
     }
     else {
         TypeData genericTypeDef = typeData.GetGenericTypeDefinition();
         return genericTypeDef.BindGenericParameters(typeParameters);
     }
 }
コード例 #12
0
ファイル: statement.cs プロジェクト: shugo/babel
 public TypecaseWhen(TypeSpecifier typeSpecifier,
                     StatementList thenPart,
                     Location location)
     : base(location)
 {
     this.typeSpecifier = typeSpecifier;
     this.thenPart = thenPart;
     localVariable = null;
 }
コード例 #13
0
ファイル: statement.cs プロジェクト: shugo/babel
 public ProtectWhen(TypeSpecifier typeSpecifier,
                    StatementList thenPart,
                    Location location)
     : base(location)
 {
     this.typeSpecifier = typeSpecifier;
     this.thenPart = thenPart;
 }
コード例 #14
0
ファイル: class.cs プロジェクト: shugo/babel
 public AbstractRoutineSignature(string name,
                                 TypedNodeList arguments,
                                 TypeSpecifier returnType,
                                 Location location)
     : base(location)
 {
     this.name = name;
     this.arguments = arguments;
     this.returnType = returnType;
     this.methodBuilder = null;
     InitArguments();
 }
コード例 #15
0
ファイル: expression.cs プロジェクト: shugo/babel
 public CallExpression(TypeSpecifier typeSpecifier,
                       string name,
                       TypedNodeList arguments,
                       Location location)
     : base(location)
 {
     receiver = null;
     this.typeSpecifier = typeSpecifier;
     this.name = name;
     this.arguments = arguments;
     flip = false;
     method = null;
     isBuiltin = false;
 }
コード例 #16
0
ファイル: class.cs プロジェクト: shugo/babel
 public Argument(ArgumentMode mode,
                 string name, TypeSpecifier typeSpecifier,
                 Location location)
     : base(location)
 {
     this.mode = mode;
     this.name = name;
     this.typeSpecifier = typeSpecifier;
 }
コード例 #17
0
ファイル: expression.cs プロジェクト: shugo/babel
 public CallExpression(TypeSpecifier typeSpecifier,
                       string name,
                       TypedNodeList arguments)
     : this(typeSpecifier, name, arguments, Location.Null)
 {
 }
コード例 #18
0
ファイル: class.cs プロジェクト: shugo/babel
 public ConstDefinition(string name,
                        TypeSpecifier typeSpecifier,
                        object value,
                        ConstModifier modifier,
                        Location location)
     : base(location)
 {
     this.name = name;
     this.typeSpecifier = typeSpecifier;
     this.value = value;
     this.modifier = modifier;
     fieldBuilder = null;
     reader = null;
 }
コード例 #19
0
ファイル: expression.cs プロジェクト: shugo/babel
 public NewExpression(TypeSpecifier typeSpecifier,
                      TypedNodeList arguments,
                      Location location)
     : base(location)
 {
     this.typeSpecifier = typeSpecifier;
     this.arguments = arguments;
     this.constructor = null;
 }
コード例 #20
0
ファイル: class.cs プロジェクト: shugo/babel
 public IterDefinition(string name,
                       TypedNodeList arguments,
                       TypeSpecifier returnType,
                       StatementList statementList,
                       RoutineModifier modifier,
                       Location location)
     : base(name, arguments, returnType,
            statementList, modifier, location)
 {
     typeBuilder = null;
     typeParameters = null;
     boundType = null;
     self = null;
     current = null;
     currentPosition = null;
     constructor = null;
     moveNext = null;
     getCurrent = null;
     creator = null;
     localVariables = new Hashtable();
     resumePoints = new ArrayList();
     resumePoints.Add(new ResumePoint());
     InitArguments();
     bridgeMethods = new ArrayList();
 }
コード例 #21
0
ファイル: typecheck.cs プロジェクト: shugo/babel
 public override void VisitTypeSpecifier(TypeSpecifier typeSpecifier)
 {
     typeSpecifier.TypeParameters.Accept(this);
     if (typeSpecifier.Kind == TypeKind.Same) {
         typeSpecifier.NodeType = currentClass.BoundTypeData;
     }
     else {
         TypeData type =
             currentClass.GetTypeParameter(typeSpecifier.Name);
         if (type == null) {
             type = typeManager.GetType(typeSpecifier,
                                 currentSouceFile.ImportedNamespaces);
         }
         if (type == null) {
             report.Error(typeSpecifier.Location,
                          "there is no class named {0}",
                          typeSpecifier);
             return;
         }
         typeSpecifier.NodeType = type;
     }
 }
コード例 #22
0
ファイル: typespec.cs プロジェクト: shugo/babel
 static TypeSpecifier()
 {
     Null = new NullTypeSpecifier();
 }
コード例 #23
0
ファイル: node.cs プロジェクト: shugo/babel
 public virtual void VisitTypeSpecifier(TypeSpecifier typeSpecifier)
 {
 }