LangCompiler
using Microsoft.CSharp.RuntimeBinder.Errors;
using Microsoft.CSharp.RuntimeBinder.Syntax;
namespace Microsoft.CSharp.RuntimeBinder.Semantics
{
internal class LangCompiler : CSemanticChecker, IErrorSink
{
private SymbolLoader _symbolLoader;
private CController _pController;
private ErrorHandling _errorContext;
private GlobalSymbolContext _globalSymbolContext;
private UserStringBuilder _userStringBuilder;
public override SymbolLoader SymbolLoader => _symbolLoader;
public LangCompiler(CController pCtrl, NameManager pNameMgr)
{
_pController = pCtrl;
_globalSymbolContext = new GlobalSymbolContext(pNameMgr);
_userStringBuilder = new UserStringBuilder(_globalSymbolContext);
_errorContext = new ErrorHandling(_userStringBuilder, this, pCtrl.GetErrorFactory());
_symbolLoader = new SymbolLoader(_globalSymbolContext, null, _errorContext);
}
public new ErrorHandling GetErrorContext()
{
return _errorContext;
}
public override SymbolLoader GetSymbolLoader()
{
return _symbolLoader;
}
public void SubmitError(CParameterizedError error)
{
CError cError = GetErrorContext().RealizeError(error);
if (cError != null)
_pController.SubmitError(cError);
}
public int ErrorCount()
{
return 0;
}
}
}