(type, value)
| 323 | } |
| 324 | |
| 325 | function statement(type, value) { |
| 326 | if (type == "var") return cont(pushlex("vardef", value.length), vardef, expect(";"), poplex); |
| 327 | if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex); |
| 328 | if (type == "keyword b") return cont(pushlex("form"), statement, poplex); |
| 329 | if (type == "{") return cont(pushlex("}"), block, poplex); |
| 330 | if (type == ";") return cont(); |
| 331 | if (type == "if") { |
| 332 | if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex) |
| 333 | cx.state.cc.pop()(); |
| 334 | return cont(pushlex("form"), expression, statement, poplex, maybeelse); |
| 335 | } |
| 336 | if (type == "function") return cont(functiondef); |
| 337 | if (type == "for") return cont(pushlex("form"), forspec, statement, poplex); |
| 338 | if (type == "variable") return cont(pushlex("stat"), maybelabel); |
| 339 | if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"), |
| 340 | block, poplex, poplex); |
| 341 | if (type == "case") return cont(expression, expect(":")); |
| 342 | if (type == "default") return cont(expect(":")); |
| 343 | if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"), |
| 344 | statement, poplex, popcontext); |
| 345 | if (type == "module") return cont(pushlex("form"), pushcontext, afterModule, popcontext, poplex); |
| 346 | if (type == "class") return cont(pushlex("form"), className, poplex); |
| 347 | if (type == "export") return cont(pushlex("form"), afterExport, poplex); |
| 348 | if (type == "import") return cont(pushlex("form"), afterImport, poplex); |
| 349 | return pass(pushlex("stat"), expression, expect(";"), poplex); |
| 350 | } |
| 351 | function expression(type) { |
| 352 | return expressionInner(type, false); |
| 353 | } |
no test coverage detected