feat: temporary grammar
This commit is contained in:
@@ -1,3 +1,27 @@
|
||||
namespace InkBlot.ParseHierarchy;
|
||||
using OneOf;
|
||||
|
||||
public record MultiDivert : StoryNode;
|
||||
namespace InkBlot.ParseHierarchy;
|
||||
|
||||
[GenerateOneOf]
|
||||
public partial class
|
||||
MultiDivert : OneOfBase<ThreadDivert, DivertsListWithReturnFromTunnel, DivertsListWithoutReturnFromTunnel>,
|
||||
IStoryNode
|
||||
{
|
||||
}
|
||||
|
||||
public record Identifier(string[] Elements /* TODO: expressions */);
|
||||
|
||||
// <- thread_name
|
||||
public record ThreadDivert(Identifier Identifier) : IStoryNode;
|
||||
|
||||
// -> ... ->-> // return from tunnel
|
||||
// or
|
||||
// -> ... ->-> tunnelReplacement // return from tunnel, but replace destination
|
||||
public record DivertsListWithReturnFromTunnel(Identifier[] Identifiers, Identifier? TunnelReplacement)
|
||||
: IStoryNode;
|
||||
|
||||
// -> ... -> div // not a tunnel
|
||||
// or
|
||||
// -> ... -> div -> // is tunnel
|
||||
public record DivertsListWithoutReturnFromTunnel(Identifier[] Identifiers, bool IsTunnel)
|
||||
: IStoryNode;
|
||||
Reference in New Issue
Block a user