public override CodeObject VisitProbeDeclaration(VclLangParser.ProbeDeclarationContext context) { var name = context.Identifier().GetText(); if (CompilerContext.ProbeReferences.ContainsKey(name)) { throw new ArgumentException("Probe name is not unique"); } // Determine field name var fieldName = name.SafeIdentifier("_probe"); // Setup current probe object and add to probe mapper CurrentProbeExpression = new CodeFieldReferenceExpression( new CodeThisReferenceExpression(), fieldName); CompilerContext.ProbeReferences.Add(name, (CodeFieldReferenceExpression)CurrentProbeExpression); // Create field and add to handler class CompilerContext.HandlerClass.Members.Add( new CodeMemberField(typeof(VclProbe), fieldName) { Attributes = MemberAttributes.Private, InitExpression = new CodeObjectCreateExpression( typeof(VclProbe), new CodePrimitiveExpression(name)) }); base.VisitProbeDeclaration(context); CurrentProbeExpression = null; return(null); }
public override CodeObject VisitProbeDeclaration(VclLangParser.ProbeDeclarationContext context) { // Named probe declarations are already handled elsewhere return(null); }