2 * compiler/core/print.h
4 * These are the prototypes for the typetree printing
5 * routines. Attempts to convert a typetree back into its original
13 * Copyright (C) 1991, 1992 Michael Sample
14 * and the University of British Columbia
16 * This program is free software; you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License as published by
18 * the Free Software Foundation; either version 2 of the License, or
19 * (at your option) any later version.
21 * $Header: /cvs/Darwin/Security/SecuritySNACCRuntime/compiler/core/print.h,v 1.1 2001/06/20 21:27:58 dmitch Exp $
23 * Revision 1.1 2001/06/20 21:27:58 dmitch
24 * Adding missing snacc compiler files.
26 * Revision 1.1.1.1 1999/03/16 18:06:52 aram
27 * Originals from SMIME Free Library.
29 * Revision 1.2 1994/10/08 03:48:56 rj
30 * since i was still irritated by cpp standing for c++ and not the C preprocessor, i renamed them to cxx (which is one known suffix for C++ source files). since the standard #define is __cplusplus, cplusplus would have been the more obvious choice, but it is a little too long.
32 * Revision 1.1 1994/08/28 09:49:33 rj
33 * first check-in. for a list of changes to the snacc-1.1 distribution please refer to the ChangeLog.
40 void PrintModule
PROTO ((FILE *f
, Module
*mod
));
42 void PrintExports
PROTO ((FILE *f
, Module
*m
));
44 void PrintOid
PROTO ((FILE *f
, OID
*oid
));
46 void PrintImportElmt
PROTO ((FILE *f
, ImportElmt
*impElmt
));
48 void PrintImportLists
PROTO ((FILE *f
, ImportModuleList
*impLists
));
50 void PrintTypeDefs
PROTO ((FILE *f
, TypeDefList
*typeDefs
));
52 void PrintType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
));
54 void PrintBasicType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
));
56 void PrintElmtType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, NamedType
*nt
));
58 void PrintElmtTypes
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, NamedTypeList
*e
));
60 void PrintValueDefs
PROTO ((FILE *f
, ValueDefList
*v
));
62 void PrintValueDef
PROTO ((FILE *f
, ValueDef
*v
));
64 void PrintValue
PROTO ((FILE *f
, ValueDef
*head
, Type
*valuesType
, Value
*v
));
66 void PrintBasicValue
PROTO ((FILE *f
, ValueDef
*head
, Type
*valuesType
, Value
*v
, BasicValue
*bv
));
68 void PrintElmtValue
PROTO ((FILE *f
, ValueDef
*head
, Value
*v
, NamedValue
*nv
));
70 void PrintElmtValues
PROTO ((FILE *f
, ValueDef
*head
, Value
*v
, NamedValueList
*e
));
72 void PrintTag
PROTO ((FILE *f
, Tag
*tag
));
74 void PrintSubtype
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, Subtype
*s
));
76 void PrintSubtypeValue
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, SubtypeValue
*s
));
78 void PrintNamedElmts
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, ValueDefList
*n
));
80 void PrintInnerSubtype
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, InnerSubtype
*i
));
82 void PrintMultipleTypeConstraints
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, ConstraintList
*c
));
84 void PrintTypeById
PROTO ((FILE *f
, int typeId
));
87 void PrintRosOperationMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, RosOperationMacroType
*op
));
89 void PrintRosErrorMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, RosErrorMacroType
*err
));
91 void PrintRosBindMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, RosBindMacroType
*bind
));
93 void PrintRosAseMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, RosAseMacroType
*ase
));
95 void PrintRosAcMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, RosAcMacroType
*ac
));
97 void PrintMtsasExtensionsMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, MtsasExtensionsMacroType
*exts
));
99 void PrintMtsasExtensionMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, MtsasExtensionMacroType
*ext
));
101 void PrintMtsasExtensionAttributeMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, MtsasExtensionAttributeMacroType
*ext
));
103 void PrintMtsasTokenMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, MtsasTokenMacroType
*tok
));
105 void PrintMtsasTokenDataMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, MtsasTokenDataMacroType
*tok
));
107 void PrintMtsasSecurityCategoryMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, MtsasSecurityCategoryMacroType
*sec
));
109 void PrintAsnObjectMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, AsnObjectMacroType
*obj
));
111 void PrintAsnPortMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, AsnPortMacroType
*p
));
113 void PrintAsnAbstractBindMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, AsnAbstractBindMacroType
*bind
));
115 void PrintAfAlgorithmMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, Type
*alg
));
117 void PrintAfEncryptedMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, Type
*encrypt
));
119 void PrintAfSignedMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, Type
*sign
));
121 void PrintAfSignatureMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, Type
*sig
));
123 void PrintAfProtectedMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, Type
*p
));
125 void PrintSnmpObjectTypeMacroType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
, SnmpObjectTypeMacroType
*ot
));
127 void PrintMacroDef
PROTO ((FILE *f
, TypeDef
*head
));
129 void PrintEncodedOid
PROTO ((FILE *f
, AsnOid
*eoid
));
132 void SpecialPrintType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
));
134 void SpecialPrintBasicType
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
, BasicType
*bt
));
136 void SpecialPrintNamedElmts
PROTO ((FILE *f
, TypeDef
*head
, Type
*t
));