Ejemplo n.º 1
0
        public override bool Visit(SymbolInformation symbolInformation)
        {
            var symbolInfoLanguageLevel = SymbolTypeUtils.GetCobolLanguageLevel(symbolInformation.Type);

            if (symbolInfoLanguageLevel > CobolLanguageLevel.Cobol85)
            {
                NeedGeneration = true;
            }
            return(!NeedGeneration);
        }
Ejemplo n.º 2
0
        // -- Override Equals & GetHashCode --

        public override bool Equals(object obj)
        {
            SymbolInformation otherSymbol = obj as SymbolInformation;

            if (otherSymbol == null)
            {
                return(false);
            }
            else
            {
                return(Name.Equals(otherSymbol.Name, StringComparison.OrdinalIgnoreCase) &&
                       Type == otherSymbol.Type);
            }
        }
Ejemplo n.º 3
0
 public virtual bool Visit(SymbolInformation symbolInformation)
 {
     return(true);
 }
Ejemplo n.º 4
0
        public void OnNextWord(TokenType nextWordType, SymbolInformation nextWordSymbolInfo, int secondWordIndexInElement)
        {
            TotalCount++;
            CurrentWordIndexes += secondWordIndexInElement - 1;
            if (NextWordCounts.ContainsKey(nextWordType))
            {
                NextWordCounts[nextWordType] = NextWordCounts[nextWordType] + 1;
            }
            else
            {
                NextWordCounts.Add(nextWordType, 1);
            }
            if (nextWordSymbolInfo != null)
            {
                if (NextWordSymbolTypes == null)
                {
                    NextWordSymbolTypes = new Dictionary<TokenType, IList<SymbolType>>();
                }
                IList<SymbolType> candidateSymbolTypes = null;
                if (!NextWordSymbolTypes.TryGetValue(nextWordType, out candidateSymbolTypes))
                {
                    candidateSymbolTypes = new List<SymbolType>();
                    NextWordSymbolTypes.Add(nextWordType, candidateSymbolTypes);
                }

                var ambiguous = nextWordSymbolInfo as AmbiguousSymbolReference;
                if (ambiguous != null && ambiguous.CandidateTypes != null) {
                    foreach(var symbolType in ambiguous.CandidateTypes) {
                        if (!candidateSymbolTypes.Contains(symbolType))
                            candidateSymbolTypes.Add(symbolType);
                    }
                } else {
                    if (!candidateSymbolTypes.Contains(nextWordSymbolInfo.Type))
                        candidateSymbolTypes.Add(nextWordSymbolInfo.Type);
                }
            }
        }
Ejemplo n.º 5
0
 public void OnWords(TokenType firstWord, TokenType secondWord, SymbolInformation secondWordSymbolInfo, TokenType lastWordBeforeSymbolOrLiteral, int secondWordIndexInElement)
 {
     TotalCount++;
     int firstWordKey = ComputeLastWordsKey(firstWord, lastWordBeforeSymbolOrLiteral);
     NextWordProbabilities nextWordProbabilities = null;
     if (!WordProbabilities.TryGetValue(firstWordKey, out nextWordProbabilities))
     {
         nextWordProbabilities = new NextWordProbabilities(firstWordKey);
         WordProbabilities.Add(firstWordKey, nextWordProbabilities);
     }
     nextWordProbabilities.OnNextWord(secondWord, secondWordSymbolInfo, secondWordIndexInElement);
 }