#DJDSTART
$include "defs.icn"
$include "global_vars.icn"
procedure globals_init()
# next mine
    open_my_files()
# following from main
    BADflag := 0
    yydebug := 0
    initflag := FALSE
    dloadflag := FALSE
    aflag := FALSE
    Mflag := FALSE
    cflag := FALSE
    pflag := FALSE
    Lflag := FALSE
    Pflag := FALSE
    Tflag := FALSE
    Gflag := FALSE
    Vflag := FALSE
    Nflag := FALSE
    fflag := FALSE
    Fflag := FALSE
    Rflag := FALSE
    OOOflag := FALSE
    OOflag := FALSE
    Oflag := FALSE
    Xflag := FALSE
    xflag := FALSE
    hflag := FALSE

# following from pass1/stt/stt
    stt_table := table(0)
    stt_unique_cnt := 0
    stt_reference_cnt := 0
    reverse_stt := []

# following from my stats
    line_cnt := 0
    char_cnt := 0
    token_cnt := 0
    reserved_id_cnt := 0
    reserved_op_cnt := 0
    defined_id_cnt := 0
    defined_op_cnt := 0
    seperator_cnt := 0
    stt_unique_cnt := 0
    stt_reference_cnt := 0
    numeral_cnt := 0
    nodes_total_cnt := 0
    lists_total_cnt := 0
    nodes_made_cnt := 0
    lists_made_cnt := 0
    comments_cnt := 0
    sing_quoted_cnt := 0
    dbl_quoted_cnt := 0
    yyn_switches_cnt := 0
    yyn_compute_cnt := 0
    newstate_cnt := 0
    setstate_cnt := 0
    backup_cnt := 0
    default_cnt := 0
    reduce_cnt := 0
    errlab_cnt := 0
    errlab1_cnt := 0
    RIC_op_code_cnt := 0
    RIC_table_entry_cnt := 0


# following from pass1/parser/initids
    pend := list(NLEVELS + 2) # first used in pass1/parser/initids

# following for grammar.y

#DJDSTOP
#  #  stop symbols for parameter error recovery
#   paramstop := [
#     ';',
#           ']',
#           '{',
#           VAR,
#           VAL,
#           FUNC,
# 	  TYPE,
# 	  SIGNATURE,
# 	  EOF,
# 	  LIST_END     ]
#   # stop symbols for statement list error recovery
#   denseqstop  := [
#      ';',
# 	  '#',
# 	  ELSIF,
# 	  ELSE,
#           FI,
#           OD,
#           ')',
#           NI,
#           '}',
#           IF,
#           DO,
#           LET,
#           FUNC,
#           '(',
#           WITH,
#           IN,
# 	  EOF,
# 	  LIST_END       ]
# 
#       # stop symbols for error recovery in various */
#      #  conditional constructs                   */
# 
#   condstop := [
#      OD,
#            FI,
#            RIGHT_ARROW,
#            '#',
#            ';',
#            LET,
#            DO,
# 	   IF,
# 	   THEN,
# 	   ELSE,
#            '(',
# 	   EOF,
# 	   LIST_END      ]
#      # stop symbols for error recovery in declarations  */
#   declstop := [
#      EQUALS_EQUALS,
# 	  EQUALS_EQUALS_EQUALS,
#           ';',
#           '}',
#           IN,
#           NI,
#           IF,
#           DO,
#           LET,
#           '(',
# 	  EOF,
# 	  LIST_END        ]
# #DJDSTART
# for parser

    global_fn_count := 0

# for scanner

    restab := table(-1)


    restab["cand"] :=          CAND
    restab["characters"] :=    CHARACTERS
    restab["constants"] :=     CONSTANTS
    restab["cor"] :=           COR
    restab["do"] :=            DO
    restab["else"] :=          ELSE
    restab["elsif"] :=         ELSIF
    restab["enum"] :=          ENUM
    restab["export"] :=        EXPORT
    restab["extend"] :=        EXTEND
    restab["extern"] :=        EXTERN
    restab["fi"] :=            FI
    restab["field"] :=         FIELD
    restab["func"] :=          FUNC
    restab["hide"] :=          HIDE
    restab["if"] :=            IF
    restab["in"] :=            IN
    restab["let"] :=           LET
    restab["ni"] :=            NI
    restab["od"] :=            OD
    restab["prod"] :=          PROD
    restab["readonly"] :=      READONLY
    restab["record"] :=        RECORD
    restab["signature"] :=     SIGNATURE
    restab["then"] :=          THEN
    restab["type"] :=          TYPE
    restab["union"] :=         UNION
    restab["use"] :=           USE
    restab["val"] :=           VAL
    restab["var"] :=           VAR
    restab["with"] :=          WITH



    restab[":"] :=             COLON
    restab["<<"] :=            LEFT_ANGLE_BRACKET
    restab["=="] :=            EQUALS_EQUALS
    restab["==="] :=           EQUALS_EQUALS_EQUALS
    restab["==>"] :=           RIGHT_ARROW
    restab[">>"] :=            RIGHT_ANGLE_BRACKET

##
    cctab := table()

    cctab[char(0)] := BADCC
    cctab[char(1)] := BADCC
    cctab[char(2)] := SEPCC
    cctab[char(3)] := BADCC
    cctab[char(4)] := BADCC
    cctab[char(5)] := BADCC
    cctab[char(6)] := BADCC
    cctab[char(7)] := BADCC
    cctab[char(8)] := OPRCC
    cctab[char(9)] := WHTCC
    cctab[char(10)] := WHTCC
    cctab[char(11)] := BADCC
    cctab[char(12)] := WHTCC
    cctab[char(13)] := WHTCC
    cctab[char(14)] := BADCC
    cctab[char(15)] := BADCC
    cctab[char(16)] := BADCC
    cctab[char(17)] := BADCC
    cctab[char(18)] := BADCC
    cctab[char(19)] := BADCC
    cctab[char(20)] := BADCC
    cctab[char(21)] := BADCC
    cctab[char(22)] := BADCC
    cctab[char(23)] := BADCC
    cctab[char(24)] := BADCC
    cctab[char(25)] := BADCC
    cctab[char(26)] := BADCC
    cctab[char(27)] := BADCC
    cctab[char(28)] := BADCC
    cctab[char(29)] := BADCC
    cctab[char(30)] := BADCC
    cctab[char(31)] := BADCC
    cctab[char(32)] := WHTCC
    cctab[char(33)] := OPRCC
    cctab[char(34)] := DQUCC
    cctab[char(35)] := SEPCC
    cctab[char(36)] := SEPCC
    cctab[char(37)] := OPRCC
    cctab[char(38)] := OPRCC
    cctab[char(39)] := SQUCC
    cctab[char(40)] := SEPCC
    cctab[char(41)] := SEPCC
    cctab[char(42)] := OPRCC
    cctab[char(43)] := OPRCC
    cctab[char(44)] := SEPCC
    cctab[char(45)] := OPRCC
    cctab[char(46)] := OPRCC
    cctab[char(47)] := OPRCC
    cctab[char(48)] := DIGCC
    cctab[char(49)] := DIGCC
    cctab[char(50)] := DIGCC
    cctab[char(51)] := DIGCC
    cctab[char(52)] := DIGCC
    cctab[char(53)] := DIGCC
    cctab[char(54)] := DIGCC
    cctab[char(55)] := DIGCC
    cctab[char(56)] := DIGCC
    cctab[char(57)] := DIGCC
    cctab[char(58)] := OPRCC
    cctab[char(59)] := SEPCC
    cctab[char(60)] := OPRCC
    cctab[char(61)] := OPRCC
    cctab[char(62)] := OPRCC
    cctab[char(63)] := OPRCC
    cctab[char(64)] := OPRCC
    cctab[char(65)] := LETCC
    cctab[char(66)] := LETCC
    cctab[char(67)] := LETCC
    cctab[char(68)] := LETCC
    cctab[char(69)] := LETCC
    cctab[char(70)] := LETCC
    cctab[char(71)] := LETCC
    cctab[char(72)] := LETCC
    cctab[char(73)] := LETCC
    cctab[char(74)] := LETCC
    cctab[char(75)] := LETCC
    cctab[char(76)] := LETCC
    cctab[char(77)] := LETCC
    cctab[char(78)] := LETCC
    cctab[char(79)] := LETCC
    cctab[char(80)] := LETCC
    cctab[char(81)] := LETCC
    cctab[char(82)] := LETCC
    cctab[char(83)] := LETCC
    cctab[char(84)] := LETCC
    cctab[char(85)] := LETCC
    cctab[char(86)] := LETCC
    cctab[char(87)] := LETCC
    cctab[char(88)] := LETCC
    cctab[char(89)] := LETCC
    cctab[char(90)] := LETCC
    cctab[char(91)] := SEPCC
    cctab[char(92)] := OPRCC
    cctab[char(93)] := SEPCC
    cctab[char(94)] := OPRCC
    cctab[char(95)] := LETCC
    cctab[char(96)] := OPRCC
    cctab[char(97)] := LETCC
    cctab[char(98)] := LETCC
    cctab[char(99)] := LETCC
    cctab[char(100)] := LETCC
    cctab[char(101)] := LETCC
    cctab[char(102)] := LETCC
    cctab[char(103)] := LETCC
    cctab[char(104)] := LETCC
    cctab[char(105)] := LETCC
    cctab[char(106)] := LETCC
    cctab[char(107)] := LETCC
    cctab[char(108)] := LETCC
    cctab[char(109)] := LETCC
    cctab[char(110)] := LETCC
    cctab[char(111)] := LETCC
    cctab[char(112)] := LETCC
    cctab[char(113)] := LETCC
    cctab[char(114)] := LETCC
    cctab[char(115)] := LETCC
    cctab[char(116)] := LETCC
    cctab[char(117)] := LETCC
    cctab[char(118)] := LETCC
    cctab[char(119)] := LETCC
    cctab[char(120)] := LETCC
    cctab[char(121)] := LETCC
    cctab[char(122)] := LETCC
    cctab[char(123)] := SEPCC
    cctab[char(124)] := OPRCC
    cctab[char(125)] := SEPCC
    cctab[char(126)] := OPRCC
    cctab[char(127)] := BADCC
#DJDSTOP
#     tab_chr = 9
#     white_chrs = 9 10 12 13 32
#     skip_wht = SPAN(white_chrs)
#     skip_wht_nl = (SPAN(white_chrs) | '')
# #DJDSTART


# for scanner
    stktop := -1
    scansavc := "\n" # n.b. preprocessor line number scan
    yyline := 0
    yyvline := 0
    linebuf := ""

    parser_actions_cnt := 0


# for sigio
    decl_num := 0  #   last number assigned to a declaration
    decl_num_in := 0

    sig_table := table()

    argcnt_from_kind := list(DCSEXCEPTION + 1)

    argcnt_from_kind[DECLARATION + 1] :=  16
    argcnt_from_kind[PARAMETER + 1] := 8
    argcnt_from_kind[RECORDELEMENT + 1] := 6
    argcnt_from_kind[VARSIGNATURE + 1] := 4
    argcnt_from_kind[VALSIGNATURE + 1] := 4
    argcnt_from_kind[FUNCSIGNATURE + 1] := 10
    argcnt_from_kind[TYPESIGNATURE + 1] := 12
    argcnt_from_kind[TSCOMPONENT + 1] :=  3
    argcnt_from_kind[DEFCHARSIGS + 1] := 6
    argcnt_from_kind[LISTHEADER + 1] :=  3
    argcnt_from_kind[SIGNATURESIG + 1] := 3
    argcnt_from_kind[BLOCKDENOTATION + 1] := 10
    argcnt_from_kind[USELIST + 1] := 7
    argcnt_from_kind[APPLICATION + 1] := 6
    argcnt_from_kind[ENUMERATION + 1] := 4
    argcnt_from_kind[EXTENSION + 1] := 6
    argcnt_from_kind[PRODCONSTRUCTION + 1] := 6
    argcnt_from_kind[RECORDCONSTRUCTION + 1] := 5
    argcnt_from_kind[UNIONCONSTRUCTION + 1] := 6
    argcnt_from_kind[WITHLIST + 1] := 4
    argcnt_from_kind[MODPRIMARY + 1] :=  11
    argcnt_from_kind[EXPORTLIST + 1] := 4
    argcnt_from_kind[HIDELIST + 1] := 4
    argcnt_from_kind[EXPORTELEMENT + 1] := 4
    argcnt_from_kind[ALLCONSTANTS + 1] := 0
    argcnt_from_kind[WORDELSE + 1] := 3
    argcnt_from_kind[WORDCAND + 1] :=  0
    argcnt_from_kind[WORDCOR + 1] :=  0
    argcnt_from_kind[GUARDEDLIST + 1] := 4
    argcnt_from_kind[LOOPDENOTATION + 1] := 4
    argcnt_from_kind[OPRID + 1] := 11
    argcnt_from_kind[LETTERID + 1] := 11
    argcnt_from_kind[QSTR + 1] := 7
    argcnt_from_kind[UQSTR + 1] := 7
    argcnt_from_kind[FUNCCONSTR + 1] := 11
    argcnt_from_kind[FREEVARNODE + 1] := 5
    argcnt_from_kind[EXTERNDEF + 1] := 2
    argcnt_from_kind[REXTERNDEF + 1] := 4
    argcnt_from_kind[DCSEXCEPTION + 1] :=  5

    unique_node_id := 0







    return






end


#DJDSTOP
