public ProjectHost(ProgramOptions options, IServiceProvider serviceProvider, ILanguageServer languageServer, ILogger <ProjectHost> logger) { _logger = logger; _name = options.Name; _languageServer = languageServer; _program = serviceProvider.CreateInstance <PapyrusProgram>(options); _program.OnScriptFileChanged += HandleScriptFileChanged; }
public ScriptType(PapyrusProgram program, ScriptSymbol symbol, ScriptObjectType compilerType) : base(program, symbol, compilerType) { #if FALLOUT4 _structTypes = symbol.Children.OfType <StructSymbol>().Select(s => { CompilerType.TryGetStruct(s.Name, out var structType); return(new StructType(program, s, structType)); }).ToDictionary(s => s.Name); #endif }
public DiagnosticResult <ScriptNode> Bind(ScriptFile file, PapyrusProgram program, IReadOnlyScriptText text, ITokenStream tokenStream, CommonTree objectNode) { return(DiagnosticResult <ScriptNode> .TryWithDiagnostics((diagnostics) => { _text = text; _tokenStream = tokenStream; _diagnostics = diagnostics; _scriptNode = new ScriptNode { File = file, Program = program }; _scriptNode.Script = _scriptNode; _scriptNode.CompilerNode = objectNode; _scriptNode.Range = objectNode.GetRange(tokenStream, text); _scriptNode.Text = text.Text; var children = new Scanner <CommonTree>(objectNode.GetChildren()); children.Next(); _scriptNode.Header = BindScriptHeader(_scriptNode, children); foreach (var child in children.AllRemaining()) { var blockChildren = new Scanner <CommonTree>(new CommonTree[] { child }); blockChildren.Next(); var definition = BindDefinition(_scriptNode, blockChildren); if (definition != null) { lock (_definitionsLock) { _scriptNode.Definitions.Add(definition); } } } return _scriptNode; })); }
protected ProgramTestBase() { _program = ProgramTestHarness.CreateProgram(); _program.ResolveSources().Wait(); }
public TypeChecker(PapyrusProgram program) { _program = program; _compilerTypeTable = new CompilerTypeTable(); _typeEvaluationVisitor = new TypeEvaluationVisitor(this); }
public ArrayType(PapyrusProgram program, ScriptSymbol symbol, ScriptObjectType compilerType, ObjectIdentifier elementType) : base(program, symbol, compilerType) { Symbol.SyntheticArrayType = this; _elementType = elementType; }
public IntrinsicType(PapyrusProgram program, ObjectIdentifier name) : base(program, name) { }
internal ComplexType(PapyrusProgram program, TypeSymbol symbol, ScriptComplexType compilerType) : base(program, symbol.Id) { _symbol = symbol; _compilerType = compilerType; }
internal PapyrusType(PapyrusProgram program, ObjectIdentifier name) { _program = program; _name = name; }
public StructType(PapyrusProgram program, StructSymbol symbol, ScriptStructType compilerType) : base(program, symbol, compilerType) { }