public override bool Visit(SymbolInformation symbolInformation) { var symbolInfoLanguageLevel = SymbolTypeUtils.GetCobolLanguageLevel(symbolInformation.Type); if (symbolInfoLanguageLevel > CobolLanguageLevel.Cobol85) { NeedGeneration = true; } return(!NeedGeneration); }
// -- 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); } }
public virtual bool Visit(SymbolInformation symbolInformation) { return(true); }
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); } } }
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); }