daily update on 20250127 by nitload youmu, schema and element splitter complete, builtin defination building

This commit is contained in:
Nitload
2025-01-28 08:52:16 +08:00
parent 190d67a034
commit e687473132
134 changed files with 17949 additions and 867 deletions
@@ -0,0 +1,73 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="AbstractSyntaxTree.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using StgSharp.Collections;
using System;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Script
{
public class AbstractSyntaxTree<TToken> where TToken: IExpressionToken
{
private bool _cacheAvailable;
private HashSet<TToken> _allToken = new();
private TToken _root;
public int Count
{
get
{
if( !_cacheAvailable ) {
MakeCache();
}
return _allToken.Count;
}
}
public TToken Root => _root;
public bool Contains( TToken node )
{
if( !_cacheAvailable ) {
MakeCache();
}
return _allToken.Contains( node );
}
public void MakeCache()
{
foreach( TToken node in Root.NextLevel ) { }
}
}
}
@@ -0,0 +1,113 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ExpConst.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Collections.ObjectModel;
using System.Text;
namespace StgSharp.Script.Expression
{
public class ExpConst : ExpElementBase
{
private ExpConstSource _source;
private string _name, _target;
public ExpConst( string name, ExpSchema context ):
base( context )
{
_name = name;
}
public override object? Value => _source;
public ExpElementType ElementType => ExpElementType.Const;
}
internal sealed class ExpBuiltinConst : ExpConstSource
{
private readonly float _value;
public ExpBuiltinConst( string name, float value )
: base( name, null ) { }
public string Name => throw new NotImplementedException();
public override sealed void Analyse()
{
return;
}
}
public class ExpConstSource : IExpElementSource
{
private static Lazy<ReadOnlyDictionary<string, ExpConstSource>> _builtinConst
= new(
() => ReadOnlyDictionary(
new Dictionary<string, ExpConstSource> {
{ "PI", new ExpConstSource( "PI", ) },
} ) );
private IScriptSourceProvider _sourceProvider;
private string _name;
public ExpConstSource(
string name,
IScriptSourceProvider sourceProvider )
{
_name = name;
_sourceProvider = sourceProvider;
}
public ExpElementType ElementType => ExpElementType.Const;
public IScriptSourceProvider SourceProvider => _sourceProvider;
public static ReadOnlyDictionary<string, ExpConstSource> BuiltinConst => _builtinConst.Value;
public string Name
{
get => _name;
}
public virtual void Analyse()
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,75 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ExpEntity.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Security.Authentication.ExtendedProtection;
using System.Text;
namespace StgSharp.Script.Expression
{
public class ExpEntity : ExpToken
{
public ExpEntity( string name ,ExpSchema context):
base(name, context)
{
}
public override object? Value => throw new NotImplementedException();
}
public class ExpEntitySource : IExpElementSource
{
private ExpExpressionTree _expressionTree;
private ScriptSourceTransmitter _source;
private string _name;
public ExpEntitySource( string name, ScriptSourceTransmitter provider )
{
_name = name;
_source = provider;
}
public ExpElementType ElementType => ExpElementType.Entity;
public IScriptSourceProvider SourceProvider => _source;
public string Name => _name;
public void Analyse()
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,83 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ExpFunction.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Script.Expression
{
public class ExpFunction : ExpToken
{
private readonly ExpToken _return;
private readonly List<KeyValuePair<string, ExpToken>> _parameterList
= new List<KeyValuePair<string, ExpToken>>();
public ExpFunction(string name, ExpSchema context) : base(name, context)
{ }
public object? value => this;
public override object? Value => this;
public ExpElementType ElementType => ExpElementType.Function;
public void CallThisFunction( params ExpToken[] parameters ) { }
}
public class ExpFunctionSource : IExpElementSource
{
private ScriptSourceTransmitter _transmitter;
private string _name;
public ExpFunctionSource(
string name,
ScriptSourceTransmitter transmitter )
{
_name = name;
_transmitter = transmitter;
}
public ExpElementType ElementType => ExpElementType.Function;
public IScriptSourceProvider SourceProvider => _transmitter;
public string Name => _name;
public void Analyse()
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,76 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ExpRule.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
namespace StgSharp.Script.Expression
{
public class ExpRule : ExpElementBase
{
public ExpRule(string name, ExpSchema context) : base(context)
{
_name = name;
}
public object? value => throw new NotImplementedException();
public override object? Value => throw new NotImplementedException();
}
public class ExpRuleSource : IExpElementSource
{
private ScriptSourceTransmitter _transmitter;
private string _name;
public ExpRuleSource( string name, ScriptSourceTransmitter transmitter )
{
_name = name;
_transmitter = transmitter;
}
public ExpElementType ElementType => ExpElementType.Rule;
public IScriptSourceProvider SourceProvider => _transmitter;
public string Name => _name;
public void Analyse()
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,74 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ExpType.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the ¡°Software¡±), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED ¡°AS IS¡±,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using StgSharp.Script;
using System;
using System.Collections.Generic;
namespace StgSharp.Script.Expression
{
public class ExpType : ExpElementBase
{
public override object? Value => throw new NotImplementedException();
public ExpType(ExpSchema context) : base(context)
{
}
}
public class ExpTypeSource : IExpElementSource
{
private ScriptSourceTransmitter _transmitter;
private string _name;
public ExpTypeSource( string name, ScriptSourceTransmitter transmitter )
{
_name = name;
_transmitter = transmitter;
}
public ExpElementType ElementType => ExpElementType.Type;
public IScriptSourceProvider SourceProvider => _transmitter;
public string Name => _name;
public void Analyse()
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,69 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="Exceptions.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Script.Expression
{
public class ExpInvalidTypeDeclareEndingExceptions : Exception
{
public ExpInvalidTypeDeclareEndingExceptions(
string declaredName,
string endedName )
: base(
$"The datatype is declared with name {declaredName} but ended with {endedName}" ) { }
}
public class ExpInvalidElementNameException : Exception
{
public ExpInvalidElementNameException(
string elementName,
ExpSchema schema )
: base(
$"Cannot find any element named {elementName} in {schema.Name}" ) { }
}
public class ExpInvalidCollectionMemberTypeException : InvalidCastException
{
public ExpInvalidCollectionMemberTypeException(
ExpElementBase elementInstance,
ExpCollectionBase collection )
: base(
$"Attempt to add or remove an element of type: {elementInstance.ElementType} from a collection" + $"collects {collection.}" ) { }
}
}
@@ -0,0 +1,87 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ExpElementBase.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace StgSharp.Script.Expression
{
public enum ExpElementType : int
{
Const,
Entity,
Type,
Function,
Section,
Expression,
Rule
}
public abstract class ExpElementBase : ExpToken
{
protected ExpElementBase(string name, ExpSchema context):
base(name, context)
{
}
public ExpElementType ElementType
{
get;
}
}
public interface IExpElementSource
{
public ExpElementType ElementType
{
get;
}
IScriptSourceProvider SourceProvider
{
get;
}
string Name
{
get;
}
public void Analyse();
}
}
@@ -0,0 +1,38 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ExpExpressionTree.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Script.Expression
{
public class ExpExpressionTree : AbstractSyntaxTree<ExpToken> { }
}
@@ -0,0 +1,111 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ExpReader.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.MemoryMappedFiles;
using System.Text;
using System.Threading;
namespace StgSharp.Script.Expression
{
public class ExpFileReader : IDisposable, IScriptSourceProvider
{
private bool disposedValue;
private FileStream _expFileStream;
private int _location;
private MemoryMappedFile _expMemoryMappedFile;
private MemoryMappedViewStream _expMemoryMappedStream;
private SemaphoreSlim readLineSemaphore = new SemaphoreSlim( 1, 1 );
private StreamReader _memoryReader;
public ExpFileReader( string path )
{
if( !File.Exists( path ) ) {
throw new FileNotFoundException();
}
_expFileStream = new FileStream(
path, FileMode.Open, FileAccess.Read );
_expMemoryMappedFile = MemoryMappedFile.CreateFromFile(
_expFileStream, null, 0, MemoryMappedFileAccess.Read,
HandleInheritability.None, true );
_expMemoryMappedStream = _expMemoryMappedFile.CreateViewStream(
offset: 0, size: 0, access: MemoryMappedFileAccess.Read );
_memoryReader = new StreamReader( _expMemoryMappedStream );
}
public int Location => _location;
// ~ExpFileReader()
// {
// Dispose(disposing: false);
// }
public void Dispose()
{
Dispose( disposing: true );
GC.SuppressFinalize( this );
}
public string ReadLine()
{
readLineSemaphore.Wait();
string line = _memoryReader.ReadLine();
_location++;
readLineSemaphore.Release();
return line;
}
public void ResetToBegin()
{
readLineSemaphore.Wait();
_expMemoryMappedStream.Seek( 0, SeekOrigin.Begin );
_location = 0;
readLineSemaphore.Release();
}
protected virtual void Dispose( bool disposing )
{
if( !disposedValue ) {
if( disposing ) {
_expFileStream.Dispose();
_expMemoryMappedFile.Dispose();
_expMemoryMappedStream.Dispose();
_memoryReader.Dispose();
}
disposedValue = true;
}
}
}
}
@@ -0,0 +1,343 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ExpSchema.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using StgSharp.Collections;
using StgSharp.Graphics.OpenGL;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.Tracing;
using System.Net.Http.Headers;
using System.Text;
using System.Text.RegularExpressions;
namespace StgSharp.Script.Expression
{
public class ExpSchemaSource
{
private static Regex
_constDefineBegin = new Regex(
@"\s*CONSTANT", RegexOptions.Compiled ),
_constDefineEnd = new Regex(
@"\s*END_CONSTANT;", RegexOptions.Compiled ),
_schemaBegin = new Regex(
@"\s*SCHEMA\s*(?<namespace>[A-Za-z_]+)\s?;",
RegexOptions.Compiled ),
_schemaEnd = new Regex(
@"END_SCHEMA;\s*--\s*(?<namespace>[A-Za-z_]+)",
RegexOptions.Compiled ),
_entityDefineBegin = new Regex(
@"\s*ENTITY\s*(?<TypeName>[A-Za-z_]+)\s*", RegexOptions.Compiled ),
_entityDefineEnd = new Regex(
@"\s*END_ENTITY;\s*--\s*(?<TypeName>[A-Za-z_]+)\s*",
RegexOptions.Compiled ),
_typeDefineBegin = new Regex(
@"\s*TYPE\s+(?<TypeName>[A-Za-z_]+)\s*=\s*(?<Remaining>[A-Z]+)",
RegexOptions.Compiled ),
_typeDefineEnd = new Regex(
@"\s*END_TYPE\s*;\s*--\s*(?<TypeName>[a-zA-Z_]+)",
RegexOptions.Compiled ),
_functionDefineBegin = new Regex(
@"\s*FUNCTION\s*\s*(?<FunctionName>[a-zA-Z_]+)\s*(?<Remaining>.*)",
RegexOptions.Compiled ),
_functionDefineEnd = new Regex(
@"\s*END_FUNCTION\s*;\s*--\s*(?<FunctionName>[a-zA-Z_]+)",
RegexOptions.Compiled ),
_ruleDefineBegin = new Regex(
@"\s*RULE\s*(?<RuleName>[a-zA-Z_]+)\s*FOR\s*\((?<Target>[a-zA-Z_]*(\s*\)\s*;)?)",
RegexOptions.Compiled ),
_ruleDefineEnd = new Regex(
@"\s*END_RULE\s*;\s*--\s*(?<RuleName>[A-Za-z_]+)",
RegexOptions.Compiled );
private Dictionary<string, IExpElementSource> _sourceCache = new();
private string name;
public ExpSchemaSource() { }
public void ReadSchema( ExpFileReader reader )
{
string line = reader.ReadLine();
while( !_schemaBegin.IsMatch( line ) ) {
line = reader.ReadLine();
}
name = _schemaBegin.Match( line ).Groups[ "namespace" ].Value;
while( !_schemaEnd.IsMatch( line ) ) {
if( TryReadConst( line, reader,
out IExpElementSource source ) ) {
_sourceCache.Add( source.Name, source );
} else if( TryReadType( line, reader, out source ) ) {
_sourceCache.Add( source.Name, source );
} else if( TryReadEntity( line, reader, out source ) ) {
_sourceCache.Add( source.Name, source );
} else if( TryReadRule( line, reader, out source ) ) {
_sourceCache.Add( source.Name, source );
} else if( TryReadFunction( line, reader, out source ) ) {
_sourceCache.Add( source.Name, source );
}
line = reader.ReadLine();
}
}
public static bool TryReadSchema(
string firstLine,
ExpFileReader reader,
out ExpSchemaSource source )
{
if( !_schemaBegin.IsMatch( firstLine ) ) {
source = null!;
return false;
}
ExpSchemaSource _source = new ExpSchemaSource();
_source.name = _schemaBegin.Match( firstLine ).Groups[ "namespace" ].Value;
while( !_schemaEnd.IsMatch( firstLine ) ) {
if( _source.TryReadConst(
firstLine, reader,
out IExpElementSource _elementSource ) ) {
_source._sourceCache
.Add( _elementSource.Name, _elementSource );
} else if( _source.TryReadType(
firstLine, reader, out _elementSource ) ) {
_source._sourceCache
.Add( _elementSource.Name, _elementSource );
} else if( _source.TryReadEntity(
firstLine, reader, out _elementSource ) ) {
_source._sourceCache
.Add( _elementSource.Name, _elementSource );
} else if( _source.TryReadRule(
firstLine, reader, out _elementSource ) ) {
_source._sourceCache
.Add( _elementSource.Name, _elementSource );
} else if( _source.TryReadFunction(
firstLine, reader, out _elementSource ) ) {
_source._sourceCache
.Add( _elementSource.Name, _elementSource );
}
firstLine = reader.ReadLine();
}
source = _source;
return true;
}
private bool TryReadConst(
string firstLine,
ExpFileReader reader,
out IExpElementSource source )
{
Match match = _constDefineBegin.Match( firstLine );
if( match.Success ) {
ScriptSourceTransmitter transmitter = new ScriptSourceTransmitter(
"END_CONSTANT" );
ExpConstSource _source = new ExpConstSource(
"Constant", transmitter );
string line = reader.ReadLine();
while( !_constDefineEnd.IsMatch( line ) ) {
transmitter.WriteLine( line );
line = reader.ReadLine();
}
transmitter.WriteLine( "END_CONSTANT" );
source = _source;
return true;
}
source = null!;
return false;
}
private bool TryReadEntity(
string firstLine,
ExpFileReader reader,
out IExpElementSource source )
{
Match match = _entityDefineBegin.Match( firstLine );
if( match.Success ) {
ScriptSourceTransmitter transmitter = new ScriptSourceTransmitter(
"END_ENTITY" );
ExpEntitySource _source = new ExpEntitySource(
match.Groups[ "TypeName" ].ToString(), transmitter );
string line = reader.ReadLine();
match = _entityDefineEnd.Match( line );
while( !match.Success ) {
transmitter.WriteLine( line );
line = reader.ReadLine();
match = _entityDefineEnd.Match( line );
}
;
string endedName = match.Groups[ "TypeName" ].ToString();
if( !string.Equals( endedName, _source.Name ) ) {
throw new ExpInvalidTypeDeclareEndingExceptions(
_source.Name, endedName );
}
transmitter.WriteLine( "END_ENTITY" );
source = _source;
return true;
}
source = null!;
return false;
}
private bool TryReadFunction(
string firstLine,
ExpFileReader reader,
out IExpElementSource source )
{
Match match = _functionDefineBegin.Match( firstLine );
if( match.Success ) {
ScriptSourceTransmitter transmitter = new ScriptSourceTransmitter(
"END_FUNCTION" );
ExpFunctionSource _source = new ExpFunctionSource(
match.Groups[ "FunctionName" ].ToString(), transmitter );
transmitter.WriteLine( match.Groups[ "Remaining" ].ToString() );
string line = reader.ReadLine();
match = _functionDefineEnd.Match( line );
while( !match.Success ) {
transmitter.WriteLine( line );
line = reader.ReadLine();
match = _functionDefineEnd.Match( line );
}
string endedName = match.Groups[ "FunctionName" ].ToString();
if( !string.Equals( endedName, _source.Name ) ) {
throw new ExpInvalidTypeDeclareEndingExceptions(
_source.Name, endedName );
}
transmitter.WriteLine( "END_FUNCTION" );
source = _source;
return true;
}
source = null!;
return false;
}
private bool TryReadRule(
string firstLine,
ExpFileReader reader,
out IExpElementSource source )
{
Match match = _ruleDefineBegin.Match( firstLine );
if( match.Success ) {
ScriptSourceTransmitter transmitter = new ScriptSourceTransmitter(
"END_RULE" );
ExpRuleSource _source = new ExpRuleSource(
match.Groups[ "RuleName" ].ToString(), transmitter );
string target = match.Groups[ "Target" ].ToString();
if( !string.IsNullOrEmpty( target ) ) {
transmitter.WriteLine( target );
}
string line = reader.ReadLine();
match = _ruleDefineEnd.Match( line );
while( !match.Success ) {
transmitter.WriteLine( line );
line = reader.ReadLine();
match = _ruleDefineEnd.Match( line );
}
string endedName = match.Groups[ "RuleName" ].ToString();
if( !string.Equals( endedName, _source.Name ) ) {
throw new ExpInvalidTypeDeclareEndingExceptions(
_source.Name, endedName );
}
transmitter.WriteLine( "END_RULE" );
source = _source;
return true;
}
source = null!;
return false;
}
private bool TryReadType(
string firstLine,
ExpFileReader reader,
out IExpElementSource source )
{
Match match = _typeDefineBegin.Match( firstLine );
if( match.Success ) {
ScriptSourceTransmitter transmitter = new ScriptSourceTransmitter(
"END_ENTITY" );
ExpTypeSource _source = new ExpTypeSource(
match.Groups[ "TypeName" ].ToString(), transmitter );
transmitter.WriteLine( match.Groups[ "Remaining" ].ToString() );
string line = reader.ReadLine();
match = _typeDefineEnd.Match( line );
while( !match.Success ) {
transmitter.WriteLine( line );
line = reader.ReadLine();
match = _typeDefineEnd.Match( line );
}
string endedName = match.Groups[ "TypeName" ].ToString();
if( !string.Equals( endedName, _source.Name ) ) {
throw new ExpInvalidTypeDeclareEndingExceptions(
_source.Name, endedName );
}
transmitter.WriteLine( "END_ENTITY" );
source = _source;
return true;
}
source = null!;
return false;
}
}
public class ExpSchema
{
private Dictionary<string, ExpConstSource> _constDict = new();
private Dictionary<string, ExpEntitySource> _entityDict = new Dictionary<string, ExpEntitySource>(
);
private Dictionary<string, ExpFunctionSource> _functionDict = new Dictionary<string, ExpFunctionSource>(
);
private Dictionary<string, ExpRuleSource> _ruleDict = new Dictionary<string, ExpRuleSource>(
);
private Dictionary<string, ExpTypeSource> _typeDict = new Dictionary<string, ExpTypeSource>(
);
public string Name
{
get;
internal set;
}
public ExpConstSource SearchConstDeclare( string typeName )
{
if( _constDict.TryGetValue( typeName,
out ExpConstSource? source ) ) {
return source;
}
if( _constDict.TryGetValue( typeName,
out ExpConstSource? type ) ) { }
throw new KeyNotFoundException();
}
}
}
@@ -0,0 +1,93 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ExpToken.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel.Design;
using System.Text;
namespace StgSharp.Script.Expression
{
[Flags]
public enum ExpTokenType : long
{
None = 0,
Name_Element = 1,
Name_Param = 2,
Name_Block,
Name_Keyword,
Collection_Set,
Collection_Bag,
Collection_Array,
Collection_List,
Type_Const,
Type_Entity,
Type_type,
Type_Rule,
Type_Function,
}
public abstract class ExpToken : IExpressionToken
{
protected internal ExpToken _previousToken;
protected internal ExpTokenType _tokenType;
protected internal List<ExpToken> _nextLevelTokens = new List<ExpToken>(
);
protected internal string _name;
protected ExpSchema Context
{
get;
private set;
}
protected ExpToken(string name,ExpSchema context)
{
_name = name;
Context = context;
}
public abstract object? Value
{
get;
}
public ICollection<IExpressionToken> NextLevel => ( _nextLevelTokens as ICollection<IExpressionToken> )!;
public int TokenTypeCode => ( int )_tokenType;
public string Name => _name;
}
}
@@ -0,0 +1,158 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ExpCollection.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace StgSharp.Script.Expression
{
public abstract class ExpCollectionBase : IEnumerable<ExpElementBase>
{
protected internal string _accurateType;
protected internal ExpElementType _memberType;
protected ExpCollectionBase(
ExpElementType memberType )
{
_memberType = memberType;
}
public ExpElementType MemberType
{
get => _memberType;
}
public abstract int Count { get; }
public abstract IEnumerator<ExpElementBase> GetEnumerator();
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
public sealed class ExpList : ExpCollectionBase
{
public ExpList(ExpElementType type)
{
}
private List<ExpElementBase> _collection = new List<ExpElementBase>();
public override int Count => _collection.Count;
public override IEnumerator<ExpElementBase> GetEnumerator()
{
throw new NotImplementedException();
}
}
public class ExpSet : ExpCollectionBase
{
private HashSet<ExpElementBase> _collection = new();
public ExpSet( (int,int) range, ExpElementType type )
: base( type, range ) { }
public void Add( ExpElementBase token )
{
if( token.ElementType != _memberType ) {
throw new ExpInvalidCollectionMemberTypeException( token,
this );
}
_collection.Add( token );
}
public override int Count => _collection.Count;
public override sealed IEnumerator<ExpElementBase> GetEnumerator()
{
return ( ( IEnumerable<ExpElementBase> )_collection ).GetEnumerator(
);
}
}
public class ExpArray : ExpCollectionBase
{
private ExpElementBase[] _collection;
public ExpArray( (int, int) range, ExpElementType type )
: base( type, range ) { }
public ExpElementBase this[ int index ]
{
get { return _collection[ index ]; }
set
{
if( value.ElementType != MemberType ) {
throw new ExpInvalidCollectionMemberTypeException(
value, this );
}
_collection[ index ] = value;
}
}
public override int Count => _collection.Length;
public override IEnumerator<ExpElementBase> GetEnumerator()
{
return ( ( IEnumerable<ExpElementBase> )_collection ).GetEnumerator(
);
}
}
public class ExpBag : ExpCollectionBase
{
private ConcurrentBag<ExpElementBase> _collection = new ConcurrentBag<ExpElementBase>(
);
public ExpBag( ExpElementType type, (int,int) range )
: base( type, range ) { }
public override int Count => _collection.Count;
public override IEnumerator<ExpElementBase> GetEnumerator()
{
return _collection.GetEnumerator();
}
}
}
@@ -0,0 +1,77 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ExpCollectionInstance.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Script.Expression
{
public abstract class ExpCollectionInstanceBase : ExpToken
{
protected internal (int min, int max) _range;
protected internal ExpElementType _memberType;
public override sealed object? Value => CollectionValue;
protected ExpCollectionInstanceBase(string name,ExpSchema context):base(name, context)
{
}
public abstract ExpCollectionBase CollectionValue
{
get;
}
public ExpElementType MemberType
{
get => _memberType;
}
public int MinCapacity => _range.min;
public int MaxCapacity => _range.max;
}
public sealed class ExpSetInstance : ExpCollectionInstanceBase
{
private ExpSet _collection;
public ExpSetInstance(string name, ExpSet set, ExpSchema context) : base(name, context)
{
_collection = set;
}
public override ExpCollectionBase CollectionValue => _collection;
}
}
@@ -0,0 +1,64 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="IExpressionToken.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using StgSharp.Collections;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Script
{
public interface IExpressionToken
{
object? Value
{
get;
}
ICollection<IExpressionToken> NextLevel
{
get;
}
int TokenTypeCode
{
get;
}
string Name
{
get;
}
}
}
@@ -0,0 +1,48 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="IScriptSourceProvider.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Script
{
public interface IScriptSourceProvider
{
int Location
{
get;
}
string ReadLine();
}
}
@@ -0,0 +1,73 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="ScriptSourceTransmitter.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Script
{
public class ScriptSourceTransmitter : IScriptSourceProvider
{
private bool _isWriting = true;
private ConcurrentQueue<string> cache = new ConcurrentQueue<string>();
private int _location;
private readonly string _completeMark;
public ScriptSourceTransmitter( string endMark )
{
_completeMark = endMark;
}
public int Location => throw new NotImplementedException();
public string ReadLine()
{
cache.TryDequeue( out string line );
_location++;
return line;
}
public void WriteLine( string line )
{
if( !_isWriting ) {
return;
}
if( string.Equals( _completeMark, line ) ) {
_isWriting = false;
}
cache.Enqueue( line );
}
}
}
@@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<Nullable>enable</Nullable>
<LangVersion>preview</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Collections.Immutable" Version="8.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\StgSharp\StgSharp.Commom.csproj" />
</ItemGroup>
</Project>
@@ -0,0 +1,74 @@
{
"runtimeTarget": {
"name": ".NETStandard,Version=v2.1/",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETStandard,Version=v2.1": {},
".NETStandard,Version=v2.1/": {
"StgSharp.Script/1.0.0": {
"dependencies": {
"StgSharp.Commom": "1.0.0"
},
"runtime": {
"StgSharp.Script.dll": {}
}
},
"Microsoft.CSharp/4.7.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.CSharp.dll": {
"assemblyVersion": "4.0.5.0",
"fileVersion": "4.700.19.56404"
}
}
},
"System.Runtime.CompilerServices.Unsafe/6.1.0": {
"runtime": {
"lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.100.24.56208"
}
}
},
"StgSharp.Commom/1.0.0": {
"dependencies": {
"Microsoft.CSharp": "4.7.0",
"System.Runtime.CompilerServices.Unsafe": "6.1.0"
},
"runtime": {
"StgSharp.Commom.dll": {
"assemblyVersion": "1.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"StgSharp.Script/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.CSharp/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==",
"path": "microsoft.csharp/4.7.0",
"hashPath": "microsoft.csharp.4.7.0.nupkg.sha512"
},
"System.Runtime.CompilerServices.Unsafe/6.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5o/HZxx6RVqYlhKSq8/zronDkALJZUT2Vz0hx43f0gwe8mwlM0y2nYlqdBwLMzr262Bwvpikeb/yEwkAa5PADg==",
"path": "system.runtime.compilerservices.unsafe/6.1.0",
"hashPath": "system.runtime.compilerservices.unsafe.6.1.0.nupkg.sha512"
},
"StgSharp.Commom/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp.Model.Lang")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6cfaa42ff31cf213685faf60a3fcde42b99f0224")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+190d67a034f41346e6e6d4a260aba1cb38cfd6d9")]
[assembly: System.Reflection.AssemblyProductAttribute("StgSharp.Model.Lang")]
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp.Model.Lang")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -0,0 +1,54 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="StgSharp.Script.AssemblyInfo.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute( "StgSharp.Script" )]
[assembly: System.Reflection.AssemblyConfigurationAttribute( "Debug" )]
[assembly: System.Reflection.AssemblyFileVersionAttribute( "1.0.0.0" )]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute(
"1.0.0+190d67a034f41346e6e6d4a260aba1cb38cfd6d9" )]
[assembly: System.Reflection.AssemblyProductAttribute( "StgSharp.Script" )]
[assembly: System.Reflection.AssemblyTitleAttribute( "StgSharp.Script" )]
[assembly: System.Reflection.AssemblyVersionAttribute( "1.0.0.0" )]
// 由 MSBuild WriteCodeFragment 类生成。
@@ -0,0 +1,14 @@
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\bin\Debug\netstandard2.1\StgSharp.Script.deps.json
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\bin\Debug\netstandard2.1\StgSharp.Script.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\bin\Debug\netstandard2.1\StgSharp.Script.pdb
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\bin\Debug\netstandard2.1\StgSharp.Commom.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\bin\Debug\netstandard2.1\StgSharp.Commom.xml
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\obj\Debug\netstandard2.1\StgSharp.Script.csproj.AssemblyReference.cache
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\obj\Debug\netstandard2.1\StgSharp.Script.GeneratedMSBuildEditorConfig.editorconfig
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\obj\Debug\netstandard2.1\StgSharp.Script.AssemblyInfoInputs.cache
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\obj\Debug\netstandard2.1\StgSharp.Script.AssemblyInfo.cs
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\obj\Debug\netstandard2.1\StgSharp.Script.csproj.CoreCompileInputs.cache
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\obj\Debug\netstandard2.1\StgSharp.Script.sourcelink.json
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\obj\Debug\netstandard2.1\StgSharp.D39FE6B0.Up2Date
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\obj\Debug\netstandard2.1\StgSharp.Script.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.Modeling\obj\Debug\netstandard2.1\StgSharp.Script.pdb
@@ -0,0 +1 @@
{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/190d67a034f41346e6e6d4a260aba1cb38cfd6d9/*"}}
@@ -0,0 +1,150 @@
{
"format": 1,
"restore": {
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj": {}
},
"projects": {
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj",
"projectName": "StgSharp.Script",
"projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj",
"packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
"outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"netstandard2.1"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Program Files\\dotnet\\library-packs": {},
"D:\\Programmer\\NugetLocal": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netstandard2.1": {
"targetAlias": "netstandard2.1",
"projectReferences": {
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj": {
"projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"netstandard2.1": {
"targetAlias": "netstandard2.1",
"dependencies": {
"System.Collections.Immutable": {
"target": "Package",
"version": "[8.0.0, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"NETStandard.Library": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400\\RuntimeIdentifierGraph.json"
}
}
},
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj",
"projectName": "StgSharp.Commom",
"projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj",
"packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
"outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"netstandard2.1"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Program Files\\dotnet\\library-packs": {},
"D:\\Programmer\\NugetLocal": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netstandard2.1": {
"targetAlias": "netstandard2.1",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"netstandard2.1": {
"targetAlias": "netstandard2.1",
"dependencies": {
"Microsoft.CSharp": {
"target": "Package",
"version": "[4.7.0, )"
},
"System.Runtime.CompilerServices.Unsafe": {
"target": "Package",
"version": "[6.1.0, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"NETStandard.Library": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400\\RuntimeIdentifierGraph.json"
}
}
}
}
}
@@ -15,6 +15,67 @@
}
}
},
"System.Buffers/4.5.1": {
"type": "package",
"compile": {
"ref/netstandard2.0/System.Buffers.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/System.Buffers.dll": {
"related": ".xml"
}
}
},
"System.Collections.Immutable/8.0.0": {
"type": "package",
"dependencies": {
"System.Memory": "4.5.5",
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
},
"compile": {
"lib/netstandard2.0/System.Collections.Immutable.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/System.Collections.Immutable.dll": {
"related": ".xml"
}
}
},
"System.Memory/4.5.5": {
"type": "package",
"dependencies": {
"System.Buffers": "4.5.1",
"System.Numerics.Vectors": "4.4.0",
"System.Runtime.CompilerServices.Unsafe": "4.5.3"
},
"compile": {
"lib/netstandard2.0/System.Memory.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/System.Memory.dll": {
"related": ".xml"
}
}
},
"System.Numerics.Vectors/4.4.0": {
"type": "package",
"compile": {
"ref/netstandard2.0/System.Numerics.Vectors.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/System.Numerics.Vectors.dll": {
"related": ".xml"
}
}
},
"System.Runtime.CompilerServices.Unsafe/6.1.0": {
"type": "package",
"compile": {
@@ -114,6 +175,133 @@
"version.txt"
]
},
"System.Buffers/4.5.1": {
"sha512": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==",
"type": "package",
"path": "system.buffers/4.5.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/net461/System.Buffers.dll",
"lib/net461/System.Buffers.xml",
"lib/netcoreapp2.0/_._",
"lib/netstandard1.1/System.Buffers.dll",
"lib/netstandard1.1/System.Buffers.xml",
"lib/netstandard2.0/System.Buffers.dll",
"lib/netstandard2.0/System.Buffers.xml",
"lib/uap10.0.16299/_._",
"ref/net45/System.Buffers.dll",
"ref/net45/System.Buffers.xml",
"ref/netcoreapp2.0/_._",
"ref/netstandard1.1/System.Buffers.dll",
"ref/netstandard1.1/System.Buffers.xml",
"ref/netstandard2.0/System.Buffers.dll",
"ref/netstandard2.0/System.Buffers.xml",
"ref/uap10.0.16299/_._",
"system.buffers.4.5.1.nupkg.sha512",
"system.buffers.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"System.Collections.Immutable/8.0.0": {
"sha512": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
"type": "package",
"path": "system.collections.immutable/8.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"PACKAGE.md",
"THIRD-PARTY-NOTICES.TXT",
"buildTransitive/net461/System.Collections.Immutable.targets",
"buildTransitive/net462/_._",
"buildTransitive/net6.0/_._",
"buildTransitive/netcoreapp2.0/System.Collections.Immutable.targets",
"lib/net462/System.Collections.Immutable.dll",
"lib/net462/System.Collections.Immutable.xml",
"lib/net6.0/System.Collections.Immutable.dll",
"lib/net6.0/System.Collections.Immutable.xml",
"lib/net7.0/System.Collections.Immutable.dll",
"lib/net7.0/System.Collections.Immutable.xml",
"lib/net8.0/System.Collections.Immutable.dll",
"lib/net8.0/System.Collections.Immutable.xml",
"lib/netstandard2.0/System.Collections.Immutable.dll",
"lib/netstandard2.0/System.Collections.Immutable.xml",
"system.collections.immutable.8.0.0.nupkg.sha512",
"system.collections.immutable.nuspec",
"useSharedDesignerContext.txt"
]
},
"System.Memory/4.5.5": {
"sha512": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
"type": "package",
"path": "system.memory/4.5.5",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/net461/System.Memory.dll",
"lib/net461/System.Memory.xml",
"lib/netcoreapp2.1/_._",
"lib/netstandard1.1/System.Memory.dll",
"lib/netstandard1.1/System.Memory.xml",
"lib/netstandard2.0/System.Memory.dll",
"lib/netstandard2.0/System.Memory.xml",
"ref/netcoreapp2.1/_._",
"system.memory.4.5.5.nupkg.sha512",
"system.memory.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"System.Numerics.Vectors/4.4.0": {
"sha512": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==",
"type": "package",
"path": "system.numerics.vectors/4.4.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net46/System.Numerics.Vectors.dll",
"lib/net46/System.Numerics.Vectors.xml",
"lib/netcoreapp2.0/_._",
"lib/netstandard1.0/System.Numerics.Vectors.dll",
"lib/netstandard1.0/System.Numerics.Vectors.xml",
"lib/netstandard2.0/System.Numerics.Vectors.dll",
"lib/netstandard2.0/System.Numerics.Vectors.xml",
"lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll",
"lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net46/System.Numerics.Vectors.dll",
"ref/net46/System.Numerics.Vectors.xml",
"ref/netcoreapp2.0/_._",
"ref/netstandard1.0/System.Numerics.Vectors.dll",
"ref/netstandard1.0/System.Numerics.Vectors.xml",
"ref/netstandard2.0/System.Numerics.Vectors.dll",
"ref/netstandard2.0/System.Numerics.Vectors.xml",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"system.numerics.vectors.4.4.0.nupkg.sha512",
"system.numerics.vectors.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"System.Runtime.CompilerServices.Unsafe/6.1.0": {
"sha512": "5o/HZxx6RVqYlhKSq8/zronDkALJZUT2Vz0hx43f0gwe8mwlM0y2nYlqdBwLMzr262Bwvpikeb/yEwkAa5PADg==",
"type": "package",
@@ -144,7 +332,8 @@
},
"projectFileDependencyGroups": {
".NETStandard,Version=v2.1": [
"StgSharp.Commom >= 1.0.0"
"StgSharp.Commom >= 1.0.0",
"System.Collections.Immutable >= 8.0.0"
]
},
"packageFolders": {
@@ -153,9 +342,9 @@
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Model.Lang.csproj",
"projectName": "StgSharp.Model.Lang",
"projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Model.Lang.csproj",
"projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj",
"projectName": "StgSharp.Script",
"projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj",
"packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
"outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\obj\\",
"projectStyle": "PackageReference",
@@ -195,6 +384,12 @@
"frameworks": {
"netstandard2.1": {
"targetAlias": "netstandard2.1",
"dependencies": {
"System.Collections.Immutable": {
"target": "Package",
"version": "[8.0.0, )"
}
},
"imports": [
"net461",
"net462",