Ejemplo n.º 1
0
        public static string ConceptMemberValueType(ConceptMemberSyntax conceptMember)
        {
            if (conceptMember.IsStringType)
            {
                return("String");
            }

            if (conceptMember.IsConceptInfoInterface)
            {
                return("IConceptInfo");
            }

            return(conceptMember.ConceptType.TypeName);
        }
Ejemplo n.º 2
0
        private void OnMemberRead(ITokenReader iTokenReader, ConceptSyntaxNode conceptInfo, ConceptMemberSyntax conceptMember, ValueOrError <object> valueOrError)
        {
            // have we reached a new keyword after target pos? if so, prevent further member parsing
            if (result.NextKeywordToken != null)
            {
                return;
            }

            var tokenReader = (TokenReader)iTokenReader;

            if (tokenReader.PositionInTokenList <= 0 || lastTokenBeforeTarget == null)
            {
                return;
            }

            var concept       = conceptInfo.Concept;
            var lastTokenRead = result.Tokens[tokenReader.PositionInTokenList - 1];

            // track last tokens/members parsed before or at target
            if (lastTokenRead.PositionInDslScript <= lastTokenBeforeTarget.PositionInDslScript && !valueOrError.IsError)
            {
                result.LastTokenParsed[concept]       = lastTokenRead;
                result.LastMemberReadAttempt[concept] = conceptMember;
            }

            // we are interested in those concepts whose member parsing stops at or after target position
            if (lastTokenRead.PositionInDslScript >= lastTokenBeforeTarget.PositionInDslScript && !result.ActiveConceptValidTypes.Contains(concept))
            {
                result.ActiveConceptValidTypes.Add(concept);
            }
        }
Ejemplo n.º 3
0
        public static int IndexOfParameter(ConceptType conceptType, ConceptMemberSyntax conceptMember)
        {
            var members = GetParameters(conceptType);

            return(members.IndexOf(conceptMember));
        }
Ejemplo n.º 4
0
 public static string ConceptMemberDescription(ConceptMemberSyntax conceptMember)
 {
     return($"{conceptMember.Name}: {ConceptMemberValueType(conceptMember)}");
 }