예제 #1
0
        /// <inheritdoc />
        public override void Visit(DOM.Parameter parameter)
        {
            var aliasContext = GetAliasContextForParameter((Parameter)parameter);

            if (aliasContext == null)
            {
                return;
            }
            var oldModuleMember = CurrentModuleMember;

            CurrentModuleMember = aliasContext.Alias.AliasDefinition;
            if (parameter.Name == "_") //Default parameter. Value is passed in the body of the alias
            {
                Visit(aliasContext.Alias.Entities.Where(e => !(e is Attribute) && !(e is DOM.Comment)));
                CurrentModuleMember = oldModuleMember;
                return;
            }

            var argument = aliasContext.Alias.Arguments.FirstOrDefault(a => a.Name == parameter.Name);

            if (argument != null)
            {
                CurrentModuleMember = aliasContext.ModuleMember;
            }

            Visit(argument?.Entities.Where(e => !(e is DOM.Attribute)) ??
                  parameter.Entities.Where(e => !(e is DOM.Attribute)));
            CurrentModuleMember = oldModuleMember;
        }
 public override void Visit(DOM.Parameter parameter)
 {
     _namespaceResolver.ProcessParameter((Parameter)parameter);
     ProcessInterpolation((IPairWithInterpolation)parameter);
     base.Visit(parameter);
     Visit(parameter.PairValue);
 }
예제 #3
0
        public override void Visit(DOM.Parameter parameter)
        {
            CheckPairValue(parameter);
            var aliasContext = AliasContext.Peek();

            if (aliasContext != null)
            {
                ValidateParameter((Parameter)parameter, aliasContext.Alias, _currentModule.FileName);
            }
            base.Visit(parameter);
        }
예제 #4
0
        public override void OnParameter(DOM.Parameter parameter)
        {
            var aliasContext = GetAliasContextForParameter((Parameter)parameter);

            if (aliasContext == null)
            {
                return;
            }

            if (parameter.Name == "_") //Default parameter. Value is passed in the body of the alias
            {
                Visit(aliasContext.Alias.Entities.Where(e => !(e is DOM.Attribute) && !(e is DOM.Comment)));
                return;
            }

            var argument = aliasContext.Alias.Arguments.FirstOrDefault(a => a.Name == parameter.Name);

            Visit(argument?.Entities.Where(e => !(e is DOM.Attribute)) ?? parameter.Entities.Where(e => !(e is DOM.Attribute)));
        }