 |
Changeset 3913
- Timestamp:
- 08/25/08 22:55:58
(3 months ago)
- Author:
- kris
- Message:
made parser a bit faster (again)
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r3875 |
r3913 |
|
| 72 | 72 | p.index = 0; |
|---|
| 73 | 73 | |
|---|
| 74 | | super.reset (json); |
|---|
| 75 | | |
|---|
| 76 | 74 | auto v = values.allocate.reset; |
|---|
| 77 | 75 | |
|---|
| 78 | | if (super.next) |
|---|
| | 76 | if (super.reset (json)) |
|---|
| 79 | 77 | if (curType is Token.BeginObject) |
|---|
| 80 | 78 | v.set (parseObject); |
|---|
| r3912 |
r3913 |
|
| 25 | 25 | { |
|---|
| 26 | 26 | Empty, Name, String, Number, BeginObject, EndObject, |
|---|
| 27 | | BeginArray, EndArray, True, False, Null |
|---|
| | 27 | BeginArray, EndArray, True, False, Null |
|---|
| 28 | 28 | } |
|---|
| 29 | 29 | |
|---|
| … | … | |
| 69 | 69 | auto e = str.end; |
|---|
| 70 | 70 | |
|---|
| 71 | | while (p < e && *p <= 32) |
|---|
| | 71 | while (*p <= 32 && p < e) |
|---|
| 72 | 72 | ++p; |
|---|
| 73 | 73 | |
|---|
| … | … | |
| 80 | 80 | switch (curType) |
|---|
| 81 | 81 | { |
|---|
| | 82 | case Token.Name: |
|---|
| | 83 | return parseMemberValue; |
|---|
| | 84 | |
|---|
| 82 | 85 | default: |
|---|
| 83 | 86 | break; |
|---|
| 84 | | |
|---|
| 85 | | case Token.Name: |
|---|
| 86 | | return parseMemberValue; |
|---|
| 87 | | |
|---|
| 88 | | case Token.Empty: |
|---|
| 89 | | return start (*p); |
|---|
| 90 | 87 | } |
|---|
| 91 | 88 | |
|---|
| … | … | |
| 115 | 112 | ***********************************************************************/ |
|---|
| 116 | 113 | |
|---|
| 117 | | void reset (T[] json = null) |
|---|
| | 114 | bool reset (T[] json = null) |
|---|
| 118 | 115 | { |
|---|
| 119 | 116 | state.clear; |
|---|
| … | … | |
| 121 | 118 | curType = Token.Empty; |
|---|
| 122 | 119 | curState = State.Object; |
|---|
| | 120 | |
|---|
| | 121 | if (json.length) |
|---|
| | 122 | { |
|---|
| | 123 | auto p = str.ptr; |
|---|
| | 124 | auto e = str.end; |
|---|
| | 125 | |
|---|
| | 126 | while (*p <= 32 && p < e) |
|---|
| | 127 | ++p; |
|---|
| | 128 | if (p < e) |
|---|
| | 129 | return start (*(str.ptr = p)); |
|---|
| | 130 | } |
|---|
| | 131 | return false; |
|---|
| 123 | 132 | } |
|---|
| 124 | 133 | |
|---|
Download in other formats:
|
 |
 |
|
 |
Copyright © 2006-2008 Tango. All Rights Reserved. | Page Width:
Static or
Dynamic