253 void *visit(integer_c *symbol) {return print_striped_token(symbol);} |
253 void *visit(integer_c *symbol) {return print_striped_token(symbol);} |
254 void *visit(binary_integer_c *symbol) {return print_striped_binary_token(symbol, 2);} |
254 void *visit(binary_integer_c *symbol) {return print_striped_binary_token(symbol, 2);} |
255 void *visit(octal_integer_c *symbol) {s4o.print("0"); return print_striped_token(symbol, 2);} |
255 void *visit(octal_integer_c *symbol) {s4o.print("0"); return print_striped_token(symbol, 2);} |
256 void *visit(hex_integer_c *symbol) {s4o.print("0x"); return print_striped_token(symbol, 3);} |
256 void *visit(hex_integer_c *symbol) {s4o.print("0x"); return print_striped_token(symbol, 3);} |
257 |
257 |
|
258 void *visit(neg_real_c *symbol) { |
|
259 s4o.print("-"); |
|
260 symbol->exp->accept(*this); |
|
261 return NULL; |
|
262 } |
|
263 |
|
264 void *visit(neg_integer_c *symbol) { |
|
265 s4o.print("-"); |
|
266 symbol->exp->accept(*this); |
|
267 return NULL; |
|
268 } |
|
269 |
258 void *visit(integer_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
270 void *visit(integer_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
259 void *visit(real_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
271 void *visit(real_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
260 void *visit(bit_string_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
272 void *visit(bit_string_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
261 void *visit(boolean_literal_c *symbol) {return print_literal(symbol->type, symbol->value);} |
273 void *visit(boolean_literal_c *symbol) { |
|
274 if (NULL != symbol->type) |
|
275 return print_literal(symbol->type, symbol->value); |
|
276 else { |
|
277 bool_type_name_c bool_type; |
|
278 return print_literal(&bool_type, symbol->value); |
|
279 } |
|
280 } |
262 |
281 |
263 /* helper class for boolean_literal_c */ |
282 /* helper class for boolean_literal_c */ |
264 void *visit(boolean_true_c *symbol) {s4o.print("TRUE"); return NULL;} |
283 void *visit(boolean_true_c *symbol) {s4o.print("TRUE"); return NULL;} |
265 void *visit(boolean_false_c *symbol) {s4o.print("FALSE"); return NULL;} |
284 void *visit(boolean_false_c *symbol) {s4o.print("FALSE"); return NULL;} |
266 |
|
267 void *visit(neg_literal_c *symbol) { |
|
268 s4o.print("-"); |
|
269 symbol->exp->accept(*this); |
|
270 return NULL; |
|
271 } |
|
272 |
285 |
273 void *visit(neg_expression_c *symbol) { |
286 void *visit(neg_expression_c *symbol) { |
274 s4o.print("-"); |
287 s4o.print("-"); |
275 symbol->exp->accept(*this); |
288 symbol->exp->accept(*this); |
276 return NULL; |
289 return NULL; |
512 /* B.1.3 - Data types */ |
525 /* B.1.3 - Data types */ |
513 /**********************/ |
526 /**********************/ |
514 /***********************************/ |
527 /***********************************/ |
515 /* B 1.3.1 - Elementary Data Types */ |
528 /* B 1.3.1 - Elementary Data Types */ |
516 /***********************************/ |
529 /***********************************/ |
517 void *visit(time_type_name_c *symbol) {s4o.print("TIME"); return NULL;} |
530 void *visit(time_type_name_c *symbol) {s4o.print("TIME"); return NULL;} |
518 void *visit(bool_type_name_c *symbol) {s4o.print("BOOL"); return NULL;} |
531 void *visit(bool_type_name_c *symbol) {s4o.print("BOOL"); return NULL;} |
519 void *visit(sint_type_name_c *symbol) {s4o.print("SINT"); return NULL;} |
532 void *visit(sint_type_name_c *symbol) {s4o.print("SINT"); return NULL;} |
520 void *visit(int_type_name_c *symbol) {s4o.print("INT"); return NULL;} |
533 void *visit(int_type_name_c *symbol) {s4o.print("INT"); return NULL;} |
521 void *visit(dint_type_name_c *symbol) {s4o.print("DINT"); return NULL;} |
534 void *visit(dint_type_name_c *symbol) {s4o.print("DINT"); return NULL;} |
522 void *visit(lint_type_name_c *symbol) {s4o.print("LINT"); return NULL;} |
535 void *visit(lint_type_name_c *symbol) {s4o.print("LINT"); return NULL;} |
523 void *visit(usint_type_name_c *symbol) {s4o.print("USINT"); return NULL;} |
536 void *visit(usint_type_name_c *symbol) {s4o.print("USINT"); return NULL;} |
524 void *visit(uint_type_name_c *symbol) {s4o.print("UINT"); return NULL;} |
537 void *visit(uint_type_name_c *symbol) {s4o.print("UINT"); return NULL;} |
525 void *visit(udint_type_name_c *symbol) {s4o.print("UDINT"); return NULL;} |
538 void *visit(udint_type_name_c *symbol) {s4o.print("UDINT"); return NULL;} |
526 void *visit(ulint_type_name_c *symbol) {s4o.print("ULINT"); return NULL;} |
539 void *visit(ulint_type_name_c *symbol) {s4o.print("ULINT"); return NULL;} |
527 void *visit(real_type_name_c *symbol) {s4o.print("REAL"); return NULL;} |
540 void *visit(real_type_name_c *symbol) {s4o.print("REAL"); return NULL;} |
528 void *visit(lreal_type_name_c *symbol) {s4o.print("LREAL"); return NULL;} |
541 void *visit(lreal_type_name_c *symbol) {s4o.print("LREAL"); return NULL;} |
529 void *visit(date_type_name_c *symbol) {s4o.print("DATE"); return NULL;} |
542 void *visit(date_type_name_c *symbol) {s4o.print("DATE"); return NULL;} |
530 void *visit(tod_type_name_c *symbol) {s4o.print("TOD"); return NULL;} |
543 void *visit(tod_type_name_c *symbol) {s4o.print("TOD"); return NULL;} |
531 void *visit(dt_type_name_c *symbol) {s4o.print("DT"); return NULL;} |
544 void *visit(dt_type_name_c *symbol) {s4o.print("DT"); return NULL;} |
532 void *visit(byte_type_name_c *symbol) {s4o.print("BYTE"); return NULL;} |
545 void *visit(byte_type_name_c *symbol) {s4o.print("BYTE"); return NULL;} |
533 void *visit(word_type_name_c *symbol) {s4o.print("WORD"); return NULL;} |
546 void *visit(word_type_name_c *symbol) {s4o.print("WORD"); return NULL;} |
534 void *visit(lword_type_name_c *symbol) {s4o.print("LWORD"); return NULL;} |
547 void *visit(lword_type_name_c *symbol) {s4o.print("LWORD"); return NULL;} |
535 void *visit(dword_type_name_c *symbol) {s4o.print("DWORD"); return NULL;} |
548 void *visit(dword_type_name_c *symbol) {s4o.print("DWORD"); return NULL;} |
536 void *visit(string_type_name_c *symbol) {s4o.print("STRING"); return NULL;} |
549 void *visit(string_type_name_c *symbol) {s4o.print("STRING"); return NULL;} |
537 void *visit(wstring_type_name_c *symbol) {s4o.print("WSTRING"); return NULL;} |
550 void *visit(wstring_type_name_c *symbol) {s4o.print("WSTRING"); return NULL;} |
538 /******************************************************/ |
551 |
539 /* Extensions to the base standard as defined in */ |
552 void *visit(safetime_type_name_c *symbol) {s4o.print("TIME"); return NULL;} |
540 /* "Safety Software Technical Specification, */ |
553 void *visit(safebool_type_name_c *symbol) {s4o.print("BOOL"); return NULL;} |
541 /* Part 1: Concepts and Function Blocks, */ |
554 void *visit(safesint_type_name_c *symbol) {s4o.print("SINT"); return NULL;} |
542 /* Version 1.0 – Official Release" */ |
555 void *visit(safeint_type_name_c *symbol) {s4o.print("INT"); return NULL;} |
543 /* by PLCopen - Technical Committee 5 - 2006-01-31 */ |
556 void *visit(safedint_type_name_c *symbol) {s4o.print("DINT"); return NULL;} |
544 /******************************************************/ |
557 void *visit(safelint_type_name_c *symbol) {s4o.print("LINT"); return NULL;} |
545 void *visit(safebool_type_name_c *symbol) {s4o.print("SAFEBOOL"); return NULL;} |
558 void *visit(safeusint_type_name_c *symbol) {s4o.print("USINT"); return NULL;} |
|
559 void *visit(safeuint_type_name_c *symbol) {s4o.print("UINT"); return NULL;} |
|
560 void *visit(safeudint_type_name_c *symbol) {s4o.print("UDINT"); return NULL;} |
|
561 void *visit(safeulint_type_name_c *symbol) {s4o.print("ULINT"); return NULL;} |
|
562 void *visit(safereal_type_name_c *symbol) {s4o.print("REAL"); return NULL;} |
|
563 void *visit(safelreal_type_name_c *symbol) {s4o.print("LREAL"); return NULL;} |
|
564 void *visit(safedate_type_name_c *symbol) {s4o.print("DATE"); return NULL;} |
|
565 void *visit(safetod_type_name_c *symbol) {s4o.print("TOD"); return NULL;} |
|
566 void *visit(safedt_type_name_c *symbol) {s4o.print("DT"); return NULL;} |
|
567 void *visit(safebyte_type_name_c *symbol) {s4o.print("BYTE"); return NULL;} |
|
568 void *visit(safeword_type_name_c *symbol) {s4o.print("WORD"); return NULL;} |
|
569 void *visit(safelword_type_name_c *symbol) {s4o.print("LWORD"); return NULL;} |
|
570 void *visit(safedword_type_name_c *symbol) {s4o.print("DWORD"); return NULL;} |
|
571 void *visit(safestring_type_name_c *symbol) {s4o.print("STRING"); return NULL;} |
|
572 void *visit(safewstring_type_name_c *symbol) {s4o.print("WSTRING"); return NULL;} |
546 |
573 |
547 /********************************/ |
574 /********************************/ |
548 /* B.1.3.2 - Generic data types */ |
575 /* B.1.3.2 - Generic data types */ |
549 /********************************/ |
576 /********************************/ |
550 /* originally empty... */ |
577 /* originally empty... */ |