| OLD | NEW |
| 1 // This code was auto-generated, is not intended to be edited, and is subject to | 1 // This code was auto-generated, is not intended to be edited, and is subject to |
| 2 // significant change. Please see the README file for more information. | 2 // significant change. Please see the README file for more information. |
| 3 | 3 |
| 4 library engine.scanner; | 4 library engine.scanner; |
| 5 | 5 |
| 6 import 'dart:collection'; | 6 import 'dart:collection'; |
| 7 import 'java_core.dart'; | 7 import 'java_core.dart'; |
| 8 import 'source.dart'; | 8 import 'source.dart'; |
| 9 import 'error.dart'; | 9 import 'error.dart'; |
| 10 import 'instrumentation.dart'; | 10 import 'instrumentation.dart'; |
| (...skipping 1753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1764 Token get precedingComments => _precedingComment; | 1764 Token get precedingComments => _precedingComment; |
| 1765 } | 1765 } |
| 1766 /** | 1766 /** |
| 1767 * Instances of the abstract class {@code KeywordState} represent a state in a s
tate machine used to | 1767 * Instances of the abstract class {@code KeywordState} represent a state in a s
tate machine used to |
| 1768 * scan keywords. | 1768 * scan keywords. |
| 1769 */ | 1769 */ |
| 1770 class KeywordState { | 1770 class KeywordState { |
| 1771 /** | 1771 /** |
| 1772 * An empty transition table used by leaf states. | 1772 * An empty transition table used by leaf states. |
| 1773 */ | 1773 */ |
| 1774 static List<KeywordState> _EMPTY_TABLE = new List<KeywordState>.fixedLength(26
); | 1774 static List<KeywordState> _EMPTY_TABLE = new List<KeywordState>(26); |
| 1775 /** | 1775 /** |
| 1776 * The initial state in the state machine. | 1776 * The initial state in the state machine. |
| 1777 */ | 1777 */ |
| 1778 static KeywordState KEYWORD_STATE = createKeywordStateTable(); | 1778 static KeywordState KEYWORD_STATE = createKeywordStateTable(); |
| 1779 /** | 1779 /** |
| 1780 * Create the next state in the state machine where we have already recognized
the subset of | 1780 * Create the next state in the state machine where we have already recognized
the subset of |
| 1781 * strings in the given array of strings starting at the given offset and havi
ng the given length. | 1781 * strings in the given array of strings starting at the given offset and havi
ng the given length. |
| 1782 * All of these strings have a common prefix and the next character is at the
given start index. | 1782 * All of these strings have a common prefix and the next character is at the
given start index. |
| 1783 * @param start the index of the character in the strings used to transition t
o a new state | 1783 * @param start the index of the character in the strings used to transition t
o a new state |
| 1784 * @param strings an array containing all of the strings that will be recogniz
ed by the state | 1784 * @param strings an array containing all of the strings that will be recogniz
ed by the state |
| 1785 * machine | 1785 * machine |
| 1786 * @param offset the offset of the first string in the array that has the pref
ix that is assumed | 1786 * @param offset the offset of the first string in the array that has the pref
ix that is assumed |
| 1787 * to have been recognized by the time we reach the state being built | 1787 * to have been recognized by the time we reach the state being built |
| 1788 * @param length the number of strings in the array that pass through the stat
e being built | 1788 * @param length the number of strings in the array that pass through the stat
e being built |
| 1789 * @return the state that was created | 1789 * @return the state that was created |
| 1790 */ | 1790 */ |
| 1791 static KeywordState computeKeywordStateTable(int start, List<String> strings,
int offset, int length12) { | 1791 static KeywordState computeKeywordStateTable(int start, List<String> strings,
int offset, int length12) { |
| 1792 List<KeywordState> result = new List<KeywordState>.fixedLength(26); | 1792 List<KeywordState> result = new List<KeywordState>(26); |
| 1793 assert(length12 != 0); | 1793 assert(length12 != 0); |
| 1794 int chunk = 0x0; | 1794 int chunk = 0x0; |
| 1795 int chunkStart = -1; | 1795 int chunkStart = -1; |
| 1796 bool isLeaf = false; | 1796 bool isLeaf = false; |
| 1797 for (int i = offset; i < offset + length12; i++) { | 1797 for (int i = offset; i < offset + length12; i++) { |
| 1798 if (strings[i].length == start) { | 1798 if (strings[i].length == start) { |
| 1799 isLeaf = true; | 1799 isLeaf = true; |
| 1800 } | 1800 } |
| 1801 if (strings[i].length > start) { | 1801 if (strings[i].length > start) { |
| 1802 int c = strings[i].codeUnitAt(start); | 1802 int c = strings[i].codeUnitAt(start); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1821 } else { | 1821 } else { |
| 1822 return new KeywordState(result, null); | 1822 return new KeywordState(result, null); |
| 1823 } | 1823 } |
| 1824 } | 1824 } |
| 1825 /** | 1825 /** |
| 1826 * Create the initial state in the state machine. | 1826 * Create the initial state in the state machine. |
| 1827 * @return the state that was created | 1827 * @return the state that was created |
| 1828 */ | 1828 */ |
| 1829 static KeywordState createKeywordStateTable() { | 1829 static KeywordState createKeywordStateTable() { |
| 1830 List<Keyword> values2 = Keyword.values; | 1830 List<Keyword> values2 = Keyword.values; |
| 1831 List<String> strings = new List<String>.fixedLength(values2.length); | 1831 List<String> strings = new List<String>(values2.length); |
| 1832 for (int i = 0; i < values2.length; i++) { | 1832 for (int i = 0; i < values2.length; i++) { |
| 1833 strings[i] = values2[i].syntax; | 1833 strings[i] = values2[i].syntax; |
| 1834 } | 1834 } |
| 1835 strings.sort(); | 1835 strings.sort(); |
| 1836 return computeKeywordStateTable(0, strings, 0, strings.length); | 1836 return computeKeywordStateTable(0, strings, 0, strings.length); |
| 1837 } | 1837 } |
| 1838 /** | 1838 /** |
| 1839 * A table mapping characters to the states to which those characters will tra
nsition. (The index | 1839 * A table mapping characters to the states to which those characters will tra
nsition. (The index |
| 1840 * into the array is the offset from the character {@code 'a'} to the transiti
oning character.) | 1840 * into the array is the offset from the character {@code 'a'} to the transiti
oning character.) |
| 1841 */ | 1841 */ |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1860 * recognized a keyword. | 1860 * recognized a keyword. |
| 1861 * @return the keyword that was matched by reaching this state | 1861 * @return the keyword that was matched by reaching this state |
| 1862 */ | 1862 */ |
| 1863 Keyword keyword() => _keyword2; | 1863 Keyword keyword() => _keyword2; |
| 1864 /** | 1864 /** |
| 1865 * Return the state that follows this state on a transition of the given chara
cter, or{@code null} if there is no valid state reachable from this state with s
uch a transition. | 1865 * Return the state that follows this state on a transition of the given chara
cter, or{@code null} if there is no valid state reachable from this state with s
uch a transition. |
| 1866 * @param c the character used to transition from this state to another state | 1866 * @param c the character used to transition from this state to another state |
| 1867 * @return the state that follows this state on a transition of the given char
acter | 1867 * @return the state that follows this state on a transition of the given char
acter |
| 1868 */ | 1868 */ |
| 1869 KeywordState next(int c) => _table[c - 0x61]; | 1869 KeywordState next(int c) => _table[c - 0x61]; |
| 1870 } | 1870 } |
| OLD | NEW |