⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rules.c

📁 asn to c编译器 源代码
💻 C
字号:
/* * compiler/back_ends/c++_gen/rules.c - initialized c rule structure *           inits a table that contains info about *           converting each ASN.1 type to a C++ class * * Copyright (C) 1991, 1992 Michael Sample *           and the University of British Columbia * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * $Header: /baseline/SNACC/compiler/back-ends/c++-gen/rules.c,v 1.12 2004/02/20 19:36:05 gronej Exp $ * $Log: rules.c,v $ * Revision 1.12  2004/02/20 19:36:05  gronej * Updated compiler to support extensibility in set's sequences * Eliminated unreferenced warnings for extraLen and elmtLen in produced code * * Revision 1.11  2004/02/12 18:55:09  gronej * Stable SNACC * non optional choices, sets and sequences are now not pointers * merged with list code * all memory leaks within SNACC fixed * * Revision 1.10  2004/01/29 21:21:44  gronej * Took all Init() calls out of Clear() functions in generated code * * Revision 1.9  2004/01/14 19:07:53  gronej * Updated Compiler to accept and process relative-oid's * * Revision 1.8  2003/07/07 14:52:35  nicholar * Eliminated headers and cleaned up include references * * Revision 1.7  2002/10/28 19:57:02  leonberp * Added BITSTRING CONTAINING support and fixed CONTAINED ANY DEFINED BY * * Revision 1.6  2002/10/24 21:07:21  leonberp * latest fixing for OCTET CONTAINING * * Revision 1.5  2002/09/04 17:51:34  vracarl * got rid of c++ comments * * Revision 1.4  2002/05/15 17:00:57  leonberp * added support for new basicTypes to compiler * * Revision 1.3  2002/05/15 14:53:12  leonberp * added support for new basicTypes to compiler * * Revision 1.2  2002/05/10 16:39:39  leonberp * latest changes for release 2.2 * includes integrating asn-useful into C & C++ runtime library, the compiler changes that go along with that, SnaccException changes for C++ runtime and compiler * * Revision 1.1.1.1  2000/08/21 20:36:06  leonberp * First CVS Version of SNACC. * * Revision 1.4  1995/07/25 18:24:13  rj * file name has been shortened for redundant part: c++-gen/c++-rules -> c++-gen/rules. * * changed `_' to `-' in file names. * * Revision 1.3  1994/10/08  03:47:49  rj * 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. * * Revision 1.2  1994/09/01  01:53:33  rj * snacc_config.h removed. * * Revision 1.1  1994/08/28  09:47:54  rj * first check-in. for a list of changes to the snacc-1.1 distribution please refer to the ChangeLog. * */#include "asn-incl.h"#include "asn1module.h"#include "rules.h"CxxRules cxxRulesG ={   4,   "choiceId",   "ChoiceIdEnum",   "a",   "ChoiceUnion",   FALSE,   "Enc",   "Dec",   "EncContent",   "DecContent",   "EncPdu",   "DecPdu",   {      {  /* 0 */         BASICTYPE_UNKNOWN,          "???",         FALSE,         FALSE,         FALSE,         TRUE,         TRUE,         TRUE,         TRUE,         "NOT_NULL",         "unknown"      },      { /* 1 */         BASICTYPE_BOOLEAN, /* 1 */         "AsnBool",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "bool"      },      {  /* 2 */         BASICTYPE_INTEGER, /* 2 */         "AsnInt",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "integer"      },      { /* 3 */         BASICTYPE_BITSTRING,         "AsnBits",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "bits"      },      {/* 4 */         BASICTYPE_OCTETSTRING,         "AsnOcts",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "octs"      },      {/* 5 */         BASICTYPE_NULL,         "AsnNull",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "null"      },      { /* 6 */         BASICTYPE_OID,         "AsnOid",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "oid"      },      { /* 7 */         BASICTYPE_REAL,         "AsnReal",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "real"      },      {/* 8 */         BASICTYPE_ENUMERATED,         "AsnEnum",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "enumeration"      },      {/* 9 */         BASICTYPE_SEQUENCE,         NULL,         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "seq"      },      {/* 10 */         BASICTYPE_SEQUENCEOF,         "AsnList",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "seqOf"      },      {/* 11 */         BASICTYPE_SET,         NULL,         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         FALSE,         "NOT_NULL",         "set"      },      {/* 12 */         BASICTYPE_SETOF,         "AsnList",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "setOf"      },      {/* 13 */         BASICTYPE_CHOICE,         NULL,         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         FALSE,         "NOT_NULL",         "choice"      },      {/* 14 */         BASICTYPE_SELECTION,         NULL,         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "foo"      },      {/* 15 */         BASICTYPE_COMPONENTSOF,         NULL,         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "bar"      },      {/* 16 */         BASICTYPE_ANY,         "AsnAny",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "any"      },      {/* 17 */         BASICTYPE_ANYDEFINEDBY,         "AsnAnyDefinedBy",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "anyDefBy"      },      {/* 18 */         BASICTYPE_LOCALTYPEREF,         NULL,         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "foo"      },      {/* 19 */         BASICTYPE_IMPORTTYPEREF,         NULL,         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "bar"      },      {/* 20 */         BASICTYPE_MACROTYPE,         NULL,         FALSE,         FALSE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "foo"      },      {/* 21 */         BASICTYPE_MACRODEF,         NULL,         FALSE,         FALSE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "foo"      },      {/* 22 */         BASICTYPE_NUMERIC_STR,         "NumericString",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "numericString"      },      {/* 23 */         BASICTYPE_PRINTABLE_STR,         "PrintableString",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "printableString"      },      {/* 24 */         BASICTYPE_UNIVERSAL_STR,         "UniversalString",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "universalString"      },      {/* 25 */         BASICTYPE_IA5_STR,         "IA5String",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "ia5String"      },                  {/* 26 */         BASICTYPE_BMP_STR,         "BMPString",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "bmpString"      },                  {/* 27 */         BASICTYPE_UTF8_STR,         "UTF8String",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "utf8String"      },      {/* 28 */         BASICTYPE_UTCTIME, /* 23 */         "UTCTime",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "utcTime"      },      {/* 29 */         BASICTYPE_GENERALIZEDTIME, /* 24 */         "GeneralizedTime",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "generalizedTime"      },      {/* 30 */         BASICTYPE_GRAPHIC_STR, /* 25 */         "GraphicString",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "graphicString"      },      {/* 31 */         BASICTYPE_VISIBLE_STR, /* 26 */         "VisibleString",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "visibleString"      },      {/* 32 */         BASICTYPE_GENERAL_STR, /* 27 */         "GeneralString",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "generalString"      },      {/* 33 */         BASICTYPE_OBJECTDESCRIPTOR,         "ObjectDescriptor",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "objectDescriptor"      } ,      {/* 34 */         BASICTYPE_VIDEOTEX_STR,         "VideotexString",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "videotexString"      } ,                 {/* 35 */         BASICTYPE_T61_STR,         "T61String",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "t61String"      },                  {/* 36 */         BASICTYPE_EXTERNAL,         "EXTERNAL",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         TRUE,         TRUE,         "NOT_NULL",         "external"      },                  {/* 37 */         BASICTYPE_OCTETCONTAINING,         NULL,         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "octetContainer"		},      {/* 38 */         BASICTYPE_BITCONTAINING,         NULL,         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "bitContainer"		},        { /* 39 */         BASICTYPE_RELATIVE_OID,         "AsnRelativeOid",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NOT_NULL",         "relativeOid"        },        { /* 40 */         BASICTYPE_EXTENSION,         "AsnExtension",         FALSE,         TRUE,         FALSE,         TRUE,         TRUE,         FALSE,         TRUE,         "NULL",         "extension"        }   }};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -