Added virtual attribute to entry syntax.
authorMilind Bhandarkar <milind@cs.uiuc.edu>
Sun, 1 Aug 1999 06:40:40 +0000 (06:40 +0000)
committerMilind Bhandarkar <milind@cs.uiuc.edu>
Sun, 1 Aug 1999 06:40:40 +0000 (06:40 +0000)
src/xlat-i/xi-grammar.tab.C
src/xlat-i/xi-grammar.tab.h
src/xlat-i/xi-grammar.y
src/xlat-i/xi-scan.C
src/xlat-i/xi-scan.l
src/xlat-i/xi-symbol.C
src/xlat-i/xi-symbol.h

index 5d00a21ddb8355a1cdeb2fb8bd35d2edff782ed9..344824c505dbc252d99f40daa5b873443441ca09 100644 (file)
 #define        TEMPLATE        269
 #define        SYNC    270
 #define        EXCLUSIVE       271
-#define        VOID    272
-#define        PACKED  273
-#define        VARSIZE 274
-#define        ENTRY   275
-#define        MAINCHARE       276
-#define        IDENT   277
-#define        NUMBER  278
-#define        LITERAL 279
-#define        INT     280
-#define        LONG    281
-#define        SHORT   282
-#define        CHAR    283
-#define        FLOAT   284
-#define        DOUBLE  285
-#define        UNSIGNED        286
+#define        VIRTUAL 272
+#define        VOID    273
+#define        PACKED  274
+#define        VARSIZE 275
+#define        ENTRY   276
+#define        MAINCHARE       277
+#define        IDENT   278
+#define        NUMBER  279
+#define        LITERAL 280
+#define        INT     281
+#define        LONG    282
+#define        SHORT   283
+#define        CHAR    284
+#define        FLOAT   285
+#define        DOUBLE  286
+#define        UNSIGNED        287
 
 #line 1 "xi-grammar.y"
 
@@ -85,26 +86,26 @@ typedef union {
 
 
 
-#define        YYFINAL         232
+#define        YYFINAL         233
 #define        YYFLAG          -32768
-#define        YYNTBASE        46
+#define        YYNTBASE        47
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 286 ? yytranslate[x] : 104)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 287 ? yytranslate[x] : 105)
 
 static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,    42,
-    43,    39,     2,    36,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,    44,    33,    37,
-    45,    38,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,    43,
+    44,    40,     2,    37,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,    45,    34,    38,
+    46,    39,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-    40,     2,    41,     2,     2,     2,     2,     2,     2,     2,
+    41,     2,    42,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,    34,     2,    35,     2,     2,     2,     2,     2,
+     2,     2,    35,     2,    36,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -120,7 +121,7 @@ static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
      7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    30,    31,    32
+    27,    28,    29,    30,    31,    32,    33
 };
 
 #if YYDEBUG != 0
@@ -137,50 +138,51 @@ static const short yyprhs[] = {     0,
    270,   275,   276,   279,   280,   283,   286,   290,   293,   297,
    299,   303,   308,   311,   314,   317,   320,   323,   325,   330,
    331,   334,   337,   340,   343,   350,   357,   362,   363,   367,
-   369,   373,   375,   377,   379,   380,   382,   384,   388,   389
+   369,   373,   375,   377,   379,   381,   382,   384,   386,   390,
+   391
 };
 
-static const short yyrhs[] = {    47,
-     0,     0,    51,    47,     0,     0,     5,     0,     0,    33,
-     0,    23,     0,     3,    50,    52,     0,     4,    50,    52,
-     0,    33,     0,    34,    53,    35,    49,     0,     0,    54,
-    53,     0,    48,    34,    53,    35,    49,     0,    48,    51,
-     0,    48,    71,    33,     0,    48,    72,    33,     0,    48,
-    76,    33,     0,    48,    79,     0,    48,    80,     0,    48,
-    81,     0,    48,    82,     0,    48,    93,     0,    67,     0,
-    24,     0,    25,     0,    55,     0,    55,    36,    56,     0,
-     0,    56,     0,     0,    37,    57,    38,     0,    26,     0,
-    27,     0,    28,     0,    29,     0,    32,    26,     0,    32,
-    27,     0,    32,    28,     0,    32,    29,     0,    27,    27,
-     0,    30,     0,    31,     0,    27,    31,     0,    18,     0,
-    50,    58,     0,    59,     0,    60,     0,    61,    39,     0,
-    62,    39,     0,    63,    39,     0,    24,     0,    50,     0,
-    67,    40,    64,    41,     0,    67,    42,    39,    50,    43,
-    42,    68,    43,     0,    61,     0,    62,     0,    63,     0,
-    65,     0,    66,     0,     0,    67,     0,    67,    36,    68,
-     0,    40,    64,    41,     0,     0,    69,    70,     0,     6,
-    67,    50,    70,     0,     6,    11,    61,    39,    50,     0,
-     0,    40,    74,    41,     0,    75,     0,    75,    36,    74,
-     0,    19,     0,    20,     0,    11,    73,    60,     0,     0,
-    44,    78,     0,    60,     0,    60,    36,    78,     0,     7,
-    60,    77,    94,     0,    22,    60,    77,    94,     0,     8,
-    60,    77,    94,     0,     9,    60,    77,    94,     0,    10,
-    60,    77,    94,     0,     7,    50,    77,    94,     0,    22,
-    50,    77,    94,     0,     8,    50,    77,    94,     0,     9,
-    50,    77,    94,     0,    10,    50,    77,    94,     0,    11,
-    73,    50,    33,     0,     0,    45,    67,     0,     0,    45,
-    24,     0,    45,    25,     0,    12,    50,    88,     0,    66,
-    89,     0,    67,    50,    89,     0,    90,     0,    90,    36,
-    91,     0,    15,    37,    91,    38,     0,    92,    83,     0,
-    92,    84,     0,    92,    85,     0,    92,    86,     0,    92,
-    87,     0,    33,     0,    34,    95,    35,    49,     0,     0,
-    96,    95,     0,    97,    33,     0,    71,    33,     0,    72,
-    33,     0,    21,    98,    18,    50,   102,   103,     0,    21,
-    98,    62,    50,   102,   103,     0,    21,    98,    50,   102,
-     0,     0,    40,    99,    41,     0,   100,     0,   100,    36,
-    99,     0,    14,     0,    16,     0,    17,     0,     0,    18,
-     0,    62,     0,    42,   101,    43,     0,     0,    13,    45,
-    24,     0
+static const short yyrhs[] = {    48,
+     0,     0,    52,    48,     0,     0,     5,     0,     0,    34,
+     0,    24,     0,     3,    51,    53,     0,     4,    51,    53,
+     0,    34,     0,    35,    54,    36,    50,     0,     0,    55,
+    54,     0,    49,    35,    54,    36,    50,     0,    49,    52,
+     0,    49,    72,    34,     0,    49,    73,    34,     0,    49,
+    77,    34,     0,    49,    80,     0,    49,    81,     0,    49,
+    82,     0,    49,    83,     0,    49,    94,     0,    68,     0,
+    25,     0,    26,     0,    56,     0,    56,    37,    57,     0,
+     0,    57,     0,     0,    38,    58,    39,     0,    27,     0,
+    28,     0,    29,     0,    30,     0,    33,    27,     0,    33,
+    28,     0,    33,    29,     0,    33,    30,     0,    28,    28,
+     0,    31,     0,    32,     0,    28,    32,     0,    19,     0,
+    51,    59,     0,    60,     0,    61,     0,    62,    40,     0,
+    63,    40,     0,    64,    40,     0,    25,     0,    51,     0,
+    68,    41,    65,    42,     0,    68,    43,    40,    51,    44,
+    43,    69,    44,     0,    62,     0,    63,     0,    64,     0,
+    66,     0,    67,     0,     0,    68,     0,    68,    37,    69,
+     0,    41,    65,    42,     0,     0,    70,    71,     0,     6,
+    68,    51,    71,     0,     6,    11,    62,    40,    51,     0,
+     0,    41,    75,    42,     0,    76,     0,    76,    37,    75,
+     0,    20,     0,    21,     0,    11,    74,    61,     0,     0,
+    45,    79,     0,    61,     0,    61,    37,    79,     0,     7,
+    61,    78,    95,     0,    23,    61,    78,    95,     0,     8,
+    61,    78,    95,     0,     9,    61,    78,    95,     0,    10,
+    61,    78,    95,     0,     7,    51,    78,    95,     0,    23,
+    51,    78,    95,     0,     8,    51,    78,    95,     0,     9,
+    51,    78,    95,     0,    10,    51,    78,    95,     0,    11,
+    74,    51,    34,     0,     0,    46,    68,     0,     0,    46,
+    25,     0,    46,    26,     0,    12,    51,    89,     0,    67,
+    90,     0,    68,    51,    90,     0,    91,     0,    91,    37,
+    92,     0,    15,    38,    92,    39,     0,    93,    84,     0,
+    93,    85,     0,    93,    86,     0,    93,    87,     0,    93,
+    88,     0,    34,     0,    35,    96,    36,    50,     0,     0,
+    97,    96,     0,    98,    34,     0,    72,    34,     0,    73,
+    34,     0,    22,    99,    19,    51,   103,   104,     0,    22,
+    99,    63,    51,   103,   104,     0,    22,    99,    51,   103,
+     0,     0,    41,   100,    42,     0,   101,     0,   101,    37,
+   100,     0,    14,     0,    16,     0,    17,     0,    18,     0,
+     0,    19,     0,    63,     0,    43,   102,    44,     0,     0,
+    13,    46,    25,     0
 };
 
 #endif
@@ -199,7 +201,8 @@ static const short yyrline[] = { 0,
    358,   362,   364,   368,   370,   372,   376,   378,   380,   384,
    386,   390,   394,   396,   398,   400,   402,   406,   408,   412,
    414,   418,   420,   422,   426,   428,   430,   434,   436,   440,
-   442,   446,   448,   450,   454,   456,   458,   462,   466,   468
+   442,   446,   448,   450,   452,   456,   458,   460,   464,   468,
+   470
 };
 #endif
 
@@ -208,10 +211,10 @@ static const short yyrline[] = { 0,
 
 static const char * const yytname[] = {   "$","error","$undefined.","MODULE",
 "MAINMODULE","EXTERN","READONLY","CHARE","GROUP","NODEGROUP","ARRAY","MESSAGE",
-"CLASS","STACKSIZE","THREADED","TEMPLATE","SYNC","EXCLUSIVE","VOID","PACKED",
-"VARSIZE","ENTRY","MAINCHARE","IDENT","NUMBER","LITERAL","INT","LONG","SHORT",
-"CHAR","FLOAT","DOUBLE","UNSIGNED","';'","'{'","'}'","','","'<'","'>'","'*'",
-"'['","']'","'('","')'","':'","'='","File","ModuleEList","OptExtern","OptSemiColon",
+"CLASS","STACKSIZE","THREADED","TEMPLATE","SYNC","EXCLUSIVE","VIRTUAL","VOID",
+"PACKED","VARSIZE","ENTRY","MAINCHARE","IDENT","NUMBER","LITERAL","INT","LONG",
+"SHORT","CHAR","FLOAT","DOUBLE","UNSIGNED","';'","'{'","'}'","','","'<'","'>'",
+"'*'","'['","']'","'('","')'","':'","'='","File","ModuleEList","OptExtern","OptSemiColon",
 "Name","Module","ConstructEList","ConstructList","Construct","TParam","TParamList",
 "TParamEList","OptTParams","BuiltinType","NamedType","SimpleType","OnePtrType",
 "PtrType","ArrayDim","ArrayType","FuncType","Type","TypeList","Dim","DimList",
@@ -224,19 +227,20 @@ static const char * const yytname[] = {   "$","error","$undefined.","MODULE",
 #endif
 
 static const short yyr1[] = {     0,
-    46,    47,    47,    48,    48,    49,    49,    50,    51,    51,
-    52,    52,    53,    53,    54,    54,    54,    54,    54,    54,
-    54,    54,    54,    54,    55,    55,    55,    56,    56,    57,
-    57,    58,    58,    59,    59,    59,    59,    59,    59,    59,
-    59,    59,    59,    59,    59,    59,    60,    61,    61,    62,
-    63,    63,    64,    64,    65,    66,    67,    67,    67,    67,
-    67,    68,    68,    68,    69,    70,    70,    71,    72,    73,
-    73,    74,    74,    75,    75,    76,    77,    77,    78,    78,
-    79,    79,    80,    81,    82,    83,    83,    84,    85,    86,
-    87,    88,    88,    89,    89,    89,    90,    90,    90,    91,
-    91,    92,    93,    93,    93,    93,    93,    94,    94,    95,
-    95,    96,    96,    96,    97,    97,    97,    98,    98,    99,
-    99,   100,   100,   100,   101,   101,   101,   102,   103,   103
+    47,    48,    48,    49,    49,    50,    50,    51,    52,    52,
+    53,    53,    54,    54,    55,    55,    55,    55,    55,    55,
+    55,    55,    55,    55,    56,    56,    56,    57,    57,    58,
+    58,    59,    59,    60,    60,    60,    60,    60,    60,    60,
+    60,    60,    60,    60,    60,    60,    61,    62,    62,    63,
+    64,    64,    65,    65,    66,    67,    68,    68,    68,    68,
+    68,    69,    69,    69,    70,    71,    71,    72,    73,    74,
+    74,    75,    75,    76,    76,    77,    78,    78,    79,    79,
+    80,    80,    81,    82,    83,    84,    84,    85,    86,    87,
+    88,    89,    89,    90,    90,    90,    91,    91,    91,    92,
+    92,    93,    94,    94,    94,    94,    94,    95,    95,    96,
+    96,    97,    97,    97,    98,    98,    98,    99,    99,   100,
+   100,   101,   101,   101,   101,   102,   102,   102,   103,   104,
+   104
 };
 
 static const short yyr2[] = {     0,
@@ -252,7 +256,8 @@ static const short yyr2[] = {     0,
      4,     0,     2,     0,     2,     2,     3,     2,     3,     1,
      3,     4,     2,     2,     2,     2,     2,     1,     4,     0,
      2,     2,     2,     2,     6,     6,     4,     0,     3,     1,
-     3,     1,     1,     1,     0,     1,     1,     3,     0,     3
+     3,     1,     1,     1,     1,     0,     1,     1,     3,     0,
+     3
 };
 
 static const short yydefact[] = {     2,
@@ -275,114 +280,116 @@ static const short yydefact[] = {     2,
      0,     0,    67,     0,   118,     0,     0,     0,   110,     0,
     73,     0,    97,    95,    96,    99,   101,    86,    88,    89,
     90,    91,    87,    29,     0,    65,    80,     0,     0,   113,
-   114,     6,   111,   112,    93,    62,   122,   123,   124,     0,
-   120,    46,    32,     0,     0,   109,    63,     0,   119,     0,
-     0,   125,   117,     0,    62,    56,   121,   129,    46,   127,
-     0,   129,    64,     0,   115,   128,   116,     0,   130,     0,
-     0,     0
+   114,     6,   111,   112,    93,    62,   122,   123,   124,   125,
+     0,   120,    46,    32,     0,     0,   109,    63,     0,   119,
+     0,     0,   126,   117,     0,    62,    56,   121,   130,    46,
+   128,     0,   130,    64,     0,   115,   129,   116,     0,   131,
+     0,     0,     0
 };
 
-static const short yydefgoto[] = {   230,
+static const short yydefgoto[] = {   231,
      3,    14,    80,    47,     4,    11,    15,    16,   122,   123,
    124,    89,    48,    49,    50,    51,    52,   128,    53,    54,
-   108,   208,   131,   132,   166,   167,    61,   103,   104,    29,
+   108,   209,   131,   132,   166,   167,    61,   103,   104,    29,
     97,   134,    30,    31,    32,    33,    74,    75,    76,    77,
     78,   173,   145,   109,   110,    34,    35,   137,   168,   169,
-   170,   189,   200,   201,   221,   213,   225
+   170,   189,   201,   202,   222,   214,   226
 };
 
-static const short yypact[] = {    47,
-    12,    12,-32768,    47,-32768,   -17,   -17,-32768,-32768,     7,
--32768,-32768,-32768,    30,    28,     7,    83,    12,    12,    12,
-    12,    41,    53,    12,     7,-32768,    71,    75,    84,-32768,
--32768,-32768,-32768,    49,-32768,    91,-32768,   164,-32768,-32768,
-    60,-32768,-32768,-32768,-32768,    69,    89,-32768,-32768,    88,
-    92,    93,-32768,-32768,     6,    96,    96,    96,    96,    80,
-    12,   107,    96,   106,-32768,-32768,-32768,    12,    12,    12,
-    12,    41,    12,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-   103,-32768,-32768,-32768,-32768,-32768,-32768,   135,-32768,-32768,
--32768,-32768,    79,   105,   108,    12,    87,    87,    87,    87,
--32768,-32768,   104,   110,-32768,    12,   -23,     6,   111,   113,
-    87,    91,    96,    96,    96,    96,    12,    96,    12,-32768,
--32768,   116,-32768,   117,    38,-32768,-32768,   115,    12,    79,
-   108,-32768,   132,-32768,-32768,     5,-32768,-32768,-32768,-32768,
--32768,    80,   124,    98,-32768,   125,   107,-32768,-32768,-32768,
-    87,    87,    87,    87,   138,    87,-32768,   135,-32768,-32768,
-   129,   133,-32768,    12,   109,   140,   142,   141,     5,   145,
--32768,   164,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   137,-32768,-32768,    11,   179,-32768,
--32768,    91,-32768,-32768,    38,   164,-32768,-32768,-32768,   139,
-   147,    12,    24,    88,    12,-32768,    13,   143,-32768,    11,
-   156,   194,-32768,   156,   164,-32768,-32768,   171,   146,-32768,
-   160,   171,-32768,   154,-32768,-32768,-32768,   161,-32768,   213,
-   214,-32768
+static const short yypact[] = {    77,
+    25,    25,-32768,    77,-32768,    56,    56,-32768,-32768,     6,
+-32768,-32768,-32768,    30,   -13,     6,    93,    25,    25,    25,
+    25,   -12,    33,    25,     6,-32768,    44,    53,    61,-32768,
+-32768,-32768,-32768,     5,-32768,    69,-32768,   163,-32768,-32768,
+    24,-32768,-32768,-32768,-32768,    72,    68,-32768,-32768,    18,
+    75,   102,-32768,-32768,    20,    74,    74,    74,    74,    88,
+    25,   132,    74,   109,-32768,-32768,-32768,    25,    25,    25,
+    25,   -12,    25,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+   106,-32768,-32768,-32768,-32768,-32768,-32768,   108,-32768,-32768,
+-32768,-32768,    86,   107,   111,    25,    79,    79,    79,    79,
+-32768,-32768,   113,   112,-32768,    25,    11,    20,   116,   119,
+    79,    69,    74,    74,    74,    74,    25,    74,    25,-32768,
+-32768,   129,-32768,   128,    23,-32768,-32768,   126,    25,    86,
+   111,-32768,   133,-32768,-32768,    29,-32768,-32768,-32768,-32768,
+-32768,    88,   123,   105,-32768,   125,   132,-32768,-32768,-32768,
+    79,    79,    79,    79,   114,    79,-32768,   108,-32768,-32768,
+   130,   131,-32768,    25,   134,   138,   142,   141,    29,   145,
+-32768,   163,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,   137,-32768,-32768,    80,   179,-32768,
+-32768,    69,-32768,-32768,    23,   163,-32768,-32768,-32768,-32768,
+   143,   146,    25,    17,    18,    25,-32768,   -16,   140,-32768,
+    80,   154,   194,-32768,   154,   163,-32768,-32768,   173,   155,
+-32768,   156,   173,-32768,   158,-32768,-32768,-32768,   164,-32768,
+   214,   215,-32768
 };
 
 static const short yypgoto[] = {-32768,
-   211,-32768,  -103,    -1,   202,   212,    -2,-32768,-32768,    70,
--32768,-32768,-32768,   -14,   -35,  -168,-32768,    97,-32768,   -54,
-   -15,     3,-32768,    99,   215,   217,   162,    90,-32768,-32768,
-   -39,    72,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,    94,-32768,    86,-32768,-32768,   -68,    66,-32768,
--32768,-32768,    27,-32768,-32768,  -149,    16
+   212,-32768,  -103,    -1,   203,   213,     1,-32768,-32768,    70,
+-32768,-32768,-32768,   -14,   -35,  -167,-32768,    89,-32768,   -54,
+   -15,    13,-32768,    99,   217,   218,   161,    92,-32768,-32768,
+   -39,    71,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,    90,-32768,    91,-32768,-32768,   -68,    73,-32768,
+-32768,-32768,    26,-32768,-32768,  -153,    16
 };
 
 
-#define        YYLAST          240
+#define        YYLAST          242
 
 
 static const short yytable[] = {     6,
      7,    55,    81,    56,    57,    58,    59,   107,   150,    63,
-    17,    13,   -94,    37,   -94,     9,    10,    98,    99,   100,
-   205,   144,    64,   111,   197,   165,   198,   199,     5,   138,
-   139,   140,     1,     2,     5,    17,    18,    19,    20,    21,
-    22,   -13,   149,   220,    23,    93,   105,    94,   215,     1,
-     2,    24,    93,    95,    94,    68,    69,    70,    71,    72,
-    88,   218,    36,    25,   222,   212,   113,   114,   115,   116,
-    73,   118,   125,   151,   152,   153,   154,    93,   156,    94,
-    60,   133,   178,   179,   180,   181,    82,   183,   206,    62,
-    83,   127,   107,    38,    84,    85,    86,    87,   101,   102,
-    39,     5,   126,    65,   143,     5,   146,    66,    40,    41,
-    42,    43,    44,    45,    46,   155,    67,   157,   106,   135,
-   136,   174,   175,    79,    39,    88,    90,   161,   127,     5,
-    91,    92,    40,    41,    42,    43,    44,    45,    46,    96,
-   112,   119,   125,   129,   141,   142,   147,   130,   188,   133,
-   148,   158,    39,   204,   159,   160,   195,     5,   120,   121,
-    40,    41,    42,    43,    44,    45,    46,   164,   172,   144,
-   182,   185,   190,   186,   191,   192,   204,   194,   196,   209,
-   207,    39,   210,   224,   229,   216,     5,   203,  -126,    40,
-    41,    42,    43,    44,    45,    46,   202,   212,   228,   207,
-   211,     5,   226,   214,    40,    41,    42,    43,    44,    45,
-    46,   219,   231,   232,     8,    26,     5,   223,    12,    40,
-    41,    42,    43,    44,    45,    46,   162,   184,    27,   163,
-    28,   171,   177,   117,   193,   187,   217,   227,     0,   176
+    13,    68,    69,    70,    71,    72,    37,    98,    99,   100,
+   216,   206,    36,   111,    93,    64,    94,    73,    60,   138,
+   139,   140,     1,     2,    17,    17,    18,    19,    20,    21,
+    22,   -13,   149,     5,    23,   221,   105,   -94,     5,   -94,
+   165,    82,    24,    95,    88,    83,   144,    90,   219,   213,
+    93,   223,    94,    93,    25,    94,   113,   114,   115,   116,
+    62,   118,   125,   151,   152,   153,   154,    65,   156,     1,
+     2,   133,   178,   179,   180,   181,    66,   183,   207,     9,
+    10,   127,   107,   197,    67,   198,   199,   200,    84,    85,
+    86,    87,    79,    38,   143,    88,   146,   101,   102,     5,
+   126,    39,   135,   136,    91,   155,     5,   157,    96,    40,
+    41,    42,    43,    44,    45,    46,    39,   161,   127,   174,
+   175,     5,   120,   121,    40,    41,    42,    43,    44,    45,
+    46,    92,   125,   106,   112,   119,   129,   182,   142,   133,
+    39,   130,   147,   205,   141,     5,   195,   148,    40,    41,
+    42,    43,    44,    45,    46,   158,   159,   160,   172,   164,
+   144,   190,   186,   185,   188,   191,   192,   205,   194,   196,
+   208,    39,   211,   217,   210,   225,     5,   204,   230,    40,
+    41,    42,    43,    44,    45,    46,   213,   203,  -127,   227,
+   208,   212,     5,   229,   215,    40,    41,    42,    43,    44,
+    45,    46,   220,   232,   233,     8,    26,     5,   162,    12,
+    40,    41,    42,    43,    44,    45,    46,   184,   224,   163,
+    27,    28,   117,   171,   187,   176,   218,   177,   228,     0,
+     0,   193
 };
 
 static const short yycheck[] = {     1,
      2,    17,    38,    18,    19,    20,    21,    62,   112,    24,
-     6,     5,    36,    16,    38,    33,    34,    57,    58,    59,
-   189,    45,    25,    63,    14,    21,    16,    17,    23,    98,
-    99,   100,     3,     4,    23,     6,     7,     8,     9,    10,
-    11,    35,   111,   212,    15,    40,    61,    42,    36,     3,
-     4,    22,    40,    55,    42,     7,     8,     9,    10,    11,
-    37,   211,    35,    34,   214,    42,    68,    69,    70,    71,
-    22,    73,    88,   113,   114,   115,   116,    40,   118,    42,
-    40,    96,   151,   152,   153,   154,    27,   156,   192,    37,
-    31,    93,   147,    11,    26,    27,    28,    29,    19,    20,
-    18,    23,    24,    33,   106,    23,   108,    33,    26,    27,
-    28,    29,    30,    31,    32,   117,    33,   119,    12,    33,
-    34,    24,    25,    33,    18,    37,    39,   129,   130,    23,
-    39,    39,    26,    27,    28,    29,    30,    31,    32,    44,
-    35,    39,   158,    39,    41,    36,    36,    40,    40,   164,
-    38,    36,    18,   189,    38,    41,   172,    23,    24,    25,
-    26,    27,    28,    29,    30,    31,    32,    36,    45,    45,
-    33,    43,    33,    41,    33,    35,   212,    33,    42,    41,
-   196,    18,    36,    13,    24,    43,    23,   189,    43,    26,
-    27,    28,    29,    30,    31,    32,    18,    42,    45,   215,
-   202,    23,    43,   205,    26,    27,    28,    29,    30,    31,
-    32,    18,     0,     0,     4,    14,    23,   215,     7,    26,
-    27,    28,    29,    30,    31,    32,   130,   158,    14,   131,
-    14,   142,   147,    72,   169,   164,   210,   222,    -1,   146
+     5,     7,     8,     9,    10,    11,    16,    57,    58,    59,
+    37,   189,    36,    63,    41,    25,    43,    23,    41,    98,
+    99,   100,     3,     4,     6,     6,     7,     8,     9,    10,
+    11,    36,   111,    24,    15,   213,    61,    37,    24,    39,
+    22,    28,    23,    55,    38,    32,    46,    40,   212,    43,
+    41,   215,    43,    41,    35,    43,    68,    69,    70,    71,
+    38,    73,    88,   113,   114,   115,   116,    34,   118,     3,
+     4,    96,   151,   152,   153,   154,    34,   156,   192,    34,
+    35,    93,   147,    14,    34,    16,    17,    18,    27,    28,
+    29,    30,    34,    11,   106,    38,   108,    20,    21,    24,
+    25,    19,    34,    35,    40,   117,    24,   119,    45,    27,
+    28,    29,    30,    31,    32,    33,    19,   129,   130,    25,
+    26,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+    33,    40,   158,    12,    36,    40,    40,    34,    37,   164,
+    19,    41,    37,   189,    42,    24,   172,    39,    27,    28,
+    29,    30,    31,    32,    33,    37,    39,    42,    46,    37,
+    46,    34,    42,    44,    41,    34,    36,   213,    34,    43,
+   196,    19,    37,    44,    42,    13,    24,   189,    25,    27,
+    28,    29,    30,    31,    32,    33,    43,    19,    44,    44,
+   216,   203,    24,    46,   206,    27,    28,    29,    30,    31,
+    32,    33,    19,     0,     0,     4,    14,    24,   130,     7,
+    27,    28,    29,    30,    31,    32,    33,   158,   216,   131,
+    14,    14,    72,   142,   164,   146,   211,   147,   223,    -1,
+    -1,   169
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/dcs/software/supported/encap/bison-1.27/share/bison.simple"
@@ -1430,27 +1437,31 @@ case 124:
 { yyval.intval = SLOCKED; ;
     break;}
 case 125:
-#line 455 "xi-grammar.y"
-{ yyval.rtype = 0; ;
+#line 453 "xi-grammar.y"
+{ yyval.intval = SVIRTUAL; ;
     break;}
 case 126:
 #line 457 "xi-grammar.y"
-{ yyval.rtype = new BuiltinType("void"); ;
+{ yyval.rtype = 0; ;
     break;}
 case 127:
 #line 459 "xi-grammar.y"
-{ yyval.rtype = yyvsp[0].ptype; ;
+{ yyval.rtype = new BuiltinType("void"); ;
     break;}
 case 128:
-#line 463 "xi-grammar.y"
-{ yyval.rtype = yyvsp[-1].rtype; ;
+#line 461 "xi-grammar.y"
+{ yyval.rtype = yyvsp[0].ptype; ;
     break;}
 case 129:
-#line 467 "xi-grammar.y"
-{ yyval.val = 0; ;
+#line 465 "xi-grammar.y"
+{ yyval.rtype = yyvsp[-1].rtype; ;
     break;}
 case 130:
 #line 469 "xi-grammar.y"
+{ yyval.val = 0; ;
+    break;}
+case 131:
+#line 471 "xi-grammar.y"
 { yyval.val = new Value(yyvsp[0].strval); ;
     break;}
 }
@@ -1675,7 +1686,7 @@ yyerrhandle:
     }
   return 1;
 }
-#line 471 "xi-grammar.y"
+#line 473 "xi-grammar.y"
 
 void yyerror(const char *mesg)
 {
index 2cc4707b3019ec9ddf485d563125153046edd951..4ba2d74b230524e6cf05d5235796c724c9c024e5 100644 (file)
@@ -40,21 +40,22 @@ typedef union {
 #define        TEMPLATE        269
 #define        SYNC    270
 #define        EXCLUSIVE       271
-#define        VOID    272
-#define        PACKED  273
-#define        VARSIZE 274
-#define        ENTRY   275
-#define        MAINCHARE       276
-#define        IDENT   277
-#define        NUMBER  278
-#define        LITERAL 279
-#define        INT     280
-#define        LONG    281
-#define        SHORT   282
-#define        CHAR    283
-#define        FLOAT   284
-#define        DOUBLE  285
-#define        UNSIGNED        286
+#define        VIRTUAL 272
+#define        VOID    273
+#define        PACKED  274
+#define        VARSIZE 275
+#define        ENTRY   276
+#define        MAINCHARE       277
+#define        IDENT   278
+#define        NUMBER  279
+#define        LITERAL 280
+#define        INT     281
+#define        LONG    282
+#define        SHORT   283
+#define        CHAR    284
+#define        FLOAT   285
+#define        DOUBLE  286
+#define        UNSIGNED        287
 
 
 extern YYSTYPE yylval;
index e1df1e1fde5844e968c8a694115c5d69c9314c8f..67319adf151084704e3b06bb66de01b08b8cc129 100644 (file)
@@ -47,7 +47,7 @@ ModuleList *modlist;
 %token STACKSIZE
 %token THREADED
 %token TEMPLATE
-%token SYNC EXCLUSIVE
+%token SYNC EXCLUSIVE VIRTUAL
 %token VOID
 %token PACKED
 %token VARSIZE
@@ -449,6 +449,8 @@ EAttrib             : THREADED
                { $$ = SSYNC; }
                | EXCLUSIVE
                { $$ = SLOCKED; }
+               | VIRTUAL
+               { $$ = SVIRTUAL; }
                ;
 
 OptType                : /* Empty */
index 57dccd8df535c6b41d002d2a75a3605a1c852d54..135dc62b00a1c2d275ceb654663f25314ba0645f 100644 (file)
@@ -1606,6 +1606,7 @@ struct rwtable rwtable[] = {
   "class",     CLASS,
   "sync",      SYNC,
   "exclusive", EXCLUSIVE,
+  "virtual",    VIRTUAL,
   "void",      VOID,
   "mainchare", MAINCHARE,
   "packed",     PACKED,
index ed41aee2c1dba39e32acd33125b87efae82563d2..f6e683c78a655e71d366f37719ec831006ff1663 100644 (file)
@@ -80,6 +80,7 @@ struct rwtable rwtable[] = {
   "class",     CLASS,
   "sync",      SYNC,
   "exclusive", EXCLUSIVE,
+  "virtual",    VIRTUAL,
   "void",      VOID,
   "mainchare", MAINCHARE,
   "packed",     PACKED,
index 0f9823e92ae07940e446280cc8d1c0f711b06d54..7ac84cc6ba5840054df79344331ca9d848823091 100644 (file)
@@ -1105,6 +1105,8 @@ void Entry::genChareDecl(XStr& str)
   } else {
     // entry method declaration
     str << "    ";
+    if(isVirtual())
+      str << "virtual ";
     if(retType==0) {
       cerr << "Entry methods must specify a return type: ";
       cerr << "use void if necessary\n";
@@ -1137,6 +1139,8 @@ void Entry::genGroupDecl(XStr& str)
     // entry method broadcast declaration
     if(!isSync()) {
       str << "    ";
+      if(isVirtual())
+        str << "virtual ";
       if(retType==0) {
         cerr << "Entry methods must specify a return type: ";
         cerr << "use void if necessary\n";
@@ -1169,6 +1173,8 @@ void Entry::genGroupDecl(XStr& str)
     }
     // entry method onPE declaration
     str << "    ";
+    if(isVirtual())
+      str << "virtual ";
     retType->print(str);
     str << " " << name;
     str << "(";
@@ -1233,6 +1239,8 @@ void Entry::genArrayDecl(XStr& str)
   } else {
     // entry method broadcast declaration
     str << "    ";
+    if(isVirtual())
+      str << "virtual ";
     if(retType==0) {
       cerr << "Entry methods must specify a return type: ";
       cerr << "use void if necessary\n";
@@ -1266,6 +1274,8 @@ void Entry::genArrayDecl(XStr& str)
     str << "    }\n";
     // entry method onPE declaration
     str << "    ";
+    if(isVirtual())
+      str << "virtual ";
     retType->print(str);
     str << " " << name;
     str << "(";
index f6291aa6fc21cfda8d1fe8dee6573bae231f0b1a..6a13acd21a71db7e73ac3fcc071638e090dd2f54 100644 (file)
@@ -381,6 +381,7 @@ class TVarList : public Printable {
 #define STHREADED 0x01
 #define SSYNC     0x02
 #define SLOCKED   0x04
+#define SVIRTUAL  0x08
 
 class Entry : public Member {
   private:
@@ -420,6 +421,7 @@ class Entry : public Member {
     int isSync(void) { return (attribs & SSYNC); }
     int isConstructor(void) { return !strcmp(name, container->getBaseName());}
     int isExclusive(void) { return (attribs & SLOCKED); }
+    int isVirtual(void) { return (attribs & SVIRTUAL); }
     void print(XStr& str);
     void genDecls(XStr& str);
     void genDefs(XStr& str);