| 279 | return pass(pushlex("stat"), expression, expect(";"), poplex); |
| 280 | } |
| 281 | function expression(type) { |
| 282 | if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator); |
| 283 | if (type == "function") return cont(functiondef); |
| 284 | if (type == "keyword c") return cont(maybeexpression); |
| 285 | if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeoperator); |
| 286 | if (type == "operator") return cont(expression); |
| 287 | if (type == "[") return cont(pushlex("]"), commasep(expression, "]"), poplex, maybeoperator); |
| 288 | if (type == "{") return cont(pushlex("}"), commasep(objprop, "}"), poplex, maybeoperator); |
| 289 | return cont(); |
| 290 | } |
| 291 | function maybeexpression(type) { |
| 292 | if (type.match(/[;\}\)\],]/)) return pass(); |
| 293 | return pass(expression); |