add level 3 and backport textparser changes
This commit is contained in:
37
Common/FragmentLevelSolverBase.cs
Normal file
37
Common/FragmentLevelSolverBase.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
namespace AoC24.Common;
|
||||
|
||||
using AoCLevelInputProvider;
|
||||
using Parsing;
|
||||
using Parsing.Schema;
|
||||
using Parsing.Tokenization;
|
||||
|
||||
public abstract class FragmentLevelSolverBase
|
||||
{
|
||||
public abstract int LevelNumber { get; }
|
||||
private int Year = 2024;
|
||||
private LevelInputProvider inputProvider = new LevelInputProvider();
|
||||
|
||||
protected string GetLevelInput()
|
||||
{
|
||||
return inputProvider.WithYear(this.Year).WithLevel(this.LevelNumber).Provide();
|
||||
}
|
||||
|
||||
public abstract string SolveFirstStar();
|
||||
|
||||
public abstract string SolveSecondStar();
|
||||
|
||||
protected abstract FragmentSchemaBuilder DefineInputSchema(FragmentSchemaBuilder schemaBuilder);
|
||||
|
||||
public TokenConverter GetData()
|
||||
{
|
||||
FragmentSchemaBuilder schemaBuilder = new FragmentSchemaBuilder();
|
||||
var schema = this.DefineInputSchema(schemaBuilder).Build();
|
||||
|
||||
var parser = TextParser.Create(schema);
|
||||
var data = parser
|
||||
.SetInputText(this.GetLevelInput())
|
||||
.Parse();
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ using Parsing;
|
||||
using Parsing.Schema;
|
||||
using Parsing.Tokenization;
|
||||
|
||||
public abstract class LevelSolverBase
|
||||
public abstract class FullTextLevelSolverBase
|
||||
{
|
||||
public abstract int LevelNumber { get; }
|
||||
private int Year = 2024;
|
||||
@@ -24,10 +24,10 @@ public abstract class LevelSolverBase
|
||||
|
||||
public TokenConverter GetData()
|
||||
{
|
||||
var schemaBuilder = new InputSchemaBuilder();
|
||||
InputSchemaBuilder schemaBuilder = new InputSchemaBuilder();
|
||||
var schema = this.DefineInputSchema(schemaBuilder).Build();
|
||||
|
||||
var parser = new TextParser(schema);
|
||||
var parser = TextParser.Create(schema);
|
||||
var data = parser
|
||||
.SetInputText(this.GetLevelInput())
|
||||
.Parse();
|
||||
Reference in New Issue
Block a user