MCPcopy Create free account
hub / github.com/Singular/Singular / safe_skip_until

Method safe_skip_until

ppcc/src/parser.cc:95–133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

93 return p;
94 }
95 noinline void safe_skip_until(Word64 syms) {
96 // handle parentheses and brackets properly.
97 Int par_level = 0;
98 Int brkt_level = 0;
99 Int brace_level = 0;
100 for (;;) {
101 Symbol sym = input->at(pos).sym;
102 switch (sym) {
103 case SymEOF:
104 return;
105 case SymLPar:
106 par_level++;
107 break;
108 case SymRPar:
109 par_level--;
110 break;
111 case SymLBrkt:
112 brkt_level++;
113 break;
114 case SymRBrkt:
115 brkt_level--;
116 break;
117 case SymLBrace:
118 brace_level++;
119 break;
120 case SymRBrace:
121 brace_level--;
122 break;
123 default:
124 if (par_level + brkt_level + brace_level > 0)
125 break;
126 if (TEST(syms, sym)) {
127 return;
128 }
129 break;
130 }
131 advance();
132 }
133 }
134 void skipWhiteSpace() {
135 while (BIT(input->at(pos).sym) & SymsWS) {
136 pos++;

Callers 1

TransformVarDeclFunction · 0.80

Calls 1

atMethod · 0.45

Tested by

no test coverage detected