Inheritance: Node, ClassElement
コード例 #1
0
ファイル: codegen.cs プロジェクト: shugo/babel
 public override void VisitConst(ConstDefinition constDef)
 {
     ilGenerator = constDef.Reader.GetILGenerator();
     ilGenerator.Emit(OpCodes.Ldsfld, constDef.FieldBuilder);
     ilGenerator.Emit(OpCodes.Ret);
 }
コード例 #2
0
ファイル: eltcreate.cs プロジェクト: shugo/babel
 public override void VisitConst(ConstDefinition constDef)
 {
     constDef.TypeSpecifier.Accept(this);
     TypeData constType = constDef.TypeSpecifier.NodeType;
     TypeBuilder typeBuilder = currentClass.TypeBuilder;
     MethodAttributes readerAttributes =
         MethodAttributes.Virtual | MethodAttributes.HideBySig;
     switch (constDef.Modifier) {
     case ConstModifier.None:
         readerAttributes |= MethodAttributes.Public;
         break;
     case ConstModifier.Private:
         readerAttributes |= MethodAttributes.Private;
         break;
     }
     constDef.FieldBuilder =
         typeBuilder.DefineField("_" + constDef.Name,
                                 constType.RawType,
                                 FieldAttributes.Private |
                                 FieldAttributes.Static |
                                 FieldAttributes.Literal);
     constDef.FieldBuilder.SetConstant(constDef.Value);
     try {
         constDef.Reader = DefineReader(typeBuilder, constDef.Name,
                                        readerAttributes,
                                        constDef.TypeSpecifier);
     }
     catch (MethodConflictionException e) {
         report.Error(constDef.Location, e.Message);
     }
 }
コード例 #3
0
ファイル: node.cs プロジェクト: shugo/babel
 public virtual void VisitConst(ConstDefinition constDef)
 {
 }