Skip to content

Commit

Permalink
WIP: work with content resolver
Browse files Browse the repository at this point in the history
  • Loading branch information
galievaL committed Jul 29, 2021
1 parent 4965ce2 commit 5619961
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 21 deletions.
47 changes: 26 additions & 21 deletions src/GDShrapt.Reader/Resolvers/GDContentResolver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace GDShrapt.Reader
{
internal class GDContentResolver : GDResolver
internal class GDContentResolver : GDIntendedResolver
{
new IIntendedTokenReceiver<GDNode> Owner { get; }

Expand All @@ -11,43 +11,48 @@ internal class GDContentResolver : GDResolver
GDSpace _lastSpace;

public GDContentResolver(IIntendedTokenReceiver<GDNode> owner)
: base(owner)
: base(owner, 0)
{
Owner = owner;
}


internal override void HandleChar(char c, GDReadingState state)
internal override void HandleCharAfterIntendation(char c, GDReadingState state)
{
if (IsSpace(c))
if (char.IsLetter(c) || c == '_')
{
if (_sequence.Length == 0)
{
state.PushAndPass(_lastSpace = new GDSpace(), c);
}
else
{
HandleSequence(_sequence.ToString());
}
_sequence.Append(c);
return;
}
else

if (_sequence.Length > 0)
{
//if (char.
HandleSequence(_sequence.ToString());
_sequence.Clear();
state.PassChar(c);
return;
}

if (char.IsLetter(c))
{
_sequence.Append(c);
return;
}
if (IsSpace(c))
{
state.PushAndPass(_lastSpace = new GDSpace(), c);
return;
}

// statements
//state.Pop();

state.PushAndPass(new GDStatementsList(), c);


}

private void HandleSequence(string seq)
{

}

internal override void HandleNewLineChar(GDReadingState state)
internal override void HandleNewLineAfterIntendation(GDReadingState state)
{
if (_sequence.Length == 0)
{
Expand All @@ -65,7 +70,7 @@ internal override void HandleNewLineChar(GDReadingState state)
}
}

internal override void HandleSharpChar(GDReadingState state)
internal override void HandleSharpCharAfterIntendation(GDReadingState state)
{
if (_sequence.Length == 0)
{
Expand Down
3 changes: 3 additions & 0 deletions src/GDShrapt.Reader/Resolvers/GDIntendedResolver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ internal abstract class GDIntendedResolver : GDResolver
readonly StringBuilder _sequenceBuilder = new StringBuilder();

int _lineIntendation;

public int CalculatedIntendation => _lineIntendation;

bool _lineIntendationEnded;
int _spaceCounter;
bool _inComment;
Expand Down

0 comments on commit 5619961

Please sign in to comment.