iparser 1.1.4 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +12 -9
- data/lib/iparser.rb +6 -0
- data/lib/iparser/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 051ef5d38afe13cb8520bd3d614c7ed901162b36
|
4
|
+
data.tar.gz: 525de30addbade95e26236e7501a71065881b9ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5060ec8998ed3ba971cb8f3471fba3a6a836d2fe14118323917371267090f6ead2363d9e357faee8d35266a94d0f397d255d5883d2d4969cfcd0a626fc1f794
|
7
|
+
data.tar.gz: 84b75688e07b04918b1d39e5f940e69e2b8b98fd8cc3183eb69f541f708d21d1a0c79ddc28904c0851b836ce254b2895e6fbf8682e4055f3d41a586db0dcd146
|
data/README.md
CHANGED
@@ -83,15 +83,15 @@ Check each state.
|
|
83
83
|
**NOTE**: Type `'\\'` for input `'\'`.
|
84
84
|
|
85
85
|
Each state has the following templates:
|
86
|
-
|
87
|
-
|
88
|
-
|
86
|
+
1. __entry__ - used for set condition (template) to entry state.
|
87
|
+
2. __leave__ - used for set condition (template) to leave state (return to previous state).
|
88
|
+
3. __ignore__ - used for set symbols to ignoring.
|
89
89
|
|
90
90
|
After successfully check, you can add handler to each state.
|
91
91
|
Each state has the following handlers:
|
92
|
-
|
93
|
-
|
94
|
-
|
92
|
+
1. __init__ - is state contructor (called when entry to state).
|
93
|
+
2. __fini__ - is state destructor (called when leave state).
|
94
|
+
3. __handler__ - is state handler (called every time, is still in state).
|
95
95
|
|
96
96
|
Each handler can return the following values: __nil__ - nothing is done (method `.parse` return `true`)
|
97
97
|
and __any__ values for break parsing (method `.parse` return `false`). For break parsing process you
|
@@ -250,9 +250,9 @@ After work, we should see a file named 'index.html'.
|
|
250
250
|
|
251
251
|
Если все переходы работают как мы и ожидали, то можно перейти к написанию обработчиков наших состояний.
|
252
252
|
|
253
|
-
Метод `doc_init` будет вызываться при входе в состояние, т.е. является конструктором состояния.
|
254
|
-
Метод `doc_handler` будет вызываться каждый раз, до тех пор пока парсер находится в состоянии `comment-line` или `comment-block`.
|
255
|
-
Метод `doc_fini` будет вызываться при выходе из состояния, т.е. является деструктором состояния.
|
253
|
+
* Метод `doc_init` будет вызываться при входе в состояние, т.е. является конструктором состояния.
|
254
|
+
* Метод `doc_handler` будет вызываться каждый раз, до тех пор пока парсер находится в состоянии `comment-line` или `comment-block`.
|
255
|
+
* Метод `doc_fini` будет вызываться при выходе из состояния, т.е. является деструктором состояния.
|
256
256
|
|
257
257
|
Обработчики состояния должены возвращать следующие значения: __nil__ - говорит парсер-машине о том,
|
258
258
|
что процесс разбора продолжается и метод `.parse` вернет `true` и любое отличное от __nil__ значение
|
@@ -283,6 +283,9 @@ end
|
|
283
283
|
|
284
284
|
Details information for each patch.
|
285
285
|
|
286
|
+
##### 1.1.5
|
287
|
+
* Add method `.current_state` for return name (String) of current state in parser-machine.
|
288
|
+
|
286
289
|
##### 1.1.4
|
287
290
|
* Add method `.state_index` for return index of parser-state.
|
288
291
|
* Add analyes result of any handler (init, fini, handler).
|
data/lib/iparser.rb
CHANGED
@@ -109,6 +109,12 @@ module Iparser
|
|
109
109
|
s.ileave = 0
|
110
110
|
end
|
111
111
|
end
|
112
|
+
|
113
|
+
# Return current state name.
|
114
|
+
def current_state ( )
|
115
|
+
return @chain.last.statename if @chain.size > 0
|
116
|
+
return nil
|
117
|
+
end
|
112
118
|
|
113
119
|
# Initialize parser object,
|
114
120
|
# should be called before call other methods.
|
data/lib/iparser/version.rb
CHANGED