166 /*********************/ |
168 /*********************/ |
167 |
169 |
168 /******************************/ |
170 /******************************/ |
169 /* B 1.2.1 - Numeric Literals */ |
171 /* B 1.2.1 - Numeric Literals */ |
170 /******************************/ |
172 /******************************/ |
171 void *visit(real_c *symbol) {return print_token(symbol);} |
173 void *visit(real_c *symbol) {return print_token(symbol);} |
172 void *visit(integer_c *symbol) {return print_token(symbol);} |
174 void *visit(neg_real_c *symbol) {return print_unary_expression(symbol->exp, "-");} |
173 void *visit(binary_integer_c *symbol) {return print_token(symbol);} |
175 void *visit(integer_c *symbol) {return print_token(symbol);} |
174 void *visit(octal_integer_c *symbol) {return print_token(symbol);} |
176 void *visit(neg_integer_c *symbol) {return print_unary_expression(symbol->exp, "-");} |
175 void *visit(hex_integer_c *symbol) {return print_token(symbol);} |
177 void *visit(binary_integer_c *symbol) {return print_token(symbol);} |
176 |
178 void *visit(octal_integer_c *symbol) {return print_token(symbol);} |
177 void *visit(integer_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
179 void *visit(hex_integer_c *symbol) {return print_token(symbol);} |
178 void *visit(real_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
180 |
|
181 void *visit(integer_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
|
182 void *visit(real_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
179 void *visit(bit_string_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
183 void *visit(bit_string_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
180 void *visit(boolean_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
184 void *visit(boolean_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
181 void *visit(neg_literal_c *symbol) {return print_unary_expression(symbol->exp, "-");} |
|
182 |
|
183 |
185 |
184 /* helper class for boolean_literal_c */ |
186 /* helper class for boolean_literal_c */ |
185 void *visit(boolean_true_c *symbol) {s4o.print(/*"TRUE"*/"1"); return NULL;} |
187 void *visit(boolean_true_c *symbol) {s4o.print(/*"TRUE"*/"1"); return NULL;} |
186 void *visit(boolean_false_c *symbol) {s4o.print(/*"FALSE"*/"0"); return NULL;} |
188 void *visit(boolean_false_c *symbol) {s4o.print(/*"FALSE"*/"0"); return NULL;} |
187 |
189 |
188 /*******************************/ |
190 /*******************************/ |
189 /* B.1.2.2 Character Strings */ |
191 /* B.1.2.2 Character Strings */ |
190 /*******************************/ |
192 /*******************************/ |
191 void *visit(double_byte_character_string_c *symbol) {return print_token(symbol);} |
193 void *visit(double_byte_character_string_c *symbol) {return print_token(symbol);} |
295 |
297 |
296 |
298 |
297 /***********************************/ |
299 /***********************************/ |
298 /* B 1.3.1 - Elementary Data Types */ |
300 /* B 1.3.1 - Elementary Data Types */ |
299 /***********************************/ |
301 /***********************************/ |
300 void *visit(time_type_name_c *symbol) {s4o.print("TIME"); return NULL;} |
302 void *visit(time_type_name_c *symbol) {s4o.print("TIME"); return NULL;} |
301 void *visit(bool_type_name_c *symbol) {s4o.print("BOOL"); return NULL;} |
303 void *visit(bool_type_name_c *symbol) {s4o.print("BOOL"); return NULL;} |
302 /******************************************************/ |
304 void *visit(sint_type_name_c *symbol) {s4o.print("SINT"); return NULL;} |
303 /* whether we are suporting safe extensions */ |
305 void *visit(int_type_name_c *symbol) {s4o.print("INT"); return NULL;} |
304 /* as defined in PLCopen - Technical Committee 5 */ |
306 void *visit(dint_type_name_c *symbol) {s4o.print("DINT"); return NULL;} |
305 /* Safety Software Technical Specification, */ |
307 void *visit(lint_type_name_c *symbol) {s4o.print("LINT"); return NULL;} |
306 /* Part 1: Concepts and Function Blocks, */ |
308 void *visit(usint_type_name_c *symbol) {s4o.print("USINT"); return NULL;} |
307 /* Version 1.0 – Official Release */ |
309 void *visit(uint_type_name_c *symbol) {s4o.print("UINT"); return NULL;} |
308 /******************************************************/ |
310 void *visit(udint_type_name_c *symbol) {s4o.print("UDINT"); return NULL;} |
309 void *visit(safebool_type_name_c *symbol) {s4o.print("SAFEBOOL"); return NULL;} |
311 void *visit(ulint_type_name_c *symbol) {s4o.print("ULINT"); return NULL;} |
310 void *visit(sint_type_name_c *symbol) {s4o.print("SINT"); return NULL;} |
312 void *visit(real_type_name_c *symbol) {s4o.print("REAL"); return NULL;} |
311 void *visit(int_type_name_c *symbol) {s4o.print("INT"); return NULL;} |
313 void *visit(lreal_type_name_c *symbol) {s4o.print("LREAL"); return NULL;} |
312 void *visit(dint_type_name_c *symbol) {s4o.print("DINT"); return NULL;} |
314 void *visit(date_type_name_c *symbol) {s4o.print("DATE"); return NULL;} |
313 void *visit(lint_type_name_c *symbol) {s4o.print("LINT"); return NULL;} |
315 void *visit(tod_type_name_c *symbol) {s4o.print("TOD"); return NULL;} |
314 void *visit(usint_type_name_c *symbol) {s4o.print("USINT"); return NULL;} |
316 void *visit(dt_type_name_c *symbol) {s4o.print("DT"); return NULL;} |
315 void *visit(uint_type_name_c *symbol) {s4o.print("UINT"); return NULL;} |
317 void *visit(byte_type_name_c *symbol) {s4o.print("BYTE"); return NULL;} |
316 void *visit(udint_type_name_c *symbol) {s4o.print("UDINT"); return NULL;} |
318 void *visit(word_type_name_c *symbol) {s4o.print("WORD"); return NULL;} |
317 void *visit(ulint_type_name_c *symbol) {s4o.print("ULINT"); return NULL;} |
319 void *visit(lword_type_name_c *symbol) {s4o.print("LWORD"); return NULL;} |
318 void *visit(real_type_name_c *symbol) {s4o.print("REAL"); return NULL;} |
320 void *visit(dword_type_name_c *symbol) {s4o.print("DWORD"); return NULL;} |
319 void *visit(lreal_type_name_c *symbol) {s4o.print("LREAL"); return NULL;} |
321 void *visit(string_type_name_c *symbol) {s4o.print("STRING"); return NULL;} |
320 void *visit(date_type_name_c *symbol) {s4o.print("DATE"); return NULL;} |
322 void *visit(wstring_type_name_c *symbol) {s4o.print("WSTRING"); return NULL;} |
321 void *visit(tod_type_name_c *symbol) {s4o.print("TOD"); return NULL;} |
323 |
322 void *visit(dt_type_name_c *symbol) {s4o.print("DT"); return NULL;} |
324 void *visit(safetime_type_name_c *symbol) {s4o.print("SAFETIME"); return NULL;} |
323 void *visit(byte_type_name_c *symbol) {s4o.print("BYTE"); return NULL;} |
325 void *visit(safebool_type_name_c *symbol) {s4o.print("SAFEBOOL"); return NULL;} |
324 void *visit(word_type_name_c *symbol) {s4o.print("WORD"); return NULL;} |
326 void *visit(safesint_type_name_c *symbol) {s4o.print("SAFESINT"); return NULL;} |
325 void *visit(lword_type_name_c *symbol) {s4o.print("LWORD"); return NULL;} |
327 void *visit(safeint_type_name_c *symbol) {s4o.print("SAFEINT"); return NULL;} |
326 void *visit(dword_type_name_c *symbol) {s4o.print("DWORD"); return NULL;} |
328 void *visit(safedint_type_name_c *symbol) {s4o.print("SAFEDINT"); return NULL;} |
327 void *visit(string_type_name_c *symbol) {s4o.print("STRING"); return NULL;} |
329 void *visit(safelint_type_name_c *symbol) {s4o.print("SAFELINT"); return NULL;} |
328 void *visit(wstring_type_name_c *symbol) {s4o.print("WSTRING"); return NULL;} |
330 void *visit(safeusint_type_name_c *symbol) {s4o.print("SAFEUSINT"); return NULL;} |
329 /* |
331 void *visit(safeuint_type_name_c *symbol) {s4o.print("SAFEUINT"); return NULL;} |
330 void *visit(constant_int_type_name_c *symbol) {return NULL;} |
332 void *visit(safeudint_type_name_c *symbol) {s4o.print("SAFEUDINT"); return NULL;} |
331 void *visit(constant_real_type_name_c *symbol) {return NULL;} |
333 void *visit(safeulint_type_name_c *symbol) {s4o.print("SAFEULINT"); return NULL;} |
332 */ |
334 void *visit(safereal_type_name_c *symbol) {s4o.print("SAFEREAL"); return NULL;} |
|
335 void *visit(safelreal_type_name_c *symbol) {s4o.print("SAFELREAL"); return NULL;} |
|
336 void *visit(safedate_type_name_c *symbol) {s4o.print("SAFEDATE"); return NULL;} |
|
337 void *visit(safetod_type_name_c *symbol) {s4o.print("SAFETOD"); return NULL;} |
|
338 void *visit(safedt_type_name_c *symbol) {s4o.print("SAFEDT"); return NULL;} |
|
339 void *visit(safebyte_type_name_c *symbol) {s4o.print("SAFEBYTE"); return NULL;} |
|
340 void *visit(safeword_type_name_c *symbol) {s4o.print("SAFEWORD"); return NULL;} |
|
341 void *visit(safelword_type_name_c *symbol) {s4o.print("SAFELWORD"); return NULL;} |
|
342 void *visit(safedword_type_name_c *symbol) {s4o.print("SAFEDWORD"); return NULL;} |
|
343 void *visit(safestring_type_name_c *symbol) {s4o.print("SAFESTRING"); return NULL;} |
|
344 void *visit(safewstring_type_name_c *symbol) {s4o.print("SAFEWSTRING"); return NULL;} |
|
345 |
333 |
346 |
334 /********************************/ |
347 /********************************/ |
335 /* B 1.3.3 - Derived data types */ |
348 /* B 1.3.3 - Derived data types */ |
336 /********************************/ |
349 /********************************/ |
337 /* TYPE type_declaration_list END_TYPE */ |
350 /* TYPE type_declaration_list END_TYPE */ |