30 lines
709 B
C#
30 lines
709 B
C#
namespace Parsing.Schema.BuildingBlocks;
|
|
|
|
using Parsing.Tokenization;
|
|
|
|
abstract class BuildingBlockBase : IBuildingBlock
|
|
{
|
|
public BuildingBlockBase()
|
|
{
|
|
}
|
|
|
|
public abstract List<IToken> ParseWord(InputProvider inputs);
|
|
|
|
public abstract bool CanParseWord(InputProvider inputs);
|
|
|
|
public abstract bool CanParseWord(string word);
|
|
|
|
public abstract BlockType GetBlockType();
|
|
|
|
public virtual bool IsRepetitionType()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public virtual bool CheckIsDoneParsingAndReset(InputProvider inputs)
|
|
{
|
|
// most blocks are always done parsing after consuming a token
|
|
// repetition blocks can consume multiple tokens
|
|
return true;
|
|
}
|
|
} |