| 227 | return pass(pushlex("stat"), expression, expect(";"), poplex); |
| 228 | } |
| 229 | function expression(type) { |
| 230 | if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator); |
| 231 | if (type == "function") return cont(functiondef); |
| 232 | if (type == "keyword c") return cont(maybeexpression); |
| 233 | if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeoperator); |
| 234 | if (type == "operator") return cont(expression); |
| 235 | if (type == "[") return cont(pushlex("]"), commasep(expression, "]"), poplex, maybeoperator); |
| 236 | if (type == "{") return cont(pushlex("}"), commasep(objprop, "}"), poplex, maybeoperator); |
| 237 | return cont(); |
| 238 | } |
| 239 | function maybeexpression(type) { |
| 240 | if (type.match(/[;\}\)\],]/)) return pass(); |
| 241 | return pass(expression); |