| 2034 | | break; |
|---|
| 2035 | | } |
|---|
| 2036 | | } |
|---|
| 2037 | | private function parse_memberExpression (expressionResult:ExpressionResult) : Void |
|---|
| 2038 | | { |
|---|
| 2039 | | switch (getToken().type) { |
|---|
| 2040 | | case 'function': { |
|---|
| 2041 | | parse_functionExpression(expressionResult); |
|---|
| 2042 | | } |
|---|
| 2043 | | break; |
|---|
| 2044 | | |
|---|
| 2045 | | case 'coroutine': { |
|---|
| 2046 | | parse_coroutineExpression(expressionResult); |
|---|
| 2047 | | } |
|---|
| 2048 | | break; |
|---|
| 2049 | | |
|---|
| 2050 | | case 'new': { |
|---|
| 2051 | | nextToken(); |
|---|
| 2052 | | |
|---|
| 2053 | | parse_memberExpression(expressionResult); |
|---|
| 2054 | | generator.putExpressionResult(expressionResult); |
|---|
| 2055 | | |
|---|
| 2056 | | var numOfArguments:Number = 0; |
|---|
| 2057 | | |
|---|
| 2058 | | if (isToken('(')) { |
|---|
| 2059 | | numOfArguments += parse_arguments(); |
|---|
| 2060 | | } |
|---|
| 2061 | | |
|---|
| 2062 | | generator.putNew(numOfArguments); |
|---|
| 2063 | | |
|---|
| 2064 | | expressionResult.setType('stack'); |
|---|
| 2065 | | } |
|---|
| 2066 | | break; |
|---|
| 2067 | | |
|---|
| 2068 | | default: { |
|---|
| 2069 | | parse_primaryExpression(expressionResult); |
|---|
| 2070 | | } |
|---|
| 2071 | | } |
|---|
| 2072 | | |
|---|
| 2073 | | for (;;) { |
|---|
| | 2066 | } |
|---|
| | 2067 | } |
|---|
| | 2068 | private function parse_memberExpression (expressionResult:ExpressionResult) : Void |
|---|
| | 2069 | { |
|---|
| | 2070 | switch (getToken().type) { |
|---|
| | 2071 | case 'function': { |
|---|
| | 2072 | parse_functionExpression(expressionResult); |
|---|
| | 2073 | } |
|---|
| | 2074 | break; |
|---|
| | 2075 | |
|---|
| | 2076 | case 'coroutine': { |
|---|
| | 2077 | parse_coroutineExpression(expressionResult); |
|---|
| | 2078 | } |
|---|
| | 2079 | break; |
|---|
| | 2080 | |
|---|
| | 2081 | case 'new': { |
|---|
| | 2082 | nextToken(); |
|---|
| | 2083 | |
|---|
| | 2084 | parse_memberExpression(expressionResult); |
|---|
| | 2085 | generator.putExpressionResult(expressionResult); |
|---|
| | 2086 | |
|---|
| | 2087 | var numOfArguments:Number = 0; |
|---|
| | 2088 | |
|---|
| | 2089 | if (isToken('(')) { |
|---|
| | 2090 | numOfArguments += parse_arguments(); |
|---|
| | 2091 | } |
|---|
| | 2092 | |
|---|
| | 2093 | generator.putNew(numOfArguments); |
|---|
| | 2094 | |
|---|
| | 2095 | expressionResult.setType('stack'); |
|---|
| | 2096 | } |
|---|
| | 2097 | break; |
|---|
| | 2098 | |
|---|
| | 2099 | default: { |
|---|
| | 2100 | parse_primaryExpression(expressionResult); |
|---|
| | 2101 | } |
|---|