Skip to content

Commit 3e9f988

Browse files
author
Kapil Borle
committed
Add method to return token nodes
1 parent 4d97359 commit 3e9f988

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

Engine/TokenOperations.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public TokenOperations(Token[] tokens, Ast ast)
4646

4747
this.tokens = tokens;
4848
this.ast = ast;
49-
this.tokensLL = new LinkedList<Token>();
49+
this.tokensLL = new LinkedList<Token>(this.tokens);
5050
}
5151

5252
/// <summary>
@@ -110,20 +110,21 @@ private IEnumerable<Token> GetBraceInCommandElement(TokenKind tokenKind)
110110
}
111111
}
112112

113-
private IEnumerable<LinkedListNode<Token>> GetTokens(TokenKind kind)
113+
public IEnumerable<LinkedListNode<Token>> GetTokenNodes(TokenKind kind)
114114
{
115115
var token = tokensLL.First;
116-
do
116+
while (token != null)
117117
{
118118
if (token.Value.Kind == kind) {
119119
yield return token;
120120
}
121-
} while (token.Next != null);
121+
token = token.Next;
122+
}
122123
}
123124

124125
private IEnumerable<Tuple<Token, int>> GetTokenAndPrecedingWhitespace(TokenKind kind)
125126
{
126-
var lCurlyTokens = GetTokens(TokenKind.LCurly);
127+
var lCurlyTokens = GetTokenNodes(TokenKind.LCurly);
127128
foreach (var item in lCurlyTokens)
128129
{
129130
if (item.Previous == null
@@ -143,6 +144,11 @@ public IEnumerable<Tuple<Token, int>> GetOpenBracesWithWhiteSpacesBefore()
143144
return GetTokenAndPrecedingWhitespace(TokenKind.LCurly);
144145
}
145146

147+
public IEnumerable<Tuple<Token, int>> GetOpenParensWithWhiteSpacesBefore()
148+
{
149+
return GetTokenAndPrecedingWhitespace(TokenKind.LParen);
150+
}
151+
146152
private bool OnSameLine(Token token1, Token token2)
147153
{
148154
return token1.Extent.StartLineNumber == token2.Extent.EndLineNumber;

0 commit comments

Comments
 (0)