internal Lexeme(ScannerInfo scannerInfo, int state, SourceSpan span, string content) { m_scannerInfo = scannerInfo; m_stateIndex = state; Value = new LexemeValue(content, span); m_trivia = s_emptyTrivia; }
internal Lexeme(ScannerInfo scannerInfo, int state, SourceSpan span, string content, List <Lexeme> trivia) { m_scannerInfo = scannerInfo; m_stateIndex = state; Value = new LexemeValue(content, span); if (trivia != null) { m_triviaArray = trivia.ToArray(); m_trivia = new ReadOnlyCollection <Lexeme>(m_triviaArray); } else { m_triviaArray = null; m_trivia = new ReadOnlyCollection <Lexeme>(s_emptyTrivia); } }
internal Lexeme(ScannerInfo scannerInfo, int state, SourceSpan span, string content, List<Lexeme> trivia) { m_scannerInfo = scannerInfo; m_stateIndex = state; Value = new LexemeValue(content, span); if (trivia != null) { m_triviaArray = trivia.ToArray(); m_trivia = new ReadOnlyCollection<Lexeme>(m_triviaArray); } else { m_triviaArray = null; m_trivia = new ReadOnlyCollection<Lexeme>(s_emptyTrivia); } }
public VariableRef(LexemeValue name) { VariableName = name; }
public MethodRef(LexemeValue name) { MethodName = name; }
private VariableInfo ResolveVariable(LexemeValue identifier) { //step1, check local parameter & variable definitions if (m_currentMethodParameters.Contains(identifier.Content)) { return m_currentMethodParameters[identifier.Content]; } else if (m_currentMethodVariables.Contains(identifier.Content)) { return m_currentMethodVariables[identifier.Content]; } //step2, if not static method, check fields if (!m_currentMethod.IsStatic) { return ResolveField(m_currentType, identifier); } m_errorManager.AddError(c_SE_VariableDeclMissing, identifier.Span, identifier.Content); return null; }
private VariableInfo ResolveField(CodeClassType type, LexemeValue identifier) { //step1, see current class if (type.Fields.Contains(identifier.Content)) { return type.Fields[identifier.Content]; } //step2, see base class if (m_currentType.BaseType != null) { return ResolveField(m_currentType.BaseType, identifier); } m_errorManager.AddError(c_SE_VariableDeclMissing, identifier.Span, identifier.Content); return null; }
public TypeRef(LexemeValue name) { TypeName = name; }