| 224 | } |
| 225 | |
| 226 | bool Parser::ParseStatement(Parser::Context &context) { |
| 227 | // Handle type |
| 228 | if (context.TryNext("KERNEL")) { |
| 229 | return ParseKernel(context); |
| 230 | } else if (context.TryNext("DISPATCH")) { |
| 231 | return ParseDispatch(context); |
| 232 | } else if (context.TryNext("RESOURCE")) { |
| 233 | return ParseResource(context); |
| 234 | } else if (context.TryNext("CHECK")) { |
| 235 | return ParseCheck(context); |
| 236 | } else if (context.TryNext("MESSAGE")) { |
| 237 | return ParseMessage(context); |
| 238 | } else if (context.TryNext("SCHEMA")) { |
| 239 | return ParseSchema(context); |
| 240 | } else if (context.TryNext("EXECUTOR")) { |
| 241 | return ParseExecutor(context); |
| 242 | }else if (context.TryNext("SAFEGUARD")) { |
| 243 | return ParseSafeGuard(context); |
| 244 | } |
| 245 | |
| 246 | // Unknown |
| 247 | context.Error("Unknown test statement "); |
| 248 | return false; |
| 249 | } |
| 250 | |
| 251 | bool Parser::ParseKernel(Parser::Context &context) { |
| 252 | // Parse type |