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)
 {
 }