GnuCOBOL  2.0
A free COBOL compiler
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
ppparse.c File Reference
#include "config.h"
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "cobc.h"
#include "ppparse.def"
Include dependency graph for ppparse.c:

Data Structures

union  YYSTYPE
 
union  yyalloc
 

Macros

#define YYBISON   1
 
#define YYBISON_VERSION   "2.5"
 
#define YYSKELETON_NAME   "yacc.c"
 
#define YYPURE   0
 
#define YYPUSH   0
 
#define YYPULL   1
 
#define YYLSP_NEEDED   0
 
#define yyparse   ppparse
 
#define yylex   pplex
 
#define yyerror   pperror
 
#define yylval   pplval
 
#define yychar   ppchar
 
#define yydebug   ppdebug
 
#define yynerrs   ppnerrs
 
#define COB_IN_PPPARSE   1
 
#define _STDLIB_H   1
 
#define pperror   cb_error
 
#define COND_EQ   0
 
#define COND_LT   1U
 
#define COND_GT   2U
 
#define COND_LE   3U
 
#define COND_GE   4U
 
#define COND_NE   5U
 
#define CB_PARSE_DEF(x, z)   if (!strcasecmp (name, x)) return (z);
 
#define YYDEBUG   0
 
#define YYERROR_VERBOSE   1
 
#define YYTOKEN_TABLE   0
 
#define YYTOKENTYPE
 
#define YYSTYPE_IS_TRIVIAL   1
 
#define yystype   YYSTYPE /* obsolescent; will be withdrawn */
 
#define YYSTYPE_IS_DECLARED   1
 
#define YYSIZE_T   unsigned int
 
#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)
 
#define YY_(msgid)   msgid
 
#define YYUSE(e)   ((void) (e))
 
#define YYID(n)   (n)
 
#define YYSTACK_ALLOC   YYMALLOC
 
#define YYSTACK_FREE   YYFREE
 
#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM
 
#define YYMALLOC   malloc
 
#define YYFREE   free
 
#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)
 
#define YYSTACK_BYTES(N)
 
#define YYCOPY_NEEDED   1
 
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
 
#define YYCOPY(To, From, Count)
 
#define YYFINAL   2
 
#define YYLAST   166
 
#define YYNTOKENS   63
 
#define YYNNTS   45
 
#define YYNRULES   116
 
#define YYNSTATES   180
 
#define YYUNDEFTOK   2
 
#define YYMAXUTOK   315
 
#define YYTRANSLATE(YYX)   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
#define YYPACT_NINF   -73
 
#define YYTABLE_NINF   -106
 
#define yypact_value_is_default(yystate)   ((yystate) == (-73))
 
#define yytable_value_is_error(yytable_value)   YYID (0)
 
#define yyerrok   (yyerrstatus = 0)
 
#define yyclearin   (yychar = YYEMPTY)
 
#define YYEMPTY   (-2)
 
#define YYEOF   0
 
#define YYACCEPT   goto yyacceptlab
 
#define YYABORT   goto yyabortlab
 
#define YYERROR   goto yyerrorlab
 
#define YYFAIL   goto yyerrlab
 
#define YYRECOVERING()   (!!yyerrstatus)
 
#define YYBACKUP(Token, Value)
 
#define YYTERROR   1
 
#define YYERRCODE   256
 
#define YYRHSLOC(Rhs, K)   ((Rhs)[K])
 
#define YYLLOC_DEFAULT(Current, Rhs, N)
 
#define YY_LOCATION_PRINT(File, Loc)   ((void) 0)
 
#define YYLEX   yylex ()
 
#define YYDPRINTF(Args)
 
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 
#define YY_STACK_PRINT(Bottom, Top)
 
#define YY_REDUCE_PRINT(Rule)
 
#define YYINITDEPTH   200
 
#define YYMAXDEPTH   10000
 
#define YYCASE_(N, S)
 
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
#define YYSYNTAX_ERROR
 

Typedefs

typedef union YYSTYPE YYSTYPE
 
typedef unsigned char yytype_uint8
 
typedef short int yytype_int8
 
typedef unsigned short int yytype_uint16
 
typedef short int yytype_int16
 

Enumerations

enum  yytokentype {
  TOKEN_EOF = 0, ACCEPT = 258, ACCESS = 259, ADD = 260,
  ADDRESS = 261, ADVANCING = 262, AFTER = 263, ALL = 264,
  ALLOCATE = 265, ALPHABET = 266, ALPHABETIC = 267, ALPHABETIC_LOWER = 268,
  ALPHABETIC_UPPER = 269, ALPHANUMERIC = 270, ALPHANUMERIC_EDITED = 271, ALSO = 272,
  ALTER = 273, ALTERNATE = 274, AND = 275, ANY = 276,
  ARE = 277, AREA = 278, ARGUMENT_NUMBER = 279, ARGUMENT_VALUE = 280,
  AS = 281, ASCENDING = 282, ASCII = 283, ASSIGN = 284,
  AT = 285, ATTRIBUTE = 286, AUTO = 287, AUTOMATIC = 288,
  AWAY_FROM_ZERO = 289, BACKGROUND_COLOR = 290, BASED = 291, BEFORE = 292,
  BELL = 293, BINARY = 294, BINARY_C_LONG = 295, BINARY_CHAR = 296,
  BINARY_DOUBLE = 297, BINARY_LONG = 298, BINARY_SHORT = 299, BLANK = 300,
  BLINK = 301, BLOCK = 302, BOTTOM = 303, BY = 304,
  BYTE_LENGTH = 305, CALL = 306, CANCEL = 307, CAPACITY = 308,
  CF = 309, CH = 310, CHAINING = 311, CHARACTER = 312,
  CHARACTERS = 313, CLASS = 314, CLASSIFICATION = 315, CLOSE = 316,
  CODE = 317, CODE_SET = 318, COLLATING = 319, COL = 320,
  COLS = 321, COLUMN = 322, COLUMNS = 323, COMMA = 324,
  COMMAND_LINE = 325, COMMA_DELIM = 326, COMMIT = 327, COMMON = 328,
  COMP = 329, COMPUTE = 330, COMP_1 = 331, COMP_2 = 332,
  COMP_3 = 333, COMP_4 = 334, COMP_5 = 335, COMP_6 = 336,
  COMP_X = 337, CONCATENATE_FUNC = 338, CONDITION = 339, CONFIGURATION = 340,
  CONSTANT = 341, CONTAINS = 342, CONTENT = 343, CONTINUE = 344,
  CONTROL = 345, CONTROLS = 346, CONVERSION = 347, CONVERTING = 348,
  COPY = 349, CORRESPONDING = 350, COUNT = 351, CRT = 352,
  CRT_UNDER = 353, CURRENCY = 354, CURRENT_DATE_FUNC = 355, CURSOR = 356,
  CYCLE = 357, DATA = 358, DATE = 359, DAY = 360,
  DAY_OF_WEEK = 361, DE = 362, DEBUGGING = 363, DECIMAL_POINT = 364,
  DECLARATIVES = 365, DEFAULT = 366, DELETE = 367, DELIMITED = 368,
  DELIMITER = 369, DEPENDING = 370, DESCENDING = 371, DETAIL = 372,
  DISC = 373, DISK = 374, DISPLAY = 375, DISPLAY_OF_FUNC = 376,
  DIVIDE = 377, DIVISION = 378, DOWN = 379, DUPLICATES = 380,
  DYNAMIC = 381, EBCDIC = 382, EC = 383, ELSE = 384,
  END = 385, END_ACCEPT = 386, END_ADD = 387, END_CALL = 388,
  END_COMPUTE = 389, END_DELETE = 390, END_DISPLAY = 391, END_DIVIDE = 392,
  END_EVALUATE = 393, END_FUNCTION = 394, END_IF = 395, END_MULTIPLY = 396,
  END_PERFORM = 397, END_PROGRAM = 398, END_READ = 399, END_RETURN = 400,
  END_REWRITE = 401, END_SEARCH = 402, END_START = 403, END_STRING = 404,
  END_SUBTRACT = 405, END_UNSTRING = 406, END_WRITE = 407, ENTRY = 408,
  ENVIRONMENT = 409, ENVIRONMENT_NAME = 410, ENVIRONMENT_VALUE = 411, EOL = 412,
  EOP = 413, EOS = 414, EQUAL = 415, ERASE = 416,
  ERROR = 417, ESCAPE = 418, EVALUATE = 419, EVENT_STATUS = 420,
  EXCEPTION = 421, EXCEPTION_CONDITION = 422, EXCLUSIVE = 423, EXIT = 424,
  EXPONENTIATION = 425, EXTEND = 426, EXTERNAL = 427, FD = 428,
  FILE_CONTROL = 429, FILE_ID = 430, FILLER = 431, FINAL = 432,
  FIRST = 433, FLOAT_BINARY_128 = 434, FLOAT_BINARY_32 = 435, FLOAT_BINARY_64 = 436,
  FLOAT_DECIMAL_16 = 437, FLOAT_DECIMAL_34 = 438, FLOAT_DECIMAL_7 = 439, FLOAT_EXTENDED = 440,
  FLOAT_LONG = 441, FLOAT_SHORT = 442, FOOTING = 443, FOR = 444,
  FOREGROUND_COLOR = 445, FOREVER = 446, FORMATTED_DATE_FUNC = 447, FORMATTED_DATETIME_FUNC = 448,
  FORMATTED_TIME_FUNC = 449, FREE = 450, FROM = 451, FROM_CRT = 452,
  FULL = 453, FUNCTION = 454, FUNCTION_ID = 455, FUNCTION_NAME = 456,
  GENERATE = 457, GIVING = 458, GLOBAL = 459, GO = 460,
  GOBACK = 461, GREATER = 462, GREATER_OR_EQUAL = 463, GROUP = 464,
  HEADING = 465, HIGHLIGHT = 466, HIGH_VALUE = 467, ID = 468,
  IDENTIFICATION = 469, IF = 470, IGNORE = 471, IGNORING = 472,
  IN = 473, INDEX = 474, INDEXED = 475, INDICATE = 476,
  INITIALIZE = 477, INITIALIZED = 478, INITIATE = 479, INPUT = 480,
  INPUT_OUTPUT = 481, INSPECT = 482, INTO = 483, INTRINSIC = 484,
  INVALID = 485, INVALID_KEY = 486, IS = 487, I_O = 488,
  I_O_CONTROL = 489, JUSTIFIED = 490, KEPT = 491, KEY = 492,
  KEYBOARD = 493, LABEL = 494, LAST = 495, LEADING = 496,
  LEFT = 497, LEFTLINE = 498, LENGTH = 499, LENGTH_OF = 500,
  LESS = 501, LESS_OR_EQUAL = 502, LIMIT = 503, LIMITS = 504,
  LINAGE = 505, LINAGE_COUNTER = 506, LINE = 507, LINE_COUNTER = 508,
  LINES = 509, LINKAGE = 510, LITERAL = 511, LOCALE = 512,
  LOCALE_DATE_FUNC = 513, LOCALE_TIME_FUNC = 514, LOCALE_TIME_FROM_FUNC = 515, LOCAL_STORAGE = 516,
  LOCK = 517, LOWER = 518, LOWER_CASE_FUNC = 519, LOWLIGHT = 520,
  LOW_VALUE = 521, MANUAL = 522, MEMORY = 523, MERGE = 524,
  MINUS = 525, MNEMONIC_NAME = 526, MODE = 527, MOVE = 528,
  MULTIPLE = 529, MULTIPLY = 530, NAME = 531, NATIONAL = 532,
  NATIONAL_EDITED = 533, NATIONAL_OF_FUNC = 534, NATIVE = 535, NEAREST_AWAY_FROM_ZERO = 536,
  NEAREST_EVEN = 537, NEAREST_TOWARD_ZERO = 538, NEGATIVE = 539, NEXT = 540,
  NEXT_PAGE = 541, NO = 542, NO_ECHO = 543, NORMAL = 544,
  NOT = 545, NOT_END = 546, NOT_EOP = 547, NOT_EQUAL = 548,
  NOT_EXCEPTION = 549, NOT_INVALID_KEY = 550, NOT_OVERFLOW = 551, NOT_SIZE_ERROR = 552,
  NO_ADVANCING = 553, NUMBER = 554, NUMBERS = 555, NUMERIC = 556,
  NUMERIC_EDITED = 557, NUMVALC_FUNC = 558, OBJECT_COMPUTER = 559, OCCURS = 560,
  OF = 561, OFF = 562, OMITTED = 563, ON = 564,
  ONLY = 565, OPEN = 566, OPTIONAL = 567, OR = 568,
  ORDER = 569, ORGANIZATION = 570, OTHER = 571, OUTPUT = 572,
  OVERLINE = 573, PACKED_DECIMAL = 574, PADDING = 575, PAGE = 576,
  PAGE_COUNTER = 577, PARAGRAPH = 578, PERFORM = 579, PH = 580,
  PF = 581, PICTURE = 582, PICTURE_SYMBOL = 583, PLUS = 584,
  POINTER = 585, POSITION = 586, POSITIVE = 587, PRESENT = 588,
  PREVIOUS = 589, PRINTER = 590, PRINTING = 591, PROCEDURE = 592,
  PROCEDURES = 593, PROCEED = 594, PROGRAM = 595, PROGRAM_ID = 596,
  PROGRAM_NAME = 597, PROGRAM_POINTER = 598, PROHIBITED = 599, PROMPT = 600,
  QUOTE = 601, RANDOM = 602, RD = 603, READ = 604,
  READY_TRACE = 605, RECORD = 606, RECORDING = 607, RECORDS = 608,
  RECURSIVE = 609, REDEFINES = 610, REEL = 611, REFERENCE = 612,
  REFERENCES = 613, RELATIVE = 614, RELEASE = 615, REMAINDER = 616,
  REMOVAL = 617, RENAMES = 618, REPLACE = 619, REPLACING = 620,
  REPORT = 621, REPORTING = 622, REPORTS = 623, REPOSITORY = 624,
  REPO_FUNCTION = 625, REQUIRED = 626, RESERVE = 627, RESET = 628,
  RESET_TRACE = 629, RETURN = 630, RETURNING = 631, REVERSE_FUNC = 632,
  REVERSE_VIDEO = 633, REVERSED = 634, REWIND = 635, REWRITE = 636,
  RF = 637, RH = 638, RIGHT = 639, ROLLBACK = 640,
  ROUNDED = 641, RUN = 642, SAME = 643, SCREEN = 644,
  SCREEN_CONTROL = 645, SCROLL = 646, SD = 647, SEARCH = 648,
  SECTION = 649, SECURE = 650, SEGMENT_LIMIT = 651, SELECT = 652,
  SEMI_COLON = 653, SENTENCE = 654, SEPARATE = 655, SEQUENCE = 656,
  SEQUENTIAL = 657, SET = 658, SHARING = 659, SIGN = 660,
  SIGNED = 661, SIGNED_INT = 662, SIGNED_LONG = 663, SIGNED_SHORT = 664,
  SIZE = 665, SIZE_ERROR = 666, SORT = 667, SORT_MERGE = 668,
  SOURCE = 669, SOURCE_COMPUTER = 670, SPACE = 671, SPECIAL_NAMES = 672,
  STANDARD = 673, STANDARD_1 = 674, STANDARD_2 = 675, START = 676,
  STATIC = 677, STATUS = 678, STDCALL = 679, STEP = 680,
  STOP = 681, STRING = 682, SUBSTITUTE_FUNC = 683, SUBSTITUTE_CASE_FUNC = 684,
  SUBTRACT = 685, SUM = 686, SUPPRESS = 687, SYMBOLIC = 688,
  SYNCHRONIZED = 689, SYSTEM_DEFAULT = 690, TAB = 691, TALLYING = 692,
  TAPE = 693, TERMINATE = 694, TEST = 695, THAN = 696,
  THEN = 697, THRU = 698, TIME = 699, TIMEOUT = 700,
  TIMES = 701, TO = 702, TOK_AMPER = 703, TOK_CLOSE_PAREN = 704,
  TOK_COLON = 705, TOK_DIV = 706, TOK_DOT = 707, TOK_EQUAL = 708,
  TOK_FALSE = 709, TOK_FILE = 710, TOK_GREATER = 711, TOK_INITIAL = 712,
  TOK_LESS = 713, TOK_MINUS = 714, TOK_MUL = 715, TOK_NULL = 716,
  TOK_OVERFLOW = 717, TOK_OPEN_PAREN = 718, TOK_PLUS = 719, TOK_TRUE = 720,
  TOP = 721, TOWARD_GREATER = 722, TOWARD_LESSER = 723, TRAILING = 724,
  TRANSFORM = 725, TRIM_FUNC = 726, TRUNCATION = 727, TYPE = 728,
  UNDERLINE = 729, UNIT = 730, UNLOCK = 731, UNSIGNED = 732,
  UNSIGNED_INT = 733, UNSIGNED_LONG = 734, UNSIGNED_SHORT = 735, UNSTRING = 736,
  UNTIL = 737, UP = 738, UPDATE = 739, UPON = 740,
  UPON_ARGUMENT_NUMBER = 741, UPON_COMMAND_LINE = 742, UPON_ENVIRONMENT_NAME = 743, UPON_ENVIRONMENT_VALUE = 744,
  UPPER = 745, UPPER_CASE_FUNC = 746, USAGE = 747, USE = 748,
  USER = 749, USER_DEFAULT = 750, USER_FUNCTION_NAME = 751, USER_REPO_FUNCTION = 752,
  USING = 753, VALUE = 754, VARYING = 755, WAIT = 756,
  WHEN = 757, WHEN_COMPILED_FUNC = 758, WITH = 759, WORD = 760,
  WORDS = 761, WORKING_STORAGE = 762, WRITE = 763, YYYYDDD = 764,
  YYYYMMDD = 765, ZERO = 766, SHIFT_PREFER = 767, TOKEN_EOF = 0,
  ACCEPT = 258, ACCESS = 259, ADD = 260, ADDRESS = 261,
  ADVANCING = 262, AFTER = 263, ALL = 264, ALLOCATE = 265,
  ALPHABET = 266, ALPHABETIC = 267, ALPHABETIC_LOWER = 268, ALPHABETIC_UPPER = 269,
  ALPHANUMERIC = 270, ALPHANUMERIC_EDITED = 271, ALSO = 272, ALTER = 273,
  ALTERNATE = 274, AND = 275, ANY = 276, ARE = 277,
  AREA = 278, ARGUMENT_NUMBER = 279, ARGUMENT_VALUE = 280, AS = 281,
  ASCENDING = 282, ASCII = 283, ASSIGN = 284, AT = 285,
  ATTRIBUTE = 286, AUTO = 287, AUTOMATIC = 288, AWAY_FROM_ZERO = 289,
  BACKGROUND_COLOR = 290, BASED = 291, BEFORE = 292, BELL = 293,
  BINARY = 294, BINARY_C_LONG = 295, BINARY_CHAR = 296, BINARY_DOUBLE = 297,
  BINARY_LONG = 298, BINARY_SHORT = 299, BLANK = 300, BLINK = 301,
  BLOCK = 302, BOTTOM = 303, BY = 304, BYTE_LENGTH = 305,
  CALL = 306, CANCEL = 307, CAPACITY = 308, CF = 309,
  CH = 310, CHAINING = 311, CHARACTER = 312, CHARACTERS = 313,
  CLASS = 314, CLASSIFICATION = 315, CLOSE = 316, CODE = 317,
  CODE_SET = 318, COLLATING = 319, COL = 320, COLS = 321,
  COLUMN = 322, COLUMNS = 323, COMMA = 324, COMMAND_LINE = 325,
  COMMA_DELIM = 326, COMMIT = 327, COMMON = 328, COMP = 329,
  COMPUTE = 330, COMP_1 = 331, COMP_2 = 332, COMP_3 = 333,
  COMP_4 = 334, COMP_5 = 335, COMP_6 = 336, COMP_X = 337,
  CONCATENATE_FUNC = 338, CONDITION = 339, CONFIGURATION = 340, CONSTANT = 341,
  CONTAINS = 342, CONTENT = 343, CONTINUE = 344, CONTROL = 345,
  CONTROLS = 346, CONVERSION = 347, CONVERTING = 348, COPY = 349,
  CORRESPONDING = 350, COUNT = 351, CRT = 352, CRT_UNDER = 353,
  CURRENCY = 354, CURRENT_DATE_FUNC = 355, CURSOR = 356, CYCLE = 357,
  DATA = 358, DATE = 359, DAY = 360, DAY_OF_WEEK = 361,
  DE = 362, DEBUGGING = 363, DECIMAL_POINT = 364, DECLARATIVES = 365,
  DEFAULT = 366, DELETE = 367, DELIMITED = 368, DELIMITER = 369,
  DEPENDING = 370, DESCENDING = 371, DETAIL = 372, DISC = 373,
  DISK = 374, DISPLAY = 375, DISPLAY_OF_FUNC = 376, DIVIDE = 377,
  DIVISION = 378, DOWN = 379, DUPLICATES = 380, DYNAMIC = 381,
  EBCDIC = 382, EC = 383, ELSE = 384, END = 385,
  END_ACCEPT = 386, END_ADD = 387, END_CALL = 388, END_COMPUTE = 389,
  END_DELETE = 390, END_DISPLAY = 391, END_DIVIDE = 392, END_EVALUATE = 393,
  END_FUNCTION = 394, END_IF = 395, END_MULTIPLY = 396, END_PERFORM = 397,
  END_PROGRAM = 398, END_READ = 399, END_RETURN = 400, END_REWRITE = 401,
  END_SEARCH = 402, END_START = 403, END_STRING = 404, END_SUBTRACT = 405,
  END_UNSTRING = 406, END_WRITE = 407, ENTRY = 408, ENVIRONMENT = 409,
  ENVIRONMENT_NAME = 410, ENVIRONMENT_VALUE = 411, EOL = 412, EOP = 413,
  EOS = 414, EQUAL = 415, ERASE = 416, ERROR = 417,
  ESCAPE = 418, EVALUATE = 419, EVENT_STATUS = 420, EXCEPTION = 421,
  EXCEPTION_CONDITION = 422, EXCLUSIVE = 423, EXIT = 424, EXPONENTIATION = 425,
  EXTEND = 426, EXTERNAL = 427, FD = 428, FILE_CONTROL = 429,
  FILE_ID = 430, FILLER = 431, FINAL = 432, FIRST = 433,
  FLOAT_BINARY_128 = 434, FLOAT_BINARY_32 = 435, FLOAT_BINARY_64 = 436, FLOAT_DECIMAL_16 = 437,
  FLOAT_DECIMAL_34 = 438, FLOAT_DECIMAL_7 = 439, FLOAT_EXTENDED = 440, FLOAT_LONG = 441,
  FLOAT_SHORT = 442, FOOTING = 443, FOR = 444, FOREGROUND_COLOR = 445,
  FOREVER = 446, FORMATTED_DATE_FUNC = 447, FORMATTED_DATETIME_FUNC = 448, FORMATTED_TIME_FUNC = 449,
  FREE = 450, FROM = 451, FROM_CRT = 452, FULL = 453,
  FUNCTION = 454, FUNCTION_ID = 455, FUNCTION_NAME = 456, GENERATE = 457,
  GIVING = 458, GLOBAL = 459, GO = 460, GOBACK = 461,
  GREATER = 462, GREATER_OR_EQUAL = 463, GROUP = 464, HEADING = 465,
  HIGHLIGHT = 466, HIGH_VALUE = 467, ID = 468, IDENTIFICATION = 469,
  IF = 470, IGNORE = 471, IGNORING = 472, IN = 473,
  INDEX = 474, INDEXED = 475, INDICATE = 476, INITIALIZE = 477,
  INITIALIZED = 478, INITIATE = 479, INPUT = 480, INPUT_OUTPUT = 481,
  INSPECT = 482, INTO = 483, INTRINSIC = 484, INVALID = 485,
  INVALID_KEY = 486, IS = 487, I_O = 488, I_O_CONTROL = 489,
  JUSTIFIED = 490, KEPT = 491, KEY = 492, KEYBOARD = 493,
  LABEL = 494, LAST = 495, LEADING = 496, LEFT = 497,
  LEFTLINE = 498, LENGTH = 499, LENGTH_OF = 500, LESS = 501,
  LESS_OR_EQUAL = 502, LIMIT = 503, LIMITS = 504, LINAGE = 505,
  LINAGE_COUNTER = 506, LINE = 507, LINE_COUNTER = 508, LINES = 509,
  LINKAGE = 510, LITERAL = 511, LOCALE = 512, LOCALE_DATE_FUNC = 513,
  LOCALE_TIME_FUNC = 514, LOCALE_TIME_FROM_FUNC = 515, LOCAL_STORAGE = 516, LOCK = 517,
  LOWER = 518, LOWER_CASE_FUNC = 519, LOWLIGHT = 520, LOW_VALUE = 521,
  MANUAL = 522, MEMORY = 523, MERGE = 524, MINUS = 525,
  MNEMONIC_NAME = 526, MODE = 527, MOVE = 528, MULTIPLE = 529,
  MULTIPLY = 530, NAME = 531, NATIONAL = 532, NATIONAL_EDITED = 533,
  NATIONAL_OF_FUNC = 534, NATIVE = 535, NEAREST_AWAY_FROM_ZERO = 536, NEAREST_EVEN = 537,
  NEAREST_TOWARD_ZERO = 538, NEGATIVE = 539, NEXT = 540, NEXT_PAGE = 541,
  NO = 542, NO_ECHO = 543, NORMAL = 544, NOT = 545,
  NOT_END = 546, NOT_EOP = 547, NOT_EQUAL = 548, NOT_EXCEPTION = 549,
  NOT_INVALID_KEY = 550, NOT_OVERFLOW = 551, NOT_SIZE_ERROR = 552, NO_ADVANCING = 553,
  NUMBER = 554, NUMBERS = 555, NUMERIC = 556, NUMERIC_EDITED = 557,
  NUMVALC_FUNC = 558, OBJECT_COMPUTER = 559, OCCURS = 560, OF = 561,
  OFF = 562, OMITTED = 563, ON = 564, ONLY = 565,
  OPEN = 566, OPTIONAL = 567, OR = 568, ORDER = 569,
  ORGANIZATION = 570, OTHER = 571, OUTPUT = 572, OVERLINE = 573,
  PACKED_DECIMAL = 574, PADDING = 575, PAGE = 576, PAGE_COUNTER = 577,
  PARAGRAPH = 578, PERFORM = 579, PH = 580, PF = 581,
  PICTURE = 582, PICTURE_SYMBOL = 583, PLUS = 584, POINTER = 585,
  POSITION = 586, POSITIVE = 587, PRESENT = 588, PREVIOUS = 589,
  PRINTER = 590, PRINTING = 591, PROCEDURE = 592, PROCEDURES = 593,
  PROCEED = 594, PROGRAM = 595, PROGRAM_ID = 596, PROGRAM_NAME = 597,
  PROGRAM_POINTER = 598, PROHIBITED = 599, PROMPT = 600, QUOTE = 601,
  RANDOM = 602, RD = 603, READ = 604, READY_TRACE = 605,
  RECORD = 606, RECORDING = 607, RECORDS = 608, RECURSIVE = 609,
  REDEFINES = 610, REEL = 611, REFERENCE = 612, REFERENCES = 613,
  RELATIVE = 614, RELEASE = 615, REMAINDER = 616, REMOVAL = 617,
  RENAMES = 618, REPLACE = 619, REPLACING = 620, REPORT = 621,
  REPORTING = 622, REPORTS = 623, REPOSITORY = 624, REPO_FUNCTION = 625,
  REQUIRED = 626, RESERVE = 627, RESET = 628, RESET_TRACE = 629,
  RETURN = 630, RETURNING = 631, REVERSE_FUNC = 632, REVERSE_VIDEO = 633,
  REVERSED = 634, REWIND = 635, REWRITE = 636, RF = 637,
  RH = 638, RIGHT = 639, ROLLBACK = 640, ROUNDED = 641,
  RUN = 642, SAME = 643, SCREEN = 644, SCREEN_CONTROL = 645,
  SCROLL = 646, SD = 647, SEARCH = 648, SECTION = 649,
  SECURE = 650, SEGMENT_LIMIT = 651, SELECT = 652, SEMI_COLON = 653,
  SENTENCE = 654, SEPARATE = 655, SEQUENCE = 656, SEQUENTIAL = 657,
  SET = 658, SHARING = 659, SIGN = 660, SIGNED = 661,
  SIGNED_INT = 662, SIGNED_LONG = 663, SIGNED_SHORT = 664, SIZE = 665,
  SIZE_ERROR = 666, SORT = 667, SORT_MERGE = 668, SOURCE = 669,
  SOURCE_COMPUTER = 670, SPACE = 671, SPECIAL_NAMES = 672, STANDARD = 673,
  STANDARD_1 = 674, STANDARD_2 = 675, START = 676, STATIC = 677,
  STATUS = 678, STDCALL = 679, STEP = 680, STOP = 681,
  STRING = 682, SUBSTITUTE_FUNC = 683, SUBSTITUTE_CASE_FUNC = 684, SUBTRACT = 685,
  SUM = 686, SUPPRESS = 687, SYMBOLIC = 688, SYNCHRONIZED = 689,
  SYSTEM_DEFAULT = 690, TAB = 691, TALLYING = 692, TAPE = 693,
  TERMINATE = 694, TEST = 695, THAN = 696, THEN = 697,
  THRU = 698, TIME = 699, TIMEOUT = 700, TIMES = 701,
  TO = 702, TOK_AMPER = 703, TOK_CLOSE_PAREN = 704, TOK_COLON = 705,
  TOK_DIV = 706, TOK_DOT = 707, TOK_EQUAL = 708, TOK_FALSE = 709,
  TOK_FILE = 710, TOK_GREATER = 711, TOK_INITIAL = 712, TOK_LESS = 713,
  TOK_MINUS = 714, TOK_MUL = 715, TOK_NULL = 716, TOK_OVERFLOW = 717,
  TOK_OPEN_PAREN = 718, TOK_PLUS = 719, TOK_TRUE = 720, TOP = 721,
  TOWARD_GREATER = 722, TOWARD_LESSER = 723, TRAILING = 724, TRANSFORM = 725,
  TRIM_FUNC = 726, TRUNCATION = 727, TYPE = 728, UNDERLINE = 729,
  UNIT = 730, UNLOCK = 731, UNSIGNED = 732, UNSIGNED_INT = 733,
  UNSIGNED_LONG = 734, UNSIGNED_SHORT = 735, UNSTRING = 736, UNTIL = 737,
  UP = 738, UPDATE = 739, UPON = 740, UPON_ARGUMENT_NUMBER = 741,
  UPON_COMMAND_LINE = 742, UPON_ENVIRONMENT_NAME = 743, UPON_ENVIRONMENT_VALUE = 744, UPPER = 745,
  UPPER_CASE_FUNC = 746, USAGE = 747, USE = 748, USER = 749,
  USER_DEFAULT = 750, USER_FUNCTION_NAME = 751, USER_REPO_FUNCTION = 752, USING = 753,
  VALUE = 754, VARYING = 755, WAIT = 756, WHEN = 757,
  WHEN_COMPILED_FUNC = 758, WITH = 759, WORD = 760, WORDS = 761,
  WORKING_STORAGE = 762, WRITE = 763, YYYYDDD = 764, YYYYMMDD = 765,
  ZERO = 766, SHIFT_PREFER = 767, TOKEN_EOF = 0, ALSO = 258,
  BY = 259, COPY = 260, EQEQ = 261, IN = 262,
  LAST = 263, LEADING = 264, OF = 265, OFF = 266,
  PRINTING = 267, REPLACE = 268, REPLACING = 269, SUPPRESS = 270,
  TRAILING = 271, DOT = 272, GARBAGE = 273, SOURCE_DIRECTIVE = 274,
  FORMAT = 275, IS = 276, FIXED = 277, FREE = 278,
  DEFINE_DIRECTIVE = 279, AS = 280, PARAMETER = 281, OVERRIDE = 282,
  SET_DIRECTIVE = 283, CONSTANT = 284, SOURCEFORMAT = 285, FOLDCOPYNAME = 286,
  NOFOLDCOPYNAME = 287, IF_DIRECTIVE = 288, ELSE_DIRECTIVE = 289, ENDIF_DIRECTIVE = 290,
  ELIF_DIRECTIVE = 291, GE = 292, LE = 293, LT = 294,
  GT = 295, EQ = 296, NE = 297, NOT = 298,
  THAN = 299, TO = 300, OR = 301, EQUAL = 302,
  GREATER = 303, LESS = 304, SET = 305, DEFINED = 306,
  TURN_DIRECTIVE = 307, ON = 308, CHECKING = 309, WITH = 310,
  LOCATION = 311, TERMINATOR = 312, TOKEN = 313, VARIABLE = 314,
  LITERAL = 315, TOKEN_EOF = 0, ALSO = 258, BY = 259,
  COPY = 260, EQEQ = 261, IN = 262, LAST = 263,
  LEADING = 264, OF = 265, OFF = 266, PRINTING = 267,
  REPLACE = 268, REPLACING = 269, SUPPRESS = 270, TRAILING = 271,
  DOT = 272, GARBAGE = 273, SOURCE_DIRECTIVE = 274, FORMAT = 275,
  IS = 276, FIXED = 277, FREE = 278, DEFINE_DIRECTIVE = 279,
  AS = 280, PARAMETER = 281, OVERRIDE = 282, SET_DIRECTIVE = 283,
  CONSTANT = 284, SOURCEFORMAT = 285, FOLDCOPYNAME = 286, NOFOLDCOPYNAME = 287,
  IF_DIRECTIVE = 288, ELSE_DIRECTIVE = 289, ENDIF_DIRECTIVE = 290, ELIF_DIRECTIVE = 291,
  GE = 292, LE = 293, LT = 294, GT = 295,
  EQ = 296, NE = 297, NOT = 298, THAN = 299,
  TO = 300, OR = 301, EQUAL = 302, GREATER = 303,
  LESS = 304, SET = 305, DEFINED = 306, TURN_DIRECTIVE = 307,
  ON = 308, CHECKING = 309, WITH = 310, LOCATION = 311,
  TERMINATOR = 312, TOKEN = 313, VARIABLE = 314, LITERAL = 315
}
 

Functions

static char * fix_filename (char *name)
 
static char * fold_lower (char *name)
 
static char * fold_upper (char *name)
 
static struct cb_replace_listppp_replace_list_add (struct cb_replace_list *list, const struct cb_text_list *old_text, const struct cb_text_list *new_text, const unsigned int lead_or_trail)
 
static unsigned int ppp_set_value (struct cb_define_struct *p, const char *value)
 
static unsigned int ppp_compare_vals (const struct cb_define_struct *p1, const struct cb_define_struct *p2, const unsigned int cond)
 
static struct cb_define_structppp_define_add (struct cb_define_struct *list, const char *name, const char *text, const unsigned int override)
 
static void ppp_define_del (const char *name)
 
static struct cb_define_structppp_search_lists (const char *name)
 
static struct cb_text_listppp_list_add (struct cb_text_list *list, const char *text)
 
static unsigned int ppp_search_comp_vars (const char *name)
 
static unsigned int ppp_check_needs_quote (const char *envval)
 
void ppparse_clear_vars (const struct cb_define_struct *p)
 
static YYSIZE_T yystrlen (char *yystr) const
 
static char * yystpcpy (char *yydest, const char *yysrc)
 
static YYSIZE_T yytnamerr (char *yyres, const char *yystr)
 
static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
 
static void yydestruct (char *yymsg, int yytype, YYSTYPE *yyvaluep) const
 
int yyparse ()
 

Variables

static struct cb_define_structppp_setvar_list
 
static unsigned int current_cmd
 
static const yytype_uint8 yytranslate []
 
static const char *const yytname []
 
static const yytype_uint8 yyr1 []
 
static const yytype_uint8 yyr2 []
 
static const yytype_uint8 yydefact []
 
static const yytype_int16 yydefgoto []
 
static const yytype_int16 yypact []
 
static const yytype_int16 yypgoto []
 
static const yytype_int16 yytable []
 
static const yytype_int16 yycheck []
 
static const yytype_uint8 yystos []
 
int yychar
 
YYSTYPE yylval
 
int yynerrs
 

Macro Definition Documentation

#define _STDLIB_H   1
#define CB_PARSE_DEF (   x,
 
)    if (!strcasecmp (name, x)) return (z);
#define COB_IN_PPPARSE   1
#define COND_EQ   0

Referenced by ppp_compare_vals().

#define COND_GE   4U

Referenced by ppp_compare_vals().

#define COND_GT   2U

Referenced by ppp_compare_vals().

#define COND_LE   3U

Referenced by ppp_compare_vals().

#define COND_LT   1U

Referenced by ppp_compare_vals().

#define COND_NE   5U

Referenced by ppp_compare_vals().

#define pperror   cb_error
#define YY_ (   msgid)    msgid

Referenced by yysyntax_error().

#define YY_LOCATION_PRINT (   File,
  Loc 
)    ((void) 0)
#define YY_REDUCE_PRINT (   Rule)
#define YY_STACK_PRINT (   Bottom,
  Top 
)
#define YY_SYMBOL_PRINT (   Title,
  Type,
  Value,
  Location 
)

Referenced by yydestruct().

#define YYABORT   goto yyabortlab
#define YYACCEPT   goto yyacceptlab
#define YYBACKUP (   Token,
  Value 
)
Value:
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (1); \
goto yybackup; \
} \
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (YYID (0))
#define YYBISON   1
#define YYBISON_VERSION   "2.5"
#define YYCASE_ (   N,
 
)
Value:
case N: \
yyformat = S; \
break
#define yychar   ppchar
#define yyclearin   (yychar = YYEMPTY)
#define YYCOPY (   To,
  From,
  Count 
)
Value:
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (YYID (0))
#define YYCOPY_NEEDED   1
#define yydebug   ppdebug
#define YYDEBUG   0
#define YYDPRINTF (   Args)
#define YYEMPTY   (-2)

Referenced by yysyntax_error().

#define YYEOF   0
#define YYERRCODE   256
#define yyerrok   (yyerrstatus = 0)
#define yyerror   pperror
#define YYERROR   goto yyerrorlab
#define YYERROR_VERBOSE   1
#define YYFAIL   goto yyerrlab
#define YYFINAL   2
#define YYFREE   free
#define YYID (   n)    (n)
#define YYINITDEPTH   200
#define YYLAST   166

Referenced by yysyntax_error().

#define yylex   pplex
#define YYLEX   yylex ()
#define YYLLOC_DEFAULT (   Current,
  Rhs,
 
)
Value:
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (YYID (0))
#define YYLSP_NEEDED   0
#define YYMALLOC   malloc
#define YYMAXDEPTH   10000
#define YYMAXUTOK   315
#define yynerrs   ppnerrs
#define YYNNTS   45
#define YYNRULES   116
#define YYNSTATES   180
#define YYNTOKENS   63

Referenced by yysyntax_error().

#define YYPACT_NINF   -73
#define yypact_value_is_default (   yystate)    ((yystate) == (-73))

Referenced by yysyntax_error().

int yyparse   ppparse

Referenced by process_translate().

#define YYPOPSTACK (   N)    (yyvsp -= (N), yyssp -= (N))
#define YYPULL   1
#define YYPURE   0
#define YYPUSH   0
#define YYRECOVERING ( )    (!!yyerrstatus)
#define YYRHSLOC (   Rhs,
 
)    ((Rhs)[K])
#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)
#define YYSIZE_T   unsigned int

Referenced by yystrlen(), yysyntax_error(), and yytnamerr().

#define YYSKELETON_NAME   "yacc.c"
#define YYSTACK_ALLOC   YYMALLOC
#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Referenced by yysyntax_error().

#define YYSTACK_BYTES (   N)
Value:
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
#define YYSTACK_FREE   YYFREE
#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)
#define YYSTACK_RELOCATE (   Stack_alloc,
  Stack 
)
Value:
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (YYID (0))
#define yystype   YYSTYPE /* obsolescent; will be withdrawn */
#define YYSTYPE_IS_DECLARED   1
#define YYSTYPE_IS_TRIVIAL   1
#define YYSYNTAX_ERROR
Value:
yysyntax_error (&yymsg_alloc, &yymsg, \
yyssp, yytoken)
#define YYTABLE_NINF   -106
#define yytable_value_is_error (   yytable_value)    YYID (0)

Referenced by yysyntax_error().

#define YYTERROR   1

Referenced by yysyntax_error().

#define YYTOKEN_TABLE   0
#define YYTOKENTYPE
#define YYTRANSLATE (   YYX)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
#define YYUNDEFTOK   2
#define YYUSE (   e)    ((void) (e))

Referenced by yydestruct().

Typedef Documentation

typedef union YYSTYPE YYSTYPE
typedef short int yytype_int16
typedef short int yytype_int8
typedef unsigned short int yytype_uint16
typedef unsigned char yytype_uint8

Enumeration Type Documentation

Enumerator
TOKEN_EOF 
ACCEPT 
ACCESS 
ADD 
ADDRESS 
ADVANCING 
AFTER 
ALL 
ALLOCATE 
ALPHABET 
ALPHABETIC 
ALPHABETIC_LOWER 
ALPHABETIC_UPPER 
ALPHANUMERIC 
ALPHANUMERIC_EDITED 
ALSO 
ALTER 
ALTERNATE 
AND 
ANY 
ARE 
AREA 
ARGUMENT_NUMBER 
ARGUMENT_VALUE 
AS 
ASCENDING 
ASCII 
ASSIGN 
AT 
ATTRIBUTE 
AUTO 
AUTOMATIC 
AWAY_FROM_ZERO 
BACKGROUND_COLOR 
BASED 
BEFORE 
BELL 
BINARY 
BINARY_C_LONG 
BINARY_CHAR 
BINARY_DOUBLE 
BINARY_LONG 
BINARY_SHORT 
BLANK 
BLINK 
BLOCK 
BOTTOM 
BY 
BYTE_LENGTH 
CALL 
CANCEL 
CAPACITY 
CF 
CH 
CHAINING 
CHARACTER 
CHARACTERS 
CLASS 
CLASSIFICATION 
CLOSE 
CODE 
CODE_SET 
COLLATING 
COL 
COLS 
COLUMN 
COLUMNS 
COMMA 
COMMAND_LINE 
COMMA_DELIM 
COMMIT 
COMMON 
COMP 
COMPUTE 
COMP_1 
COMP_2 
COMP_3 
COMP_4 
COMP_5 
COMP_6 
COMP_X 
CONCATENATE_FUNC 
CONDITION 
CONFIGURATION 
CONSTANT 
CONTAINS 
CONTENT 
CONTINUE 
CONTROL 
CONTROLS 
CONVERSION 
CONVERTING 
COPY 
CORRESPONDING 
COUNT 
CRT 
CRT_UNDER 
CURRENCY 
CURRENT_DATE_FUNC 
CURSOR 
CYCLE 
DATA 
DATE 
DAY 
DAY_OF_WEEK 
DE 
DEBUGGING 
DECIMAL_POINT 
DECLARATIVES 
DEFAULT 
DELETE 
DELIMITED 
DELIMITER 
DEPENDING 
DESCENDING 
DETAIL 
DISC 
DISK 
DISPLAY 
DISPLAY_OF_FUNC 
DIVIDE 
DIVISION 
DOWN 
DUPLICATES 
DYNAMIC 
EBCDIC 
EC 
ELSE 
END 
END_ACCEPT 
END_ADD 
END_CALL 
END_COMPUTE 
END_DELETE 
END_DISPLAY 
END_DIVIDE 
END_EVALUATE 
END_FUNCTION 
END_IF 
END_MULTIPLY 
END_PERFORM 
END_PROGRAM 
END_READ 
END_RETURN 
END_REWRITE 
END_SEARCH 
END_START 
END_STRING 
END_SUBTRACT 
END_UNSTRING 
END_WRITE 
ENTRY 
ENVIRONMENT 
ENVIRONMENT_NAME 
ENVIRONMENT_VALUE 
EOL 
EOP 
EOS 
EQUAL 
ERASE 
ERROR 
ESCAPE 
EVALUATE 
EVENT_STATUS 
EXCEPTION 
EXCEPTION_CONDITION 
EXCLUSIVE 
EXIT 
EXPONENTIATION 
EXTEND 
EXTERNAL 
FD 
FILE_CONTROL 
FILE_ID 
FILLER 
FINAL 
FIRST 
FLOAT_BINARY_128 
FLOAT_BINARY_32 
FLOAT_BINARY_64 
FLOAT_DECIMAL_16 
FLOAT_DECIMAL_34 
FLOAT_DECIMAL_7 
FLOAT_EXTENDED 
FLOAT_LONG 
FLOAT_SHORT 
FOOTING 
FOR 
FOREGROUND_COLOR 
FOREVER 
FORMATTED_DATE_FUNC 
FORMATTED_DATETIME_FUNC 
FORMATTED_TIME_FUNC 
FREE 
FROM 
FROM_CRT 
FULL 
FUNCTION 
FUNCTION_ID 
FUNCTION_NAME 
GENERATE 
GIVING 
GLOBAL 
GO 
GOBACK 
GREATER 
GREATER_OR_EQUAL 
GROUP 
HEADING 
HIGHLIGHT 
HIGH_VALUE 
ID 
IDENTIFICATION 
IF 
IGNORE 
IGNORING 
IN 
INDEX 
INDEXED 
INDICATE 
INITIALIZE 
INITIALIZED 
INITIATE 
INPUT 
INPUT_OUTPUT 
INSPECT 
INTO 
INTRINSIC 
INVALID 
INVALID_KEY 
IS 
I_O 
I_O_CONTROL 
JUSTIFIED 
KEPT 
KEY 
KEYBOARD 
LABEL 
LAST 
LEADING 
LEFT 
LEFTLINE 
LENGTH 
LENGTH_OF 
LESS 
LESS_OR_EQUAL 
LIMIT 
LIMITS 
LINAGE 
LINAGE_COUNTER 
LINE 
LINE_COUNTER 
LINES 
LINKAGE 
LITERAL 
LOCALE 
LOCALE_DATE_FUNC 
LOCALE_TIME_FUNC 
LOCALE_TIME_FROM_FUNC 
LOCAL_STORAGE 
LOCK 
LOWER 
LOWER_CASE_FUNC 
LOWLIGHT 
LOW_VALUE 
MANUAL 
MEMORY 
MERGE 
MINUS 
MNEMONIC_NAME 
MODE 
MOVE 
MULTIPLE 
MULTIPLY 
NAME 
NATIONAL 
NATIONAL_EDITED 
NATIONAL_OF_FUNC 
NATIVE 
NEAREST_AWAY_FROM_ZERO 
NEAREST_EVEN 
NEAREST_TOWARD_ZERO 
NEGATIVE 
NEXT 
NEXT_PAGE 
NO 
NO_ECHO 
NORMAL 
NOT 
NOT_END 
NOT_EOP 
NOT_EQUAL 
NOT_EXCEPTION 
NOT_INVALID_KEY 
NOT_OVERFLOW 
NOT_SIZE_ERROR 
NO_ADVANCING 
NUMBER 
NUMBERS 
NUMERIC 
NUMERIC_EDITED 
NUMVALC_FUNC 
OBJECT_COMPUTER 
OCCURS 
OF 
OFF 
OMITTED 
ON 
ONLY 
OPEN 
OPTIONAL 
OR 
ORDER 
ORGANIZATION 
OTHER 
OUTPUT 
OVERLINE 
PACKED_DECIMAL 
PADDING 
PAGE 
PAGE_COUNTER 
PARAGRAPH 
PERFORM 
PH 
PF 
PICTURE 
PICTURE_SYMBOL 
PLUS 
POINTER 
POSITION 
POSITIVE 
PRESENT 
PREVIOUS 
PRINTER 
PRINTING 
PROCEDURE 
PROCEDURES 
PROCEED 
PROGRAM 
PROGRAM_ID 
PROGRAM_NAME 
PROGRAM_POINTER 
PROHIBITED 
PROMPT 
QUOTE 
RANDOM 
RD 
READ 
READY_TRACE 
RECORD 
RECORDING 
RECORDS 
RECURSIVE 
REDEFINES 
REEL 
REFERENCE 
REFERENCES 
RELATIVE 
RELEASE 
REMAINDER 
REMOVAL 
RENAMES 
REPLACE 
REPLACING 
REPORT 
REPORTING 
REPORTS 
REPOSITORY 
REPO_FUNCTION 
REQUIRED 
RESERVE 
RESET 
RESET_TRACE 
RETURN 
RETURNING 
REVERSE_FUNC 
REVERSE_VIDEO 
REVERSED 
REWIND 
REWRITE 
RF 
RH 
RIGHT 
ROLLBACK 
ROUNDED 
RUN 
SAME 
SCREEN 
SCREEN_CONTROL 
SCROLL 
SD 
SEARCH 
SECTION 
SECURE 
SEGMENT_LIMIT 
SELECT 
SEMI_COLON 
SENTENCE 
SEPARATE 
SEQUENCE 
SEQUENTIAL 
SET 
SHARING 
SIGN 
SIGNED 
SIGNED_INT 
SIGNED_LONG 
SIGNED_SHORT 
SIZE 
SIZE_ERROR 
SORT 
SORT_MERGE 
SOURCE 
SOURCE_COMPUTER 
SPACE 
SPECIAL_NAMES 
STANDARD 
STANDARD_1 
STANDARD_2 
START 
STATIC 
STATUS 
STDCALL 
STEP 
STOP 
STRING 
SUBSTITUTE_FUNC 
SUBSTITUTE_CASE_FUNC 
SUBTRACT 
SUM 
SUPPRESS 
SYMBOLIC 
SYNCHRONIZED 
SYSTEM_DEFAULT 
TAB 
TALLYING 
TAPE 
TERMINATE 
TEST 
THAN 
THEN 
THRU 
TIME 
TIMEOUT 
TIMES 
TO 
TOK_AMPER 
TOK_CLOSE_PAREN 
TOK_COLON 
TOK_DIV 
TOK_DOT 
TOK_EQUAL 
TOK_FALSE 
TOK_FILE 
TOK_GREATER 
TOK_INITIAL 
TOK_LESS 
TOK_MINUS 
TOK_MUL 
TOK_NULL 
TOK_OVERFLOW 
TOK_OPEN_PAREN 
TOK_PLUS 
TOK_TRUE 
TOP 
TOWARD_GREATER 
TOWARD_LESSER 
TRAILING 
TRANSFORM 
TRIM_FUNC 
TRUNCATION 
TYPE 
UNDERLINE 
UNIT 
UNLOCK 
UNSIGNED 
UNSIGNED_INT 
UNSIGNED_LONG 
UNSIGNED_SHORT 
UNSTRING 
UNTIL 
UP 
UPDATE 
UPON 
UPON_ARGUMENT_NUMBER 
UPON_COMMAND_LINE 
UPON_ENVIRONMENT_NAME 
UPON_ENVIRONMENT_VALUE 
UPPER 
UPPER_CASE_FUNC 
USAGE 
USE 
USER 
USER_DEFAULT 
USER_FUNCTION_NAME 
USER_REPO_FUNCTION 
USING 
VALUE 
VARYING 
WAIT 
WHEN 
WHEN_COMPILED_FUNC 
WITH 
WORD 
WORDS 
WORKING_STORAGE 
WRITE 
YYYYDDD 
YYYYMMDD 
ZERO 
SHIFT_PREFER 
TOKEN_EOF 
ACCEPT 
ACCESS 
ADD 
ADDRESS 
ADVANCING 
AFTER 
ALL 
ALLOCATE 
ALPHABET 
ALPHABETIC 
ALPHABETIC_LOWER 
ALPHABETIC_UPPER 
ALPHANUMERIC 
ALPHANUMERIC_EDITED 
ALSO 
ALTER 
ALTERNATE 
AND 
ANY 
ARE 
AREA 
ARGUMENT_NUMBER 
ARGUMENT_VALUE 
AS 
ASCENDING 
ASCII 
ASSIGN 
AT 
ATTRIBUTE 
AUTO 
AUTOMATIC 
AWAY_FROM_ZERO 
BACKGROUND_COLOR 
BASED 
BEFORE 
BELL 
BINARY 
BINARY_C_LONG 
BINARY_CHAR 
BINARY_DOUBLE 
BINARY_LONG 
BINARY_SHORT 
BLANK 
BLINK 
BLOCK 
BOTTOM 
BY 
BYTE_LENGTH 
CALL 
CANCEL 
CAPACITY 
CF 
CH 
CHAINING 
CHARACTER 
CHARACTERS 
CLASS 
CLASSIFICATION 
CLOSE 
CODE 
CODE_SET 
COLLATING 
COL 
COLS 
COLUMN 
COLUMNS 
COMMA 
COMMAND_LINE 
COMMA_DELIM 
COMMIT 
COMMON 
COMP 
COMPUTE 
COMP_1 
COMP_2 
COMP_3 
COMP_4 
COMP_5 
COMP_6 
COMP_X 
CONCATENATE_FUNC 
CONDITION 
CONFIGURATION 
CONSTANT 
CONTAINS 
CONTENT 
CONTINUE 
CONTROL 
CONTROLS 
CONVERSION 
CONVERTING 
COPY 
CORRESPONDING 
COUNT 
CRT 
CRT_UNDER 
CURRENCY 
CURRENT_DATE_FUNC 
CURSOR 
CYCLE 
DATA 
DATE 
DAY 
DAY_OF_WEEK 
DE 
DEBUGGING 
DECIMAL_POINT 
DECLARATIVES 
DEFAULT 
DELETE 
DELIMITED 
DELIMITER 
DEPENDING 
DESCENDING 
DETAIL 
DISC 
DISK 
DISPLAY 
DISPLAY_OF_FUNC 
DIVIDE 
DIVISION 
DOWN 
DUPLICATES 
DYNAMIC 
EBCDIC 
EC 
ELSE 
END 
END_ACCEPT 
END_ADD 
END_CALL 
END_COMPUTE 
END_DELETE 
END_DISPLAY 
END_DIVIDE 
END_EVALUATE 
END_FUNCTION 
END_IF 
END_MULTIPLY 
END_PERFORM 
END_PROGRAM 
END_READ 
END_RETURN 
END_REWRITE 
END_SEARCH 
END_START 
END_STRING 
END_SUBTRACT 
END_UNSTRING 
END_WRITE 
ENTRY 
ENVIRONMENT 
ENVIRONMENT_NAME 
ENVIRONMENT_VALUE 
EOL 
EOP 
EOS 
EQUAL 
ERASE 
ERROR 
ESCAPE 
EVALUATE 
EVENT_STATUS 
EXCEPTION 
EXCEPTION_CONDITION 
EXCLUSIVE 
EXIT 
EXPONENTIATION 
EXTEND 
EXTERNAL 
FD 
FILE_CONTROL 
FILE_ID 
FILLER 
FINAL 
FIRST 
FLOAT_BINARY_128 
FLOAT_BINARY_32 
FLOAT_BINARY_64 
FLOAT_DECIMAL_16 
FLOAT_DECIMAL_34 
FLOAT_DECIMAL_7 
FLOAT_EXTENDED 
FLOAT_LONG 
FLOAT_SHORT 
FOOTING 
FOR 
FOREGROUND_COLOR 
FOREVER 
FORMATTED_DATE_FUNC 
FORMATTED_DATETIME_FUNC 
FORMATTED_TIME_FUNC 
FREE 
FROM 
FROM_CRT 
FULL 
FUNCTION 
FUNCTION_ID 
FUNCTION_NAME 
GENERATE 
GIVING 
GLOBAL 
GO 
GOBACK 
GREATER 
GREATER_OR_EQUAL 
GROUP 
HEADING 
HIGHLIGHT 
HIGH_VALUE 
ID 
IDENTIFICATION 
IF 
IGNORE 
IGNORING 
IN 
INDEX 
INDEXED 
INDICATE 
INITIALIZE 
INITIALIZED 
INITIATE 
INPUT 
INPUT_OUTPUT 
INSPECT 
INTO 
INTRINSIC 
INVALID 
INVALID_KEY 
IS 
I_O 
I_O_CONTROL 
JUSTIFIED 
KEPT 
KEY 
KEYBOARD 
LABEL 
LAST 
LEADING 
LEFT 
LEFTLINE 
LENGTH 
LENGTH_OF 
LESS 
LESS_OR_EQUAL 
LIMIT 
LIMITS 
LINAGE 
LINAGE_COUNTER 
LINE 
LINE_COUNTER 
LINES 
LINKAGE 
LITERAL 
LOCALE 
LOCALE_DATE_FUNC 
LOCALE_TIME_FUNC 
LOCALE_TIME_FROM_FUNC 
LOCAL_STORAGE 
LOCK 
LOWER 
LOWER_CASE_FUNC 
LOWLIGHT 
LOW_VALUE 
MANUAL 
MEMORY 
MERGE 
MINUS 
MNEMONIC_NAME 
MODE 
MOVE 
MULTIPLE 
MULTIPLY 
NAME 
NATIONAL 
NATIONAL_EDITED 
NATIONAL_OF_FUNC 
NATIVE 
NEAREST_AWAY_FROM_ZERO 
NEAREST_EVEN 
NEAREST_TOWARD_ZERO 
NEGATIVE 
NEXT 
NEXT_PAGE 
NO 
NO_ECHO 
NORMAL 
NOT 
NOT_END 
NOT_EOP 
NOT_EQUAL 
NOT_EXCEPTION 
NOT_INVALID_KEY 
NOT_OVERFLOW 
NOT_SIZE_ERROR 
NO_ADVANCING 
NUMBER 
NUMBERS 
NUMERIC 
NUMERIC_EDITED 
NUMVALC_FUNC 
OBJECT_COMPUTER 
OCCURS 
OF 
OFF 
OMITTED 
ON 
ONLY 
OPEN 
OPTIONAL 
OR 
ORDER 
ORGANIZATION 
OTHER 
OUTPUT 
OVERLINE 
PACKED_DECIMAL 
PADDING 
PAGE 
PAGE_COUNTER 
PARAGRAPH 
PERFORM 
PH 
PF 
PICTURE 
PICTURE_SYMBOL 
PLUS 
POINTER 
POSITION 
POSITIVE 
PRESENT 
PREVIOUS 
PRINTER 
PRINTING 
PROCEDURE 
PROCEDURES 
PROCEED 
PROGRAM 
PROGRAM_ID 
PROGRAM_NAME 
PROGRAM_POINTER 
PROHIBITED 
PROMPT 
QUOTE 
RANDOM 
RD 
READ 
READY_TRACE 
RECORD 
RECORDING 
RECORDS 
RECURSIVE 
REDEFINES 
REEL 
REFERENCE 
REFERENCES 
RELATIVE 
RELEASE 
REMAINDER 
REMOVAL 
RENAMES 
REPLACE 
REPLACING 
REPORT 
REPORTING 
REPORTS 
REPOSITORY 
REPO_FUNCTION 
REQUIRED 
RESERVE 
RESET 
RESET_TRACE 
RETURN 
RETURNING 
REVERSE_FUNC 
REVERSE_VIDEO 
REVERSED 
REWIND 
REWRITE 
RF 
RH 
RIGHT 
ROLLBACK 
ROUNDED 
RUN 
SAME 
SCREEN 
SCREEN_CONTROL 
SCROLL 
SD 
SEARCH 
SECTION 
SECURE 
SEGMENT_LIMIT 
SELECT 
SEMI_COLON 
SENTENCE 
SEPARATE 
SEQUENCE 
SEQUENTIAL 
SET 
SHARING 
SIGN 
SIGNED 
SIGNED_INT 
SIGNED_LONG 
SIGNED_SHORT 
SIZE 
SIZE_ERROR 
SORT 
SORT_MERGE 
SOURCE 
SOURCE_COMPUTER 
SPACE 
SPECIAL_NAMES 
STANDARD 
STANDARD_1 
STANDARD_2 
START 
STATIC 
STATUS 
STDCALL 
STEP 
STOP 
STRING 
SUBSTITUTE_FUNC 
SUBSTITUTE_CASE_FUNC 
SUBTRACT 
SUM 
SUPPRESS 
SYMBOLIC 
SYNCHRONIZED 
SYSTEM_DEFAULT 
TAB 
TALLYING 
TAPE 
TERMINATE 
TEST 
THAN 
THEN 
THRU 
TIME 
TIMEOUT 
TIMES 
TO 
TOK_AMPER 
TOK_CLOSE_PAREN 
TOK_COLON 
TOK_DIV 
TOK_DOT 
TOK_EQUAL 
TOK_FALSE 
TOK_FILE 
TOK_GREATER 
TOK_INITIAL 
TOK_LESS 
TOK_MINUS 
TOK_MUL 
TOK_NULL 
TOK_OVERFLOW 
TOK_OPEN_PAREN 
TOK_PLUS 
TOK_TRUE 
TOP 
TOWARD_GREATER 
TOWARD_LESSER 
TRAILING 
TRANSFORM 
TRIM_FUNC 
TRUNCATION 
TYPE 
UNDERLINE 
UNIT 
UNLOCK 
UNSIGNED 
UNSIGNED_INT 
UNSIGNED_LONG 
UNSIGNED_SHORT 
UNSTRING 
UNTIL 
UP 
UPDATE 
UPON 
UPON_ARGUMENT_NUMBER 
UPON_COMMAND_LINE 
UPON_ENVIRONMENT_NAME 
UPON_ENVIRONMENT_VALUE 
UPPER 
UPPER_CASE_FUNC 
USAGE 
USE 
USER 
USER_DEFAULT 
USER_FUNCTION_NAME 
USER_REPO_FUNCTION 
USING 
VALUE 
VARYING 
WAIT 
WHEN 
WHEN_COMPILED_FUNC 
WITH 
WORD 
WORDS 
WORKING_STORAGE 
WRITE 
YYYYDDD 
YYYYMMDD 
ZERO 
SHIFT_PREFER 
TOKEN_EOF 
ALSO 
BY 
COPY 
EQEQ 
IN 
LAST 
LEADING 
OF 
OFF 
PRINTING 
REPLACE 
REPLACING 
SUPPRESS 
TRAILING 
DOT 
GARBAGE 
SOURCE_DIRECTIVE 
FORMAT 
IS 
FIXED 
FREE 
DEFINE_DIRECTIVE 
AS 
PARAMETER 
OVERRIDE 
SET_DIRECTIVE 
CONSTANT 
SOURCEFORMAT 
FOLDCOPYNAME 
NOFOLDCOPYNAME 
IF_DIRECTIVE 
ELSE_DIRECTIVE 
ENDIF_DIRECTIVE 
ELIF_DIRECTIVE 
GE 
LE 
LT 
GT 
EQ 
NE 
NOT 
THAN 
TO 
OR 
EQUAL 
GREATER 
LESS 
SET 
DEFINED 
TURN_DIRECTIVE 
ON 
CHECKING 
WITH 
LOCATION 
TERMINATOR 
TOKEN 
VARIABLE 
LITERAL 
TOKEN_EOF 
ALSO 
BY 
COPY 
EQEQ 
IN 
LAST 
LEADING 
OF 
OFF 
PRINTING 
REPLACE 
REPLACING 
SUPPRESS 
TRAILING 
DOT 
GARBAGE 
SOURCE_DIRECTIVE 
FORMAT 
IS 
FIXED 
FREE 
DEFINE_DIRECTIVE 
AS 
PARAMETER 
OVERRIDE 
SET_DIRECTIVE 
CONSTANT 
SOURCEFORMAT 
FOLDCOPYNAME 
NOFOLDCOPYNAME 
IF_DIRECTIVE 
ELSE_DIRECTIVE 
ENDIF_DIRECTIVE 
ELIF_DIRECTIVE 
GE 
LE 
LT 
GT 
EQ 
NE 
NOT 
THAN 
TO 
OR 
EQUAL 
GREATER 
LESS 
SET 
DEFINED 
TURN_DIRECTIVE 
ON 
CHECKING 
WITH 
LOCATION 
TERMINATOR 
TOKEN 
VARIABLE 
LITERAL 
577  {
578  TOKEN_EOF = 0,
579  ALSO = 258,
580  BY = 259,
581  COPY = 260,
582  EQEQ = 261,
583  IN = 262,
584  LAST = 263,
585  LEADING = 264,
586  OF = 265,
587  OFF = 266,
588  PRINTING = 267,
589  REPLACE = 268,
590  REPLACING = 269,
591  SUPPRESS = 270,
592  TRAILING = 271,
593  DOT = 272,
594  GARBAGE = 273,
595  SOURCE_DIRECTIVE = 274,
596  FORMAT = 275,
597  IS = 276,
598  FIXED = 277,
599  FREE = 278,
600  DEFINE_DIRECTIVE = 279,
601  AS = 280,
602  PARAMETER = 281,
603  OVERRIDE = 282,
604  SET_DIRECTIVE = 283,
605  CONSTANT = 284,
606  SOURCEFORMAT = 285,
607  FOLDCOPYNAME = 286,
608  NOFOLDCOPYNAME = 287,
609  IF_DIRECTIVE = 288,
610  ELSE_DIRECTIVE = 289,
611  ENDIF_DIRECTIVE = 290,
612  ELIF_DIRECTIVE = 291,
613  GE = 292,
614  LE = 293,
615  LT = 294,
616  GT = 295,
617  EQ = 296,
618  NE = 297,
619  NOT = 298,
620  THAN = 299,
621  TO = 300,
622  OR = 301,
623  EQUAL = 302,
624  GREATER = 303,
625  LESS = 304,
626  SET = 305,
627  DEFINED = 306,
628  TURN_DIRECTIVE = 307,
629  ON = 308,
630  CHECKING = 309,
631  WITH = 310,
632  LOCATION = 311,
633  TERMINATOR = 312,
634  TOKEN = 313,
635  VARIABLE = 314,
636  LITERAL = 315
637  };

Function Documentation

static char* fix_filename ( char *  name)
static

References cb_define_struct::name.

Referenced by if().

137 {
138  /* remove quotation from alphanumeric literals */
139  if (name[0] == '\'' || name[0] == '\"') {
140  name++;
141  name[strlen (name) - 1] = 0;
142  }
143  return name;
144 }
static char* fold_lower ( char *  name)
static

References cob_u8_t, cb_define_struct::name, and p.

Referenced by if().

148 {
149  unsigned char *p;
150 
151  for (p = (unsigned char *)name; *p; p++) {
152  if (isupper (*p)) {
153  *p = (cob_u8_t)tolower (*p);
154  }
155  }
156  return name;
157 }
static char* fold_upper ( char *  name)
static

References cob_u8_t, cb_define_struct::name, and p.

Referenced by if().

161 {
162  unsigned char *p;
163 
164  for (p = (unsigned char *)name; *p; p++) {
165  if (islower (*p)) {
166  *p = (cob_u8_t)toupper (*p);
167  }
168  }
169  return name;
170 }
static unsigned int ppp_check_needs_quote ( const char *  envval)
static
454 {
455  const char *s;
456  size_t size;
457  unsigned int dot_seen;
458  unsigned int sign_seen;
459 
460  /* Non-quoted value - Check if possible numeric */
461  dot_seen = 0;
462  sign_seen = 0;
463  size = 0;
464  s = envval;
465  if (*s == '+' || *s == '-') {
466  sign_seen = 1;
467  size++;
468  s++;
469  }
470  for (; *s; ++s) {
471  if (*s == '.') {
472  if (dot_seen) {
473  break;
474  }
475  dot_seen = 1;
476  size++;
477  continue;
478  }
479  if (*s > '9' || *s < '0') {
480  break;
481  }
482  size++;
483  }
484 
485  if (*s || size <= (dot_seen + sign_seen)) {
486  return 1;
487  }
488  return 0;
489 }
static unsigned int ppp_compare_vals ( const struct cb_define_struct p1,
const struct cb_define_struct p2,
const unsigned int  cond 
)
static

References _, cb_warning(), COND_EQ, COND_GE, COND_GT, COND_LE, COND_LT, COND_NE, cb_define_struct::dec_part, cb_define_struct::deftype, cb_define_struct::int_part, PLEX_DEF_LIT, PLEX_DEF_NUM, cb_define_struct::sign, and cb_define_struct::value.

280 {
281  int result;
282 
283  if (!p1 || !p2) {
284  return 0;
285  }
286  if (p1->deftype != PLEX_DEF_LIT && p1->deftype != PLEX_DEF_NUM) {
287  return 0;
288  }
289  if (p2->deftype != PLEX_DEF_LIT && p2->deftype != PLEX_DEF_NUM) {
290  return 0;
291  }
292  if (p1->deftype != p2->deftype) {
293  cb_warning (_("Directive comparison on different types"));
294  return 0;
295  }
296  if (p1->deftype == PLEX_DEF_LIT) {
297  result = strcmp (p1->value, p2->value);
298  } else {
299  if (p1->sign && !p2->sign) {
300  result = -1;
301  } else if (!p1->sign && p2->sign) {
302  result = 1;
303  } else if (p1->int_part < p2->int_part) {
304  if (p1->sign) {
305  result = 1;
306  } else {
307  result = -1;
308  }
309  } else if (p1->int_part > p2->int_part) {
310  if (p1->sign) {
311  result = -1;
312  } else {
313  result = 1;
314  }
315  } else if (p1->dec_part < p2->dec_part) {
316  if (p1->sign) {
317  result = 1;
318  } else {
319  result = -1;
320  }
321  } else if (p1->dec_part > p2->dec_part) {
322  if (p1->sign) {
323  result = -1;
324  } else {
325  result = 1;
326  }
327  } else {
328  result = 0;
329  }
330  }
331  switch (cond) {
332  case COND_EQ:
333  return (result == 0);
334  case COND_LT:
335  return (result < 0);
336  case COND_GT:
337  return (result > 0);
338  case COND_LE:
339  return (result <= 0);
340  case COND_GE:
341  return (result >= 0);
342  case COND_NE:
343  return (result != 0);
344  default:
345  break;
346  }
347  return 0;
348 }
static struct cb_define_struct* ppp_define_add ( struct cb_define_struct list,
const char *  name,
const char *  text,
const unsigned int  override 
)
staticread

References _, cb_error(), cobc_plex_malloc(), cobc_plex_strdup(), cb_define_struct::deftype, cb_define_struct::last, cb_define_struct::name, cb_define_struct::next, NULL, p, PLEX_DEF_DEL, ppp_set_value(), and cb_define_struct::value.

Referenced by ppparse_clear_vars().

353 {
354  struct cb_define_struct *p;
355  struct cb_define_struct *l;
356 
357  /* Check duplicate */
358  for (l = list; l; l = l->next) {
359  if (!strcasecmp (name, l->name)) {
360  if (!override && l->deftype != PLEX_DEF_DEL) {
361  cb_error (_("Duplicate define"));
362  return NULL;
363  }
364  if (l->value) {
365  l->value = NULL;
366  }
367  if (ppp_set_value (l, text)) {
368  cb_error (_("Invalid constant"));
369  return NULL;
370  }
371  return list;
372  }
373  }
374 
375  p = cobc_plex_malloc (sizeof (struct cb_define_struct));
376  p->name = cobc_plex_strdup (name);
377  if (ppp_set_value (p, text)) {
378  cb_error (_("Invalid constant"));
379  return NULL;
380  }
381 
382  if (!list) {
383  p->last = p;
384  return p;
385  }
386  list->last->next = p;
387  list->last = p;
388  return list;
389 }
static void ppp_define_del ( const char *  name)
static

References cb_define_struct::dec_part, cb_define_struct::deftype, cb_define_struct::int_part, cb_define_struct::name, cb_define_struct::next, NULL, PLEX_DEF_DEL, cb_define_struct::sign, and cb_define_struct::value.

393 {
394  struct cb_define_struct *l;
395 
396  for (l = ppp_setvar_list; l; l = l->next) {
397  if (!strcmp (name, l->name)) {
398  l->deftype = PLEX_DEF_DEL;
399  if (l->value) {
400  l->value = NULL;
401  }
402  l->sign = 0;
403  l->int_part = 0;
404  l->dec_part = 0;
405  break;
406  }
407  }
408 }
static struct cb_text_list* ppp_list_add ( struct cb_text_list list,
const char *  text 
)
staticread

References cobc_plex_malloc(), cobc_plex_strdup(), cb_text_list::last, cb_text_list::next, p, and cb_text_list::text.

428 {
429  struct cb_text_list *p;
430 
431  p = cobc_plex_malloc (sizeof (struct cb_text_list));
432  p->text = cobc_plex_strdup (text);
433  if (!list) {
434  p->last = p;
435  return p;
436  }
437  list->last->next = p;
438  list->last = p;
439  return list;
440 }
static struct cb_replace_list* ppp_replace_list_add ( struct cb_replace_list list,
const struct cb_text_list old_text,
const struct cb_text_list new_text,
const unsigned int  lead_or_trail 
)
staticread

References cobc_plex_malloc(), cb_replace_list::last, cb_replace_list::lead_trail, cb_replace_list::new_text, cb_replace_list::next, cb_replace_list::old_text, and p.

177 {
178  struct cb_replace_list *p;
179 
180  p = cobc_plex_malloc (sizeof (struct cb_replace_list));
181  p->old_text = old_text;
182  p->new_text = new_text;
183  p->lead_trail = lead_or_trail;
184  if (!list) {
185  p->last = p;
186  return p;
187  }
188  list->last->next = p;
189  list->last = p;
190  return list;
191 }
static unsigned int ppp_search_comp_vars ( const char *  name)
static
444 {
445 #undef CB_PARSE_DEF
446 #define CB_PARSE_DEF(x,z) if (!strcasecmp (name, x)) return (z);
447 #include "ppparse.def"
448 #undef CB_PARSE_DEF
449  return 0;
450 }
static struct cb_define_struct* ppp_search_lists ( const char *  name)
staticread

References cb_define_struct::deftype, cb_define_struct::name, cb_define_struct::next, NULL, p, and PLEX_DEF_DEL.

412 {
413  struct cb_define_struct *p;
414 
415  for (p = ppp_setvar_list; p; p = p->next) {
416  if (!strcasecmp (name, p->name)) {
417  if (p->deftype != PLEX_DEF_DEL) {
418  return p;
419  }
420  break;
421  }
422  }
423  return NULL;
424 }
static unsigned int ppp_set_value ( struct cb_define_struct p,
const char *  value 
)
static

References cobc_plex_strdup(), cb_define_struct::dec_part, cb_define_struct::deftype, cb_define_struct::int_part, NULL, PLEX_DEF_LIT, PLEX_DEF_NONE, PLEX_DEF_NUM, sign, cb_define_struct::sign, cb_define_struct::value, and value.

Referenced by ppp_define_add().

195 {
196  const char *s;
197  size_t size;
198  unsigned int dotseen;
199  int sign;
200  int int_part;
201  int dec_part;
202 
203  if (!value) {
204  p->deftype = PLEX_DEF_NONE;
205  p->value = NULL;
206  p->sign = 0;
207  p->int_part = 0;
208  p->dec_part = 0;
209  return 0;
210  }
211 
212  if (*value == '"' || *value == '\'') {
213  sign = *value;
214  p->value = cobc_plex_strdup (value + 1);
215  size = strlen (p->value) - 1;
216  if (sign != p->value[size]) {
217  p->value = NULL;
218  p->deftype = PLEX_DEF_NONE;
219  return 1;
220  }
221  p->value[size] = 0;
222  p->deftype = PLEX_DEF_LIT;
223  p->sign = 0;
224  p->int_part = 0;
225  p->dec_part = 0;
226  return 0;
227  }
228 
230  p->deftype = PLEX_DEF_NUM;
231  p->sign = 0;
232  p->int_part = 0;
233  p->dec_part = 0;
234 
235  sign = 0;
236  if (*value == '+') {
237  value++;
238  } else if (*value == '-') {
239  value++;
240  sign = 1;
241  }
242  int_part = 0;
243  dec_part = 0;
244  size = 0;
245  dotseen = 0;
246  s = value;
247  for ( ; *s; ++s, ++size) {
248  if (*s == '.') {
249  if (dotseen) {
250  p->deftype = PLEX_DEF_NONE;
251  return 1;
252  }
253  dotseen = 1;
254  continue;
255  }
256  if (*s > '9' || *s < '0') {
257  p->deftype = PLEX_DEF_NONE;
258  return 1;
259  }
260  if (!dotseen) {
261  int_part = (int_part * 10) + (*s - '0');
262  } else {
263  dec_part = (dec_part * 10) + (*s - '0');
264  }
265  }
266 
267  if (!int_part && !dec_part) {
268  sign = 0;
269  }
270  p->sign = sign;
271  p->int_part = int_part;
272  p->dec_part = dec_part;
273  return 0;
274 }
void ppparse_clear_vars ( const struct cb_define_struct p)

References cb_define_struct::name, cb_define_struct::next, NULL, ppp_define_add(), and cb_define_struct::value.

Referenced by preprocess().

495 {
496  const struct cb_define_struct *q;
497 
499  /* Set standard DEFINE's */
500  if (cb_perform_osvs) {
502  "PERFORM-TYPE",
503  "'OSVS'", 0);
504  } else {
506  "PERFORM-TYPE",
507  "'MF'", 0);
508  }
509  if (cb_ebcdic_sign) {
511  "SIGN",
512  "'EBCDIC'", 0);
513  } else {
515  "SIGN",
516  "'ASCII'", 0);
517  }
518 #ifdef WORDS_BIGENDIAN
520  "ENDIAN",
521  "'BIG'", 0);
522 #else
524  "ENDIAN",
525  "'LITTLE'", 0);
526 #endif
527 #if ' ' == 0x20
529  "CHARSET",
530  "'ASCII'", 0);
531 #elif ' ' == 0x40
533  "CHARSET",
534  "'EBCDIC'", 0);
535 #else
537  "CHARSET",
538  "'UNKNOWN'", 0);
539 #endif
540  /* Set DEFINE's from '-D' option(s) */
541  for (q = p; q; q = q->next) {
543  q->name,
544  q->value, 0);
545  }
546 }
static void yydestruct ( char *  yymsg,
int  yytype,
YYSTYPE yyvaluep 
) const
static

References YY_SYMBOL_PRINT, and YYUSE.

1768 {
1769  YYUSE (yyvaluep);
1770 
1771  if (!yymsg)
1772  yymsg = "Deleting";
1773  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1774 
1775  switch (yytype)
1776  {
1777 
1778  default:
1779  break;
1780  }
1781 }
int yyparse ( void  )
static char* yystpcpy ( char *  yydest,
const char *  yysrc 
)
static

Referenced by yytnamerr().

1555 {
1556  char *yyd = yydest;
1557  const char *yys = yysrc;
1558 
1559  while ((*yyd++ = *yys++) != '\0')
1560  continue;
1561 
1562  return yyd - 1;
1563 }
static YYSIZE_T yystrlen ( char *  yystr) const
static

References YYSIZE_T.

Referenced by yysyntax_error(), and yytnamerr().

1530 {
1531  YYSIZE_T yylen;
1532  for (yylen = 0; yystr[yylen]; yylen++)
1533  continue;
1534  return yylen;
1535 }
static int yysyntax_error ( YYSIZE_T yymsg_alloc,
char **  yymsg,
yytype_int16 yyssp,
int  yytoken 
)
static

References YY_, YYCASE_, YYEMPTY, YYLAST, YYNTOKENS, yypact_value_is_default, YYSIZE_T, YYSTACK_ALLOC_MAXIMUM, yystrlen(), yytable_value_is_error, YYTERROR, and yytnamerr().

1626 {
1627  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
1628  YYSIZE_T yysize = yysize0;
1629  YYSIZE_T yysize1;
1630  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1631  /* Internationalized format string. */
1632  const char *yyformat = 0;
1633  /* Arguments of yyformat. */
1634  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1635  /* Number of reported tokens (one for the "unexpected", one per
1636  "expected"). */
1637  int yycount = 0;
1638 
1639  /* There are many possibilities here to consider:
1640  - Assume YYFAIL is not used. It's too flawed to consider. See
1641  <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
1642  for details. YYERROR is fine as it does not invoke this
1643  function.
1644  - If this state is a consistent state with a default action, then
1645  the only way this function was invoked is if the default action
1646  is an error action. In that case, don't check for expected
1647  tokens because there are none.
1648  - The only way there can be no lookahead present (in yychar) is if
1649  this state is a consistent state with a default action. Thus,
1650  detecting the absence of a lookahead is sufficient to determine
1651  that there is no unexpected or expected token to report. In that
1652  case, just report a simple "syntax error".
1653  - Don't assume there isn't a lookahead just because this state is a
1654  consistent state with a default action. There might have been a
1655  previous inconsistent state, consistent state with a non-default
1656  action, or user semantic action that manipulated yychar.
1657  - Of course, the expected token list depends on states to have
1658  correct lookahead information, and it depends on the parser not
1659  to perform extra reductions after fetching a lookahead from the
1660  scanner and before detecting a syntax error. Thus, state merging
1661  (from LALR or IELR) and default reductions corrupt the expected
1662  token list. However, the list is correct for canonical LR with
1663  one exception: it will still contain any token that will not be
1664  accepted due to an error action in a later state.
1665  */
1666  if (yytoken != YYEMPTY)
1667  {
1668  int yyn = yypact[*yyssp];
1669  yyarg[yycount++] = yytname[yytoken];
1670  if (!yypact_value_is_default (yyn))
1671  {
1672  /* Start YYX at -YYN if negative to avoid negative indexes in
1673  YYCHECK. In other words, skip the first -YYN actions for
1674  this state because they are default actions. */
1675  int yyxbegin = yyn < 0 ? -yyn : 0;
1676  /* Stay within bounds of both yycheck and yytname. */
1677  int yychecklim = YYLAST - yyn + 1;
1678  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1679  int yyx;
1680 
1681  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1682  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1683  && !yytable_value_is_error (yytable[yyx + yyn]))
1684  {
1685  if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1686  {
1687  yycount = 1;
1688  yysize = yysize0;
1689  break;
1690  }
1691  yyarg[yycount++] = yytname[yyx];
1692  yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1693  if (! (yysize <= yysize1
1694  && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1695  return 2;
1696  yysize = yysize1;
1697  }
1698  }
1699  }
1700 
1701  switch (yycount)
1702  {
1703 # define YYCASE_(N, S) \
1704  case N: \
1705  yyformat = S; \
1706  break
1707  YYCASE_(0, YY_("syntax error"));
1708  YYCASE_(1, YY_("syntax error, unexpected %s"));
1709  YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1710  YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1711  YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1712  YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1713 # undef YYCASE_
1714  }
1715 
1716  yysize1 = yysize + yystrlen (yyformat);
1717  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1718  return 2;
1719  yysize = yysize1;
1720 
1721  if (*yymsg_alloc < yysize)
1722  {
1723  *yymsg_alloc = 2 * yysize;
1724  if (! (yysize <= *yymsg_alloc
1725  && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1726  *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1727  return 1;
1728  }
1729 
1730  /* Avoid sprintf, as that infringes on the user's name space.
1731  Don't have undefined behavior even if the translation
1732  produced a string with the wrong number of "%s"s. */
1733  {
1734  char *yyp = *yymsg;
1735  int yyi = 0;
1736  while ((*yyp = *yyformat) != '\0')
1737  if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1738  {
1739  yyp += yytnamerr (yyp, yyarg[yyi++]);
1740  yyformat += 2;
1741  }
1742  else
1743  {
1744  yyp++;
1745  yyformat++;
1746  }
1747  }
1748  return 0;
1749 }
static YYSIZE_T yytnamerr ( char *  yyres,
const char *  yystr 
)
static

References YYSIZE_T, yystpcpy(), and yystrlen().

Referenced by yysyntax_error().

1577 {
1578  if (*yystr == '"')
1579  {
1580  YYSIZE_T yyn = 0;
1581  char const *yyp = yystr;
1582 
1583  for (;;)
1584  switch (*++yyp)
1585  {
1586  case '\'':
1587  case ',':
1588  goto do_not_strip_quotes;
1589 
1590  case '\\':
1591  if (*++yyp != '\\')
1592  goto do_not_strip_quotes;
1593  /* Fall through. */
1594  default:
1595  if (yyres)
1596  yyres[yyn] = *yyp;
1597  yyn++;
1598  break;
1599 
1600  case '"':
1601  if (yyres)
1602  yyres[yyn] = '\0';
1603  return yyn;
1604  }
1605  do_not_strip_quotes: ;
1606  }
1607 
1608  if (! yyres)
1609  return yystrlen (yystr);
1610 
1611  return yystpcpy (yyres, yystr) - yyres;
1612 }

Variable Documentation

unsigned int current_cmd
static
struct cb_define_struct* ppp_setvar_list
static
int yychar
const yytype_int16 yycheck[]
static
Initial value:
=
{
53, 53, 7, 0, 11, 10, 6, 6, 5, 21,
9, 6, 6, 6, 6, 21, 13, 16, 83, 26,
31, 32, 19, 34, 96, 11, 58, 24, 18, 25,
54, 28, 22, 23, 59, 59, 33, 34, 35, 36,
25, 29, 58, 20, 7, 57, 62, 10, 57, 60,
115, 57, 63, 60, 126, 52, 61, 17, 58, 58,
17, 57, 11, 58, 58, 58, 58, 53, 59, 55,
56, 59, 60, 55, 56, 60, 29, 30, 31, 32,
59, 60, 21, 136, 136, 37, 38, 39, 40, 41,
42, 59, 60, 69, 70, 47, 48, 49, 50, 51,
37, 38, 39, 40, 41, 42, 59, 25, 3, 59,
47, 48, 49, 8, 176, 177, 11, 15, 58, 4,
58, 12, 6, 4, 60, 60, 60, 14, 58, 58,
58, 58, 4, 27, 60, 60, 43, 56, 4, 6,
45, 6, 44, 6, 47, 46, 46, 35, 47, 104,
6, 159, 38, 133, 115, 111, 102, 138, 82, 117,
-1, -1, -1, -1, -1, -1, 155
}
const yytype_uint8 yydefact[]
static
Initial value:
=
{
2, 0, 1, 0, 101, 107, 0, 0, 11, 15,
16, 13, 0, 3, 0, 0, 0, 65, 102, 104,
0, 0, 108, 7, 109, 0, 105, 50, 8, 34,
0, 105, 105, 22, 24, 9, 17, 0, 0, 36,
10, 0, 6, 4, 5, 67, 68, 69, 0, 0,
95, 96, 89, 73, 0, 80, 0, 74, 110, 0,
105, 106, 0, 105, 0, 0, 20, 0, 18, 109,
109, 12, 48, 14, 38, 37, 111, 71, 66, 87,
0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
27, 28, 26, 0, 30, 97, 97, 0, 21, 23,
25, 99, 99, 39, 0, 0, 43, 35, 41, 112,
70, 0, 64, 79, 88, 0, 0, 0, 75, 83,
90, 91, 93, 0, 0, 0, 97, 98, 31, 32,
19, 100, 0, 0, 40, 42, 72, 77, 0, 81,
0, 94, 92, 84, 0, 76, 33, 58, 60, 61,
59, 62, 63, 115, 113, 113, 45, 44, 0, 0,
78, 82, 85, 0, 116, 57, 114, 54, 56, 52,
51, 46, 47, 86, 0, 0, 115, 115, 53, 55
}
const yytype_int16 yydefgoto[]
static
Initial value:
=
{
-1, 1, 13, 14, 37, 38, 35, 36, 66, 23,
92, 28, 40, 41, 107, 108, 71, 72, 171, 158,
15, 47, 48, 77, 112, 16, 53, 54, 118, 88,
145, 80, 55, 123, 56, 128, 132, 20, 21, 62,
24, 59, 110, 167, 165
}
YYSTYPE yylval
int yynerrs
const yytype_int16 yypact[]
static
Initial value:
=
{
-73, 3, -73, -32, 105, 23, 12, 47, -73, -73,
-73, -73, -25, -73, -9, 40, 43, 37, -73, -73,
1, 51, -73, -73, 61, 9, 4, -73, -73, -73,
50, 82, 82, -73, 15, 47, -73, 21, 21, -73,
-73, -24, -73, -73, -73, -73, -73, 102, 60, 62,
-73, -73, -73, 1, 115, -5, 116, -73, -73, 10,
82, -73, -7, 82, 64, 65, -73, 66, -73, -12,
-6, -73, -73, -73, 14, -73, 109, 113, -73, -73,
0, 119, 116, 5, 70, 71, 72, 73, 128, -73,
-73, -73, -73, 74, -73, 106, 106, 75, -73, -73,
-73, 93, 93, -73, 18, 81, -73, -73, -73, -73,
-73, 1, -73, -73, -73, 5, 134, 6, -73, -5,
-73, -73, -73, -16, 133, 135, 106, -73, -73, -73,
-73, -73, 48, 63, -73, -73, 1, -73, 135, -73,
7, -73, -73, -73, 8, -73, -73, -73, -73, -73,
-73, -73, -73, 95, 98, 98, -73, -73, 32, 32,
-73, -73, -73, 137, -73, -73, -73, 99, 100, -73,
-73, -73, -73, -73, 97, 101, 95, 95, -73, -73
}
const yytype_int16 yypgoto[]
static
Initial value:
=
{
-73, -73, -73, -73, -73, -73, -73, 112, -73, -73,
-73, -73, -73, -73, -73, 45, 114, 144, -8, 20,
-73, -73, -73, -73, -73, -73, 44, -53, 39, 76,
19, 42, -65, -73, -52, -72, 54, -73, -73, -11,
-73, 24, -73, 11, -62
}
const yytype_uint8 yyr1[]
static
Initial value:
=
{
0, 63, 64, 64, 65, 65, 65, 66, 66, 66,
66, 67, 66, 68, 66, 66, 66, 69, 69, 70,
70, 70, 70, 70, 71, 71, 72, 73, 73, 73,
74, 74, 74, 74, 74, 75, 76, 76, 77, 77,
77, 77, 78, 78, 79, 79, 79, 79, 79, 80,
80, 81, 81, 82, 82, 82, 82, 82, 82, 82,
82, 82, 82, 82, 83, 84, 84, 85, 85, 86,
86, 87, 87, 88, 88, 89, 89, 89, 89, 90,
90, 91, 91, 91, 92, 93, 93, 94, 94, 95,
95, 95, 95, 96, 96, 97, 97, 98, 98, 99,
99, 100, 100, 101, 101, 102, 102, 103, 103, 104,
104, 105, 105, 106, 106, 107, 107
}
const yytype_uint8 yyr2[]
static
Initial value:
=
{
0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
2, 0, 3, 0, 3, 1, 1, 1, 2, 4,
2, 3, 1, 3, 0, 2, 3, 1, 1, 1,
3, 4, 4, 5, 1, 3, 1, 2, 0, 1,
2, 1, 2, 1, 4, 4, 5, 5, 1, 1,
1, 1, 1, 5, 2, 5, 2, 2, 1, 1,
1, 1, 1, 1, 5, 0, 2, 1, 1, 0,
2, 0, 2, 3, 3, 3, 4, 4, 5, 3,
1, 2, 3, 1, 3, 2, 3, 1, 2, 1,
3, 3, 4, 1, 2, 1, 1, 0, 1, 0,
1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
1, 0, 1, 0, 1, 0, 1
}
const yytype_uint8 yystos[]
static
Initial value:
=
{
0, 64, 0, 5, 13, 19, 24, 28, 33, 34,
35, 36, 52, 65, 66, 83, 88, 58, 3, 8,
100, 101, 20, 72, 103, 29, 59, 60, 74, 80,
29, 30, 31, 32, 59, 69, 70, 67, 68, 59,
75, 76, 57, 17, 17, 7, 10, 84, 85, 6,
9, 16, 58, 89, 90, 95, 97, 11, 21, 104,
59, 25, 102, 59, 102, 102, 71, 102, 70, 59,
60, 79, 80, 79, 54, 59, 15, 86, 58, 58,
94, 90, 97, 4, 7, 10, 61, 6, 92, 18,
22, 23, 73, 102, 11, 26, 60, 102, 60, 60,
60, 104, 104, 11, 53, 55, 56, 77, 78, 12,
105, 14, 87, 6, 58, 4, 92, 6, 91, 95,
58, 58, 58, 96, 58, 4, 60, 27, 98, 98,
60, 43, 99, 99, 78, 56, 89, 91, 4, 6,
94, 58, 62, 6, 6, 93, 98, 37, 38, 39,
40, 41, 42, 47, 48, 49, 50, 51, 82, 82,
93, 6, 6, 58, 45, 107, 44, 106, 106, 59,
60, 81, 81, 6, 46, 46, 47, 47, 107, 107
}
const yytype_int16 yytable[]
static
Initial value:
=
{
81, 82, 84, 2, 94, 85, 113, 49, 3, 58,
50, 117, 139, 161, 162, 58, 4, 51, 119, 95,
64, 65, 5, 67, 129, 103, 17, 6, 89, 61,
74, 7, 90, 91, 39, 75, 8, 9, 10, 11,
61, 25, 141, 22, 45, -49, 142, 46, 42, 93,
119, -50, 97, 96, 146, 12, 86, 43, 114, 52,
44, -49, 57, 52, 79, 114, 163, 104, 60, 105,
106, 26, 27, 105, 106, -105, 30, 31, 32, 33,
69, 70, 58, 81, 82, 147, 148, 149, 150, 151,
152, 169, 170, 101, 102, 153, 154, 155, 156, 157,
147, 148, 149, 150, 151, 152, 34, 61, 18, 63,
153, 154, 155, 19, 178, 179, -103, 76, 78, 83,
79, 109, 87, 115, 98, 99, 100, 111, 120, 121,
122, 124, 125, 127, 126, 130, 131, 135, 138, 143,
164, 144, 166, 173, 176, 174, 175, 68, 177, 134,
29, 172, 73, 159, 137, 136, 133, 160, 116, 140,
0, 0, 0, 0, 0, 0, 168
}
const char* const yytname[]
static
Initial value:
=
{
"\"end of file\"", "error", "$undefined", "ALSO", "BY", "COPY",
"\"==\"", "IN", "LAST", "LEADING", "OF", "OFF", "PRINTING", "REPLACE",
"REPLACING", "SUPPRESS", "TRAILING", "\".\"", "\"word\"",
"SOURCE_DIRECTIVE", "FORMAT", "IS", "FIXED", "FREE", "DEFINE_DIRECTIVE",
"AS", "PARAMETER", "OVERRIDE", "SET_DIRECTIVE", "CONSTANT",
"SOURCEFORMAT", "FOLDCOPYNAME", "NOFOLDCOPYNAME", "IF_DIRECTIVE",
"ELSE_DIRECTIVE", "ENDIF_DIRECTIVE", "ELIF_DIRECTIVE", "\">=\"",
"\"<=\"", "\"<\"", "\">\"", "\"=\"", "\"<>\"", "NOT", "THAN", "TO", "OR",
"EQUAL", "GREATER", "LESS", "SET", "DEFINED", "TURN_DIRECTIVE", "ON",
"CHECKING", "WITH", "LOCATION", "\"end of line\"",
"\"Identifier or Literal\"", "\"Variable\"", "\"Literal\"", "'('", "')'",
"$accept", "statement_list", "statement", "directive", "$@1", "$@2",
"set_directive", "set_choice", "set_options", "source_directive",
"format_type", "define_directive", "turn_directive", "ec_list",
"on_or_off", "with_loc", "if_directive", "variable_or_literal",
"object_id", "condition_clause", "copy_statement", "copy_in", "in_or_of",
"copy_suppress", "copy_replacing", "replace_statement", "replacing_list",
"text_src", "text_dst", "text_partial_src", "text_partial_dst",
"token_list", "identifier", "subscripts", "lead_trail", "_override",
"_not", "_also", "_last", "_as", "_format", "_is", "_printing", "_than",
"_to", 0
}
const yytype_uint8 yytranslate[]
static