Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 4c39de8

Browse files
committed
[Java] Added the ability to collect groups that may contain var data.
1 parent c5a5967 commit 4c39de8

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/ir/GenerationUtil.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,20 +47,33 @@ public static int collectRootFields(final List<Token> tokens, int index, final L
4747
return index;
4848
}
4949

50-
public static int collectGroups(final List<Token> tokens, int index, final List<Token> groups)
50+
public static int collectGroups(final List<Token> tokens, final int index, final List<Token> groups)
5151
{
52-
for (int size = tokens.size(); index < size; index++)
52+
int groupStart = -1;
53+
int groupEnd = index;
54+
for (int i = index, size = tokens.size(); i < size; i++)
5355
{
54-
final Token token = tokens.get(index);
55-
if (Signal.BEGIN_VAR_DATA == token.signal())
56+
final Token token = tokens.get(i);
57+
if (Signal.BEGIN_GROUP == token.signal() && -1 == groupStart)
5658
{
57-
return index;
59+
groupStart = i;
5860
}
5961

60-
groups.add(token);
62+
if (Signal.END_GROUP == token.signal())
63+
{
64+
groupEnd = i;
65+
}
6166
}
6267

63-
return index;
68+
if (groupStart > -1)
69+
{
70+
for (int i = groupStart; i <= groupEnd; i++)
71+
{
72+
groups.add(tokens.get(i));
73+
}
74+
}
75+
76+
return groupEnd;
6477
}
6578

6679
public static List<Token> getMessageBody(final List<Token> tokens)

0 commit comments

Comments
 (0)