MCPcopy Create free account
hub / github.com/csyonghe/Spire / ParseInternal

Function ParseInternal

Source/SpireCore/KeyHoleMatching.cpp:8–33  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6 namespace Compiler
7 {
8 RefPtr<KeyHoleNode> ParseInternal(CoreLib::Text::TokenReader & parser)
9 {
10 RefPtr<KeyHoleNode> result = new KeyHoleNode();
11 result->NodeType = parser.ReadWord();
12 if (parser.LookAhead("<"))
13 {
14 parser.ReadToken();
15 result->CaptureId = parser.ReadInt();
16 parser.ReadToken();
17 }
18 if (parser.LookAhead("("))
19 {
20 while (!parser.LookAhead(")"))
21 {
22 result->Children.Add(ParseInternal(parser));
23 if (parser.LookAhead(","))
24 parser.ReadToken();
25 else
26 {
27 break;
28 }
29 }
30 parser.Read(")");
31 }
32 return result;
33 }
34
35 RefPtr<KeyHoleNode> KeyHoleNode::Parse(String format)
36 {

Callers 1

ParseMethod · 0.85

Calls 6

ReadWordMethod · 0.80
LookAheadMethod · 0.80
ReadIntMethod · 0.80
ReadTokenMethod · 0.45
AddMethod · 0.45
ReadMethod · 0.45

Tested by

no test coverage detected