| OLD | NEW | 
|---|
| 1 \documentclass{article} | 1 \documentclass{article} | 
| 2 \usepackage{epsfig} | 2 \usepackage{epsfig} | 
| 3 \usepackage{color} | 3 \usepackage{color} | 
| 4 \usepackage{dart} | 4 \usepackage{dart} | 
| 5 \usepackage{bnf} | 5 \usepackage{bnf} | 
| 6 \usepackage{hyperref} | 6 \usepackage{hyperref} | 
| 7 \usepackage{lmodern} | 7 \usepackage{lmodern} | 
| 8 \newcommand{\code}[1]{{\sf #1}} | 8 \newcommand{\code}[1]{{\sf #1}} | 
| 9 \title{Dart Programming Language  Specification \\ | 9 \title{Dart Programming Language  Specification \\ | 
| 10 {\large Version 1.10}} | 10 {\large Version 1.10}} | 
| (...skipping 4994 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5005 {\bf incrementOperator:}`++'; | 5005 {\bf incrementOperator:}`++'; | 
| 5006       `-{}-' | 5006       `-{}-' | 
| 5007     . | 5007     . | 
| 5008 | 5008 | 
| 5009  \end{grammar} | 5009  \end{grammar} | 
| 5010 | 5010 | 
| 5011 \LMHash{} | 5011 \LMHash{} | 
| 5012  A {\em postfix expression} is either a primary expression, a function, method o
      r getter invocation, or an invocation of a postfix operator on an expression $e$
      . | 5012  A {\em postfix expression} is either a primary expression, a function, method o
      r getter invocation, or an invocation of a postfix operator on an expression $e$
      . | 
| 5013 | 5013 | 
| 5014 \LMHash{} | 5014 \LMHash{} | 
| 5015 A postfix expression of the form \code{$v$++}, where $v$ is an identifier, is eq
      uivalent to \code{()\{var r = $v$; $v$ = r + 1; return r\}()}. | 5015 A postfix expression of the form \code{$v$++}, where $v$ is an identifier, is eq
      uivalent to \code{()\{\VAR{} r = $v$; $v$ = r + 1; \RETURN{} r\}()}. | 
| 5016 | 5016 | 
| 5017 \rationale{The above ensures that if $v$ is a field, the getter gets called exac
      tly once. Likewise in the cases below. | 5017 \rationale{The above ensures that if $v$ is a field, the getter gets called exac
      tly once. Likewise in the cases below. | 
| 5018 } | 5018 } | 
| 5019 %what about e?.x++ |  | 
| 5020 | 5019 | 
| 5021 \LMHash{} | 5020 \LMHash{} | 
| 5022 A postfix expression of the form \code{$C.v$ ++} is equivalent to | 5021 A postfix expression of the form \code{$C.v$ ++} is equivalent to | 
| 5023 | 5022 | 
| 5024 \code{()\{var r = $C.v$; $C.v$ = r + 1; return r\}()}. | 5023 \code{()\{\VAR{} r = $C.v$; $C.v$ = r + 1; \RETURN{} r\}()}. | 
| 5025 | 5024 | 
| 5026 \LMHash{} | 5025 \LMHash{} | 
| 5027 A postfix expression of the form \code{$e_1.v$++} is equivalent to | 5026 A postfix expression of the form \code{$e_1.v$++} is equivalent to | 
| 5028 | 5027 | 
| 5029 \code{(x)\{var r = x.v; x.v = r + 1; \RETURN{} r\}($e_1$)}. | 5028 \code{(x)\{\VAR{} r = x.v; x.v = r + 1; \RETURN{} r\}($e_1$)}. | 
| 5030 | 5029 | 
| 5031 \LMHash{} | 5030 \LMHash{} | 
| 5032 A postfix expression of the form \code{$e_1[e_2]$++},  is equivalent to | 5031 A postfix expression of the form \code{$e_1[e_2]$++},  is equivalent to | 
| 5033 | 5032 | 
| 5034 \code{(a, i)\{var r = a[i]; a[i] = r + 1; return r\}($e_1$, $e_2$)}. | 5033 \code{(a, i)\{\VAR{} r = a[i]; a[i] = r + 1; \RETURN{} r\}($e_1$, $e_2$)}. | 
| 5035 | 5034 | 
| 5036 \LMHash{} | 5035 \LMHash{} | 
| 5037 A postfix expression of the form \code{$v$-{}-}, where $v$ is an identifier, is 
      equivalent to | 5036 A postfix expression of the form \code{$v$-{}-}, where $v$ is an identifier, is 
      equivalent to | 
| 5038 | 5037 | 
| 5039 \code{()\{var r = $v$; $v$ = r - 1; return r\}()}. | 5038 \code{()\{\VAR{} r = $v$; $v$ = r - 1; \RETURN{} r\}()}. | 
| 5040 | 5039 | 
| 5041 \LMHash{} | 5040 \LMHash{} | 
| 5042 A postfix expression of the form \code{$C.v$-{}-} is equivalent to | 5041 A postfix expression of the form \code{$C.v$-{}-} is equivalent to | 
| 5043 | 5042 | 
| 5044 \code{()\{var r = $C.v$; $C.v$ = r - 1; return r\}()}. | 5043 \code{()\{\VAR{} r = $C.v$; $C.v$ = r - 1; \RETURN{} r\}()}. | 
| 5045 | 5044 | 
| 5046 \LMHash{} | 5045 \LMHash{} | 
| 5047 A postfix expression of the form \code{$e_1.v$-{}-} is equivalent to | 5046 A postfix expression of the form \code{$e_1.v$-{}-} is equivalent to | 
| 5048 | 5047 | 
| 5049 \code{(x)\{var r = x.v; x.v = r - 1; \RETURN{} r\}($e_1$)}. | 5048 \code{(x)\{\VAR{} r = x.v; x.v = r - 1; \RETURN{} r\}($e_1$)}. | 
| 5050 | 5049 | 
| 5051 \LMHash{} | 5050 \LMHash{} | 
| 5052 A postfix expression of the form \code{$e_1[e_2]$-{}-},  is equivalent to | 5051 A postfix expression of the form \code{$e_1[e_2]$-{}-},  is equivalent to | 
| 5053 | 5052 | 
| 5054 \code{(a, i)\{var r = a[i]; a[i] = r - 1; return r\}($e_1$, $e_2$)}. | 5053 \code{(a, i)\{\VAR{} r = a[i]; a[i] = r - 1; \RETURN{} r\}($e_1$, $e_2$)}. | 
| 5055 | 5054 | 
|  | 5055 \LMHash{} | 
|  | 5056 A postfix expression of the form \code{$e_1?.v$++} is equivalent to | 
|  | 5057 | 
|  | 5058 \code{((x) =$>$ x == \NULL? \NULL : x.v++)($e_1$)}. | 
|  | 5059 | 
|  | 5060 \LMHash{} | 
|  | 5061 A postfix expression of the form \code{$e_1?.v$-{}-} is equivalent to | 
|  | 5062 | 
|  | 5063 \code{((x) =$>$ x == \NULL? \NULL : x.v-{}-)($e_1$)}. | 
|  | 5064 | 
| 5056 | 5065 | 
| 5057 \subsection{ Assignable Expressions} | 5066 \subsection{ Assignable Expressions} | 
| 5058 \LMLabel{assignableExpressions} | 5067 \LMLabel{assignableExpressions} | 
| 5059 | 5068 | 
| 5060 \LMHash{} | 5069 \LMHash{} | 
| 5061 Assignable expressions are expressions that can appear on the left hand side of 
      an assignment. | 5070 Assignable expressions are expressions that can appear on the left hand side of 
      an assignment. | 
| 5062 This section describes how to evaluate these expressions when they do not consti
      tute the complete left hand side of an assignment. | 5071 This section describes how to evaluate these expressions when they do not consti
      tute the complete left hand side of an assignment. | 
| 5063 | 5072 | 
| 5064 \rationale{ | 5073 \rationale{ | 
| 5065 Of course, if assignable expressions always appeared {\em as} the left hand side
      , one would have no need for their value, and the rules for evaluating them woul
      d be unnecessary. However,  assignable expressions can be subexpressions of othe
      r expressions and therefore must be evaluated. | 5074 Of course, if assignable expressions always appeared {\em as} the left hand side
      , one would have no need for their value, and the rules for evaluating them woul
      d be unnecessary. However,  assignable expressions can be subexpressions of othe
      r expressions and therefore must be evaluated. | 
| (...skipping 2731 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7797 | 7806 | 
| 7798 The invariant that each normative paragraph is associated with a line | 7807 The invariant that each normative paragraph is associated with a line | 
| 7799 containing the text \LMHash{} should be maintained.  Extra occurrences | 7808 containing the text \LMHash{} should be maintained.  Extra occurrences | 
| 7800 of \LMHash{} can be added if needed, e.g., in order to make | 7809 of \LMHash{} can be added if needed, e.g., in order to make | 
| 7801 individual \item{}s in itemized lists addressable.  Each \LM.. command | 7810 individual \item{}s in itemized lists addressable.  Each \LM.. command | 
| 7802 must occur on a separate line.  \LMHash{} must occur immediately | 7811 must occur on a separate line.  \LMHash{} must occur immediately | 
| 7803 before the associated paragraph, and \LMLabel must occur immediately | 7812 before the associated paragraph, and \LMLabel must occur immediately | 
| 7804 after the associated \section{}, \subsection{} etc. | 7813 after the associated \section{}, \subsection{} etc. | 
| 7805 | 7814 | 
| 7806 ---------------------------------------------------------------------- | 7815 ---------------------------------------------------------------------- | 
| OLD | NEW | 
|---|