stage4/generate_cc/search_constant_type.cc
author etisserant
Mon, 18 Jun 2007 14:45:03 +0200
changeset 33 4507beb2aac6
parent 32 289256ec66f1
permissions -rwxr-xr-x
preliminary std lib support for ST
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
     1
/*
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
     2
 * (c) 2003 Mario de Sousa
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
     3
 *
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
     4
 * Offered to the public under the terms of the GNU General Public License
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
     5
 * as published by the Free Software Foundation; either version 2 of the
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
     6
 * License, or (at your option) any later version.
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
     7
 *
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
     8
 * This program is distributed in the hope that it will be useful, but
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
     9
 * WITHOUT ANY WARRANTY; without even the implied warranty of
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    11
 * Public License for more details.
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    12
 *
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    13
 * This code is made available on the understanding that it will not be
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    14
 * used in safety-critical situations without a full and competent review.
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    15
 */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    16
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    17
/*
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    18
 * An IEC 61131-3 IL and ST compiler.
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    19
 *
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    20
 * Based on the
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    21
 * FINAL DRAFT - IEC 61131-3, 2nd Ed. (2001-12-10)
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    22
 *
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    23
 */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    24
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    25
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    26
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    27
/* Determine the data type of a specific constant or variable.
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    28
 * A reference to the relevant type definition is returned.
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    29
 *
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    30
 * For example:
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    31
 *       22          -> returns reference to a int_type_name_c object.
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    32
 *       22.2        -> returns reference to a real_type_name_c object.
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    33
 *       LREAL#22.2  -> returns reference to a lreal_type_name_c object.
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    34
 *       etc...
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    35
 */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    36
class search_constant_type_c: public search_visitor_c {
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    37
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    38
  public:
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    39
/**********************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    40
/* B.1.3 - Data types */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    41
/**********************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    42
/***********************************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    43
/* B 1.3.1 - Elementary Data Types */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    44
/***********************************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    45
  static real_type_name_c     real_type_name;
33
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    46
  static sint_type_name_c     sint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    47
  static lint_type_name_c     lint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    48
  static dint_type_name_c     dint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    49
  static date_type_name_c     date_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    50
  static dword_type_name_c     dword_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    51
  static dt_type_name_c     dt_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    52
  static tod_type_name_c     tod_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    53
  static udint_type_name_c     udint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    54
  static word_type_name_c     word_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    55
  static wstring_type_name_c     wstring_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    56
  static string_type_name_c     string_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    57
  static lword_type_name_c     lword_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    58
  static uint_type_name_c     uint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    59
  static lreal_type_name_c     lreal_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    60
  static byte_type_name_c     byte_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    61
  static usint_type_name_c     usint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    62
  static ulint_type_name_c     ulint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    63
  static bool_type_name_c     bool_type_name;
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    64
  static time_type_name_c     time_type_name;
33
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
    65
  static int_type_name_c     int_type_name;
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    66
32
289256ec66f1 Adding support for standard function block parsing
lbessard
parents: 0
diff changeset
    67
  static constant_real_type_name_c     constant_real_type_name;
289256ec66f1 Adding support for standard function block parsing
lbessard
parents: 0
diff changeset
    68
  static constant_int_type_name_c      constant_int_type_name;
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    69
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    70
  public:
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    71
    symbol_c *get_type(symbol_c *constant) {
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    72
      return (symbol_c *)constant->accept(*this);
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    73
    }
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    74
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    75
  public:
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    76
/*********************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    77
/* B 1.2 - Constants */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    78
/*********************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    79
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    80
/******************************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    81
/* B 1.2.1 - Numeric Literals */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    82
/******************************/
32
289256ec66f1 Adding support for standard function block parsing
lbessard
parents: 0
diff changeset
    83
    void *visit(real_c *symbol) {return (void *)&constant_real_type_name;}
289256ec66f1 Adding support for standard function block parsing
lbessard
parents: 0
diff changeset
    84
    void *visit(integer_c *symbol) {return (void *)&constant_int_type_name;}
289256ec66f1 Adding support for standard function block parsing
lbessard
parents: 0
diff changeset
    85
    void *visit(binary_integer_c *symbol) {return (void *)&constant_int_type_name;}
289256ec66f1 Adding support for standard function block parsing
lbessard
parents: 0
diff changeset
    86
    void *visit(octal_integer_c *symbol) {return (void *)&constant_int_type_name;}
289256ec66f1 Adding support for standard function block parsing
lbessard
parents: 0
diff changeset
    87
    void *visit(hex_integer_c *symbol) {return (void *)&constant_int_type_name;}
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    88
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    89
    void *visit(numeric_literal_c *symbol)
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    90
      {return (void *)((symbol->type!=NULL)?symbol->type:symbol->value->accept(*this));}
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    91
    void *visit(integer_literal_c *symbol)
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    92
      {return (void *)((symbol->type!=NULL)?symbol->type:symbol->value->accept(*this));}
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    93
    void *visit(real_literal_c *symbol)
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    94
      {return (void *)((symbol->type!=NULL)?symbol->type:symbol->value->accept(*this));}
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    95
    void *visit(bit_string_literal_c *symbol)
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    96
      {return (void *)((symbol->type!=NULL)?symbol->type:symbol->value->accept(*this));}
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    97
    void *visit(boolean_literal_c *symbol)
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    98
      {return (void *)((symbol->type!=NULL)?symbol->type:symbol->value->accept(*this));}
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
    99
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   100
/*******************************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   101
/* B.1.2.2   Character Strings */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   102
/*******************************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   103
    void *visit(double_byte_character_string_c *symbol) {return (void *)&wstring_type_name;}
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   104
    void *visit(single_byte_character_string_c *symbol) {return (void *)&string_type_name;}
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   105
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   106
/***************************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   107
/* B 1.2.3 - Time Literals */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   108
/***************************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   109
/************************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   110
/* B 1.2.3.1 - Duration */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   111
/************************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   112
    void *visit(neg_time_c *symbol) {ERROR; return NULL;}  /* this member function should never be called. */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   113
    void *visit(duration_c *symbol) {return (void *)&time_type_name;}
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   114
    void *visit(fixed_point_c *symbol) {ERROR; return NULL;}  /* this member function should never be called. */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   115
    void *visit(days_c *symbol) {ERROR; return NULL;}  /* this member function should never be called. */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   116
    void *visit(hours_c *symbol) {ERROR; return NULL;}  /* this member function should never be called. */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   117
    void *visit(minutes_c *symbol) {ERROR; return NULL;}  /* this member function should never be called. */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   118
    void *visit(seconds_c *symbol) {ERROR; return NULL;}  /* this member function should never be called. */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   119
    void *visit(milliseconds_c *symbol) {ERROR; return NULL;}  /* this member function should never be called. */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   120
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   121
/************************************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   122
/* B 1.2.3.2 - Time of day and Date */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   123
/************************************/
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   124
    void *visit(time_of_day_c *symbol) {return (void *)&tod_type_name;}
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   125
    void *visit(daytime_c *symbol) {ERROR; return NULL;}  /* this member function should never be called. */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   126
    void *visit(date_c *symbol) {return (void *)&date_type_name;}
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   127
    void *visit(date_literal_c *symbol) {ERROR; return NULL;}  /* this member function should never be called. */
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   128
    void *visit(date_and_time_c *symbol) {return (void *)&dt_type_name;}
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   129
};
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   130
33
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   131
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   132
real_type_name_c     search_constant_type_c::real_type_name;
33
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   133
sint_type_name_c     search_constant_type_c::sint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   134
lint_type_name_c     search_constant_type_c::lint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   135
dint_type_name_c     search_constant_type_c::dint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   136
date_type_name_c     search_constant_type_c::date_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   137
dword_type_name_c     search_constant_type_c::dword_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   138
dt_type_name_c     search_constant_type_c::dt_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   139
tod_type_name_c     search_constant_type_c::tod_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   140
udint_type_name_c     search_constant_type_c::udint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   141
word_type_name_c     search_constant_type_c::word_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   142
wstring_type_name_c     search_constant_type_c::wstring_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   143
string_type_name_c     search_constant_type_c::string_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   144
lword_type_name_c     search_constant_type_c::lword_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   145
uint_type_name_c     search_constant_type_c::uint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   146
lreal_type_name_c     search_constant_type_c::lreal_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   147
byte_type_name_c     search_constant_type_c::byte_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   148
usint_type_name_c     search_constant_type_c::usint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   149
ulint_type_name_c     search_constant_type_c::ulint_type_name;
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   150
bool_type_name_c     search_constant_type_c::bool_type_name;
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   151
time_type_name_c     search_constant_type_c::time_type_name;
33
4507beb2aac6 preliminary std lib support for ST
etisserant
parents: 32
diff changeset
   152
int_type_name_c     search_constant_type_c::int_type_name;
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   153
32
289256ec66f1 Adding support for standard function block parsing
lbessard
parents: 0
diff changeset
   154
constant_real_type_name_c     search_constant_type_c::constant_real_type_name;
289256ec66f1 Adding support for standard function block parsing
lbessard
parents: 0
diff changeset
   155
constant_int_type_name_c      search_constant_type_c::constant_int_type_name;
0
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   156
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   157
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   158
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   159
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   160
fb772792efd1 Initial commit. Last MatPLC CVS with some makefile inclusion removed in order to compile fine out of MatPLC.
etisserant
parents:
diff changeset
   161