tallakt-plcutil 0.2.6 → 0.2.7
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/plcutil/siemens/awl/awl.treetop +27 -2
- data/lib/plcutil/siemens/awl/awl_file.rb +2 -2
- data/lib/plcutil.rb +1 -1
- metadata +1 -1
@@ -12,6 +12,9 @@ module PlcUtil
|
|
12
12
|
rule db
|
13
13
|
'DATA_BLOCK ' name eol
|
14
14
|
title
|
15
|
+
author?
|
16
|
+
family?
|
17
|
+
block_name?
|
15
18
|
'VERSION : ' version eol
|
16
19
|
eol*
|
17
20
|
root_struct_decl
|
@@ -23,6 +26,9 @@ module PlcUtil
|
|
23
26
|
|
24
27
|
rule udt
|
25
28
|
'TYPE ' name eol
|
29
|
+
author?
|
30
|
+
family?
|
31
|
+
block_name?
|
26
32
|
'VERSION : ' version eol
|
27
33
|
eol*
|
28
34
|
root_struct_decl
|
@@ -33,6 +39,9 @@ module PlcUtil
|
|
33
39
|
rule ob
|
34
40
|
'ORGANIZATION_BLOCK ' name eol
|
35
41
|
title
|
42
|
+
author?
|
43
|
+
family?
|
44
|
+
block_name?
|
36
45
|
'VERSION : ' version eol
|
37
46
|
eol*
|
38
47
|
(!ob_end .)*
|
@@ -68,6 +77,18 @@ module PlcUtil
|
|
68
77
|
'TITLE =' optional_title:(ws title_quoted:(quoted_string))? eol
|
69
78
|
end
|
70
79
|
|
80
|
+
rule author
|
81
|
+
'AUTHOR : ' (!eol .)* eol
|
82
|
+
end
|
83
|
+
|
84
|
+
rule family
|
85
|
+
'FAMILY : ' (!eol .)* eol
|
86
|
+
end
|
87
|
+
|
88
|
+
rule block_name
|
89
|
+
'NAME : ' (!eol .)* eol
|
90
|
+
end
|
91
|
+
|
71
92
|
rule ob_end
|
72
93
|
'END_ORGANIZATION_BLOCK'
|
73
94
|
end
|
@@ -93,7 +114,7 @@ module PlcUtil
|
|
93
114
|
end
|
94
115
|
|
95
116
|
rule initial_value
|
96
|
-
':=' ws single_quoted_string
|
117
|
+
':=' ws (single_quoted_string / float)
|
97
118
|
end
|
98
119
|
|
99
120
|
rule array_declaration
|
@@ -110,7 +131,7 @@ module PlcUtil
|
|
110
131
|
end
|
111
132
|
|
112
133
|
rule struct_data_type
|
113
|
-
'STRUCT' ws? eol
|
134
|
+
'STRUCT' ws? struct_comment:(line_comment?) eol
|
114
135
|
decl:declaration*
|
115
136
|
ws 'END_STRUCT'
|
116
137
|
end
|
@@ -152,6 +173,10 @@ module PlcUtil
|
|
152
173
|
(single_quoted_string / (!(ws / ';') .)+)
|
153
174
|
end
|
154
175
|
|
176
|
+
rule float
|
177
|
+
[0-9]+ "." [0-9]+ "e+" [0-9]+
|
178
|
+
end
|
179
|
+
|
155
180
|
rule eol
|
156
181
|
"\r"? "\n"
|
157
182
|
end
|
@@ -16,7 +16,7 @@ module PlcUtil
|
|
16
16
|
attr_reader :symlist
|
17
17
|
|
18
18
|
def initialize(filename, options = {})
|
19
|
-
@symlist = options[:symlist] && SymlistFile.new(options[:symlist])
|
19
|
+
@symlist = options[:symlist] && SymlistFile.new(options[:symlist]) || {}
|
20
20
|
# parse file
|
21
21
|
parser = PlcUtil::Awl::AwlGrammarParser.new
|
22
22
|
awl_nodes = parser.parse File.read(filename)
|
@@ -24,7 +24,7 @@ module PlcUtil
|
|
24
24
|
if !@awl
|
25
25
|
raise [
|
26
26
|
"Unable to parse file: #{filename}",
|
27
|
-
"Failure on line #{parser.failure_line} column #{parser.
|
27
|
+
"Failure on line #{parser.failure_line} column #{parser.failure_column}",
|
28
28
|
"Details:",
|
29
29
|
parser.failure_reason.inspect,
|
30
30
|
].join("\n")
|
data/lib/plcutil.rb
CHANGED