KR20020090512A - Method for processing circular import definition error of asn.1 compiler - Google Patents

Method for processing circular import definition error of asn.1 compiler Download PDF

Info

Publication number
KR20020090512A
KR20020090512A KR1020010029381A KR20010029381A KR20020090512A KR 20020090512 A KR20020090512 A KR 20020090512A KR 1020010029381 A KR1020010029381 A KR 1020010029381A KR 20010029381 A KR20010029381 A KR 20010029381A KR 20020090512 A KR20020090512 A KR 20020090512A
Authority
KR
South Korea
Prior art keywords
compiler
asn
header
cross
files
Prior art date
Application number
KR1020010029381A
Other languages
Korean (ko)
Inventor
박석균
Original Assignee
주식회사 하이닉스반도체
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 하이닉스반도체 filed Critical 주식회사 하이닉스반도체
Priority to KR1020010029381A priority Critical patent/KR20020090512A/en
Publication of KR20020090512A publication Critical patent/KR20020090512A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE: A method for processing an error in a circular import definition of an ASN(Abstract Syntax Notation).1 compiler is provided to satisfactorily perform the generation of the object files of a call processing program by solving the error in the circular import definition when compiling an RRC.asn(Radio Resource Control.Abstract Syntax Notation) by using the ASN.1 compiler and a C compiler and to make a user generate an RRC message by the ASN.1. CONSTITUTION: When compiling the RRC.asn into an object file by using a work station of an UNIX environment, the ASN.1 compiler compiles the RRC.asn as a protocol standard related with the call processing and generates the header files of respective program modules and the C-coded files of the program modules(S100). The ASN.1 compiler generates a unified header file by using the header files of the program modules(S200). The C compiler generates an 'RRCASN.o' object file including the object files of the modules by compiling the unified header file(S300).

Description

ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법{METHOD FOR PROCESSING CIRCULAR IMPORT DEFINITION ERROR OF ASN.1 COMPILER}How to handle cross reference definition error in ASSN.1 compiler {METHOD FOR PROCESSING CIRCULAR IMPORT DEFINITION ERROR OF ASN.1 COMPILER}

본 발명은 ASN(Abstract Syntax Notation).1 컴파일러(Compiler)의 상호 참조 정의(Circular Import definition) 에러(Error) 처리 방법에 관한 것으로, 더욱 상세하게는 3세대 비동기 시스템의 프로토콜 규격인 RRC.asn(Radio Resource Control.Abstract Syntax Notation)을 ASN.1 컴파일러 및 C 컴파일러를 이용하여 컴파일할 때, 상호 참조 정의 에러를 해결해 주는 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법에 관한 것이다.The present invention relates to a method of processing an Abstract Syntax Notation (ASN) .1 Compiler for a Circular Import definition error, and more particularly, to RRC.asn (the protocol specification of the third generation asynchronous system). A method for handling cross-reference definition errors of the AS.1 compiler that solves cross-reference definition errors when compiling Radio Resource Control.Abstract Syntax Notation) using the ASN.1 compiler and the C compiler.

주지하다시피, RRC.asn이란 3세대 비동기 시스템의 호처리 관련 프로토콜 규격을 의미하며, 이를 ASN.1 컴파일러 및 C 컴파일러를 통해 컴파일하면 호처리 관련 프로그램 모듈들이 생성된다.As is well known, RRC.asn refers to a protocol specification related to call processing of 3rd generation asynchronous systems. Call processing related program modules are generated when compiled through ASN.1 compiler and C compiler.

일반적인 RRC.asn 프로그램 코드 컴파일 장치는 도 1에 도시된 바와 같이, 유닉스 환경하에서 ASN.1 컴파일러(101) 및 C 컴파일러(102)를 구비한 워크 스테이션(100)으로 구성되어 있었다.The general RRC.asn program code compilation device was composed of a workstation 100 having an ASN.1 compiler 101 and a C compiler 102 under a Unix environment, as shown in FIG.

이 때, 상술한 일반적인 RRC.asn 프로그램 코드 컴파일 장치를 이용한 종래 RRC.asn 프로그램 코드의 컴파일 방법에 대해 도 1, 도 2를 참조하여 설명하면 다음과 같다.In this case, a method of compiling a conventional RRC.asn program code using the above-described general RRC.asn program code compilation device will be described with reference to FIGS. 1 and 2 as follows.

먼저, 상기 ASN.1 컴파일러(101)는 3세대 비동기 시스템의 호처리 관련 프로토콜 규격인 RRC.asn을 입력받아 컴파일하여 각 프로그램 모듈별 헤더 파일(Head File)(*.h)들과 각 프로그램 모듈별 C 언어로 코드화된 파일(*.c)들을 생성한다(S1). 여기서, 각 프로그램 모듈이란 호처리 관련 프로토콜 규격인 RRC.asn에 의해 정의된 호처리 프로그램들을 의미하며, 일예로 CN 처리모듈(CoreNetwork-IEs Module)과 단말기 처리모듈(UserEquipment-IEs Module)이 있다.First, the ASN.1 compiler 101 receives and compiles RRC.asn, which is a protocol of call processing related protocol of 3rd generation asynchronous system, and compiles header files (* .h) for each program module and each program module. Generate files (* .c) coded in the star C language (S1). Here, each program module refers to call processing programs defined by RRC.asn, which is a call processing protocol standard, and includes, for example, a CN network module (CoreNetwork-IEs Module) and a terminal processing module (UserEquipment-IEs Module).

그런후, 상기 C 컴파일러(102)는 상기 ASN.1 컴파일러(101)에 의해 컴파일된 각 프로그램 모듈별 헤더 파일(*.h)들과 각 프로그램 모듈별 C 코드화된 파일(*.c)들을 입력받아 컴파일하여 각 오프젝트 화일(RRCASN.o)들을 생성한다(S2).Thereafter, the C compiler 102 inputs header files (* .h) for each program module compiled by the ASN.1 compiler 101 and C coded files (* .c) for each program module. Receives and compiles each object file (RRCASN.o) to generate (S2).

이 때, 상기 제 2 단계(S2)에 의해 생성된 호처리 프로그램 오프젝트 화일(RRCASN.o)은 3세대 비동기 시스템의 RNC(Radio Network Controller)내 호처리 프로세서에 다운로딩되어 호처리가 이루어지게 된다.At this time, the call processing program object file (RRCASN.o) generated by the second step S2 is downloaded to the call processing processor in the RNC (Radio Network Controller) of the third generation asynchronous system to perform call processing. do.

그러나, 상술한 종래 ASN.1 컴파일러를 이용한 RRC.asn 프로그램 코드의 컴파일 방법은 ASN.1 컴파일러를 이용한 생성된 각 프로그램 모듈별 헤더 파일(*.h)들과 각 프로그램 모듈별 C 언어로 코드화된 파일(*.c)들을 C 컴파일러를 이용하여 컴파일 시 상호 참조 정의 에러가 발생한다. 이 때, 상호 참조 정의 에러가 발생하는 경우는 일례로 RRC.asn내의 CN 처리모듈이 단말기 처리모듈에서 정의된 데이터를 포함하고, 동시에 단말기 처리모듈이 CN 처리모듈에서 정의된 데이터를 포함하기 때문에 발생된다. 즉, ASN.1 컴파일러를 이용하여 각 모듈들을 컴파일 시 CN 처리모듈에서 생성된 헤더 파일이 단말기 처리모듈에서 생성된 헤더 파일을 포함하고, 단말기 처리모듈에서 생성된 헤더 파일이 CN 처리모듈에서 생성된 헤더 파일을 포함하기 때문에 C 컴파일러로 이들 헤더 파일을 컴파일 시 문제가 야기되는 것이다.However, the above-described method of compiling the RRC.asn program code using the ASSN.1 compiler is encoded in the C files for each program module and header files (* .h) generated for each program module using the ASN.1 compiler. Cross-reference definition error occurs when compiling files (* .c) using C compiler. In this case, the cross-reference definition error occurs because, for example, the CN processing module in RRC.asn includes data defined in the terminal processing module and the terminal processing module includes data defined in the CN processing module. do. That is, when compiling each module using the ASN.1 compiler, the header file generated by the CN processing module includes the header file generated by the terminal processing module, and the header file generated by the terminal processing module is generated by the CN processing module. The inclusion of header files causes problems when compiling these header files with the C compiler.

따라서, 상술한 문제점으로 인해 더 이상 C 컴파일이 진행되지 못해 호처리 프로그램 오프젝트 화일(RRCASN.o)이 생성되지 못하고, 이로 인해 3세대 비동기 시스템의 호처리 관련 소프트웨어가 생성되지 못하는 문제점이 있었다.Therefore, due to the above-described problem, C compilation is not progressed anymore, and thus the call processing program object file (RRCASN.o) cannot be generated, and thus, call processing related software of the third generation asynchronous system cannot be generated.

따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 3세대 비동기 시스템의 프로토콜 규격인 RRC.asn을 ASN.1 컴파일러 및 C 컴파일러를 이용하여 컴파일 시 상호 참조 정의 에러를 해결해 줌으로써 호처리 관련 프로그램의 오프젝트 화일들의 생성이 순조롭게 이루어지도록 해줄 뿐만 아니라, 사용자가 ASN.1에 의해서 RRC 메시지를 생성할 수 있도록 해주기 위한 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법을 제공하는 데 있다.Accordingly, the present invention has been made to solve the above-mentioned problems, and an object of the present invention is to define a cross-reference when compiling RRC.asn, which is a protocol specification of a third generation asynchronous system, using the ASN.1 compiler and the C compiler. By solving the error, the object file of the call processing program can be created smoothly, and the AS.1 compiler's cross-reference definition error handling method can be used to allow the user to generate RRC messages by ASN.1. To provide.

상기와 같은 목적을 달성하기 위하여 본 발명 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법은, ASN.1 컴파일러 및 C 컴파일러를 구비한 유닉스 환경의 워크 스테이션(100)을 이용하여 RRC.asn을 오브젝트 파일(RRCASN.o)로 컴파일할 때의 상호 참조 정의 에러를 처리하는 방법에 있어서,In order to achieve the above object, the cross-reference definition error processing method of the present invention's AS.1 compiler uses RSN.asn as an object file by using the workstation 100 of the UNIX environment having the ASN.1 compiler and the C compiler. How to handle cross-reference definition errors when compiling with (RRCASN.o)

상기 ASN.1 컴파일러가 호처리 관련 프로토콜 규격인 RRC.asn을 컴파일하여 각 프로그램 모듈별 헤더 파일(*.h)들과 각 프로그램 모듈별 C 코드화된 파일(*.c)들을 생성하는 제 100 단계;Step 100, the ASN.1 compiler compiles RRC.asn, a call processing related protocol standard, to generate header files (* .h) for each program module and C-coded files (* .c) for each program module ;

상기 ASN.1 컴파일러가 각 프로그램 모듈별 헤더 파일(*.h)들을 이용하여 통합 헤더 파일을 생성하는 제 200 단계; 및A step 200 of generating, by the ASN.1 compiler, an integrated header file using header files (* .h) for each program module; And

상기 C 컴파일러가 통합 헤더 파일을 컴파일하여 각 모듈별 오프젝트 파일이 포함된 'RRCASN.o' 오프젝트 화일을 생성하는 제 300 단계로 이루어진 것을 특징으로 한다.The C compiler compiles the integrated header file to generate a 'RRCASN.o' object file including an object file for each module.

도 1은 일반적인 RRC.asn 프로그램 코드 컴파일 장치의 구성을 나타낸 도면,1 is a view showing the configuration of a general RRC.asn program code compilation device,

도 2는 종래 ASN.1 컴파일러를 이용한 RRC.asn 프로그램 코드의 컴파일 방법을 나타낸 동작 플로우챠트,2 is an operation flowchart showing a method of compiling RRC.asn program code using a conventional AS.1 compiler;

도 3은 본 발명의 일 실시예에 따른 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법을 나타낸 동작 플로우챠트,3 is an operation flowchart illustrating a cross-reference definition error processing method of an AS.1 compiler according to an embodiment of the present invention;

도 4는 도 3에 따른 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법에서 제 200 단계(S200)의 세부 동작과정을 나타낸 동작 플로우챠트,4 is an operation flowchart showing a detailed operation of step 200 (S200) in the cross-reference definition error processing method of the AS.1 compiler according to FIG. 3;

도 5는 도 4에 따른 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법에서 제 250 단계(S250)의 세부 동작과정을 나타낸 동작 플로우챠트,FIG. 5 is an operation flowchart showing a detailed operation of step 250 (S250) in the cross-reference definition error processing method of the ASCII compiler according to FIG. 4;

도 6은 도 3에 따른 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법을 설명하기 위한 참조 도면이다.FIG. 6 is a reference diagram for explaining a cross-reference definition error processing method of the ASCII compiler according to FIG. 3. FIG.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100 : 워크 스테이션 101 : ASN.1 컴파일러100: Workstation 101: ASN.1 Compiler

102 : C 컴파일러102: C compiler

이하, 본 발명의 일 실시예에 의한 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법에 대하여 도 1에 도시된 일반적인 RRC.asn 프로그램 코드 컴파일 장치를 이용하여 상세히 설명하기로 하며, 이 때 일반적인 RRC.asn 프로그램 코드 컴파일 장치의 설명은 종래 기술에서 이미 설명하였음으로 생략하기로 한다.Hereinafter, a method of processing cross-reference definition error of an AS.1 compiler according to an embodiment of the present invention will be described in detail by using the general RRC.asn program code compilation device shown in FIG. The description of the asn program code compilation device has been already described in the related art, and thus will be omitted.

도 3은 본 발명의 일 실시예에 따른 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법을 나타낸 동작 플로우챠트이다.3 is an operation flowchart illustrating a cross-reference definition error processing method of an AS.1 compiler according to an embodiment of the present invention.

먼저, 상기 ASN.1 컴파일러(101)는 호처리 관련 프로토콜 규격인 RRC.asn 코드를 컴파일하여 각 프로그램 모듈별 헤더 파일(*.h)들과 각 프로그램 모듈별 C 코드화된 파일(*.c)들을 생성한다(S100).First, the ASN.1 compiler 101 compiles the RRC.asn code, which is a call processing protocol standard, for each program module header files (* .h) and C program files for each program module (* .c). Generate them (S100).

그런후, 상기 ASN.1 컴파일러(101)는 각 프로그램 모듈별 헤더 파일(*.h)들을 이용하여 통합 헤더 파일을 생성한다(S200).Thereafter, the ASN.1 compiler 101 generates an integrated header file using header files (* .h) for each program module (S200).

이하, 상술한 제 200 단계(S200)의 세부 동작과정에 대해 도 4, 도 6을 참조하여 설명하면 다음과 같다.Hereinafter, a detailed operation process of the above-described second step S200 will be described with reference to FIGS. 4 and 6.

먼저, 상기 ASN.1 컴파일러(101)는 도 6에 도시된 바와 같이, 각 헤더 파일들을 오름차순으로 정렬시킨 후(S210), 각 헤더 파일에 정수형 인덱스를 지정하고, 이후 각 헤더 파일의 내부 데이터를 해당 모듈 내부의 임포트 데이터(Import Data)를 이용하여 생성함과 동시에 각 내부 데이터의 서브 인덱스(Sub-Index)를 지정한다(S220). 도 6에서 'Index[i][j]'는 각 헤더 파일들의 정수형 인덱스를 의미하고, 'sub_Index[m][n]'는 각 헤더 파일들의 정수형 인덱스내 서브 인덱스를 의미한다. 이 때, 'Index[i][j]'에서의 'i'는 헤더 파일별 내부 데이터의 갯수를 의미하고, 'j'는 동일한 'i'값을 갖는 헤더 파일들에 대한 인덱스를 의미한다.First, as shown in FIG. 6, the ASN.1 compiler 101 sorts each header file in ascending order (S210), and then assigns an integer index to each header file, and then internal data of each header file. The data is generated using import data inside the module and a sub-index of each internal data is designated (S220). In FIG. 6, 'Index [i] [j]' means an integer index of each header file, and 'sub_Index [m] [n]' means a sub index within an integer index of each header file. In this case, 'i' in 'Index [i] [j]' means the number of internal data for each header file, and 'j' means indexes for header files having the same 'i' value.

그런후, 상기 ASN.1 컴파일러(101)는 정렬된 각 헤더 파일들과 내부 데이터의 서브 인덱스를 체크하여 상호 참조 정의 에러가 존재하는지의 여부를 판단한다(S230). 여기서, 각 헤더 파일 간 상호 참조 정의 에러가 존재하는 경우는 도 6의 (b)와 같으며 'Index[1][0]'의 내부 데이터가 'sub_Index[3][1]'이고 'Index[3][1]'의 내부 데이터가 'sub_Index[1][0]'인 경우, 즉 'Index[1][0]'인 헤더 파일이 'Index[3][1]'인 헤더 파일의 내부 데이터를 포함하고 'Index[3][1]'인헤더 파일이 'Index[1][0]'인 헤더 파일의 내부 데이터를 포함함으로 상호 순환적인 참조 현상이 일어나게 되는 경우를 의미한다.Thereafter, the ASN.1 compiler 101 checks the sub-indexes of the aligned header files and the internal data to determine whether there is a cross-reference definition error (S230). Here, if there is a cross-reference definition error between each header file, the same as in FIG. 6 (b), and the internal data of 'Index [1] [0]' is' sub_Index [3] [1] 'and' Index [ 3] Internal data of header file whose internal data of [1] 'is' sub_Index [1] [0]', that is, header file with 'Index [1] [0]' is' Index [3] [1] ' This refers to a case where a cross-cyclic reference phenomenon occurs because the header file including the data and the header file with 'Index [3] [1]' includes internal data of the header file with 'Index [1] [0]'.

이 때, 상기 제 230 단계(S230)에서 도 6의 (a)에서와 같이 상호 참조 정의 에러가 존재하지 않으면(NO), 상기 ASN.1 컴파일러(101)는 각 헤더 파일들의 내부 데이터들 중에서 중복된 내부 데이터들은 삭제하면서 각 헤더 파일들을 어태치시켜 통합한다(S240). 여기서, 상기 ASN.1 컴파일러(101)가 각 헤더 파일들을 어태치(Attach)시키는 방법은 인덱스 값이 적은 헤더 파일을 인덱스 값이 큰 헤더 파일의 앞부분에 어태치시키는 것이다.At this time, if there is no cross-reference definition error as shown in (a) of FIG. 6 in step S230 (NO) (NO), the ASN.1 compiler 101 duplicates among internal data of the respective header files. The internal data are deleted and attached to each header file to be integrated (S240). Here, the ASN.1 compiler 101 attaches each header file by attaching a header file having a small index value to the front of the header file having a large index value.

반면에, 상기 제 230 단계(S230)에서 도 6의 (b)에서처럼 상호 참조 정의 에러가 존재하면(YES), 상기 ASN.1 컴파일러(101)는 상호 참조 정의가 발생된 헤더 파일들의 에러를 정정함과 동시에 중복된 내부 데이터들은 삭제하면서 각 헤더 파일들을 어태치시켜 통합한다(S250).On the other hand, if there is a cross-reference definition error as shown in (b) of FIG. 6 in step 230 (Y230) (YES), the ASN.1 compiler 101 corrects the errors of the header files in which the cross-reference definition has occurred. At the same time, duplicated internal data are deleted, and each header file is attached and integrated (S250).

이하, 상술한 제 250 단계(S250)의 세부 동작과정에 대해 도 5, 도 6을 참조하여 설명하면 다음과 같다.Hereinafter, a detailed operation process of the above-described 250th step S250 will be described with reference to FIGS. 5 and 6.

먼저, 상기 ASN.1 컴파일러(101)는 상호 참조 정의 에러가 발생된 헤더 파일 중 인덱스 값이 적은 헤더 파일을 인덱스 값이 큰 헤더 파일에 어태치시킨다(S231). 이를 도 6의 (b)를 보면서 설명하면 'Index[1][0]'인 헤더 파일을 'Index[3][1]'인 헤더 파일의 앞 부분에 어태치한다.First, the ASN.1 compiler 101 attaches a header file having a small index value to a header file having a large index value among header files in which a cross-reference definition error occurs (S231). Referring to FIG. 6B, the header file of 'Index [1] [0]' is attached to the front of the header file of 'Index [3] [1]'.

그런후, 상기 ASN.1 컴파일러(101)는 상호 참조 정의 에러가 발생된'Index[1][0]'인 헤더 파일과 'Index[3][1]'인 헤더 파일의 인포메이션 엘리먼트(IE)를 재정렬한다(S232). 그 이유는 두 헤더 파일간의 인포메이션 엘리먼트(IE : Information Element)별로 디펜던시(Dependency)를 해결하기 위한 것이며, 이 때 인포메이션 엘리먼트(IE)란 두 개의 헤더 파일내 내부 데이터들의 속성 정보들을 의미하고 이는 인포메이션 엘리먼트를 호출하기 이전에 정의가 먼저 되어야 한다.Then, the ASN.1 compiler 101 determines the information element (IE) of the header file of 'Index [1] [0]' and the header file of 'Index [3] [1]' where a cross-reference definition error occurred. Rearrange (S232). The reason for this is to solve dependencies for each information element (IE) between two header files. In this case, the information element (IE) means attribute information of internal data in two header files. The definition must first be called before the information element is called.

이어서, 상기 ASN.1 컴파일러(101)는 상호 참조 정의 에러가 발생된 헤더 파일의 어태치 플래그를 재정의한다(S233). 여기서, 각 헤더 파일에 정의된 어태치 플래그란 어태치가 진행된 헤더 파일내의 내부 데이터의 갯수를 나타내며, 최종적인 통합은 각 헤더 파일내 내부 데이터의 갯수가 한 개가 되어야 됨으로 최종적인 통합이 이루어지기까지 어태치 플래그를 계속해서 갱신시켜야 되는 것이다.Subsequently, the ASN.1 compiler 101 redefines the attach flag of the header file in which the cross-reference definition error occurs (S233). Here, the attach flag defined in each header file represents the number of internal data in the header file to which the attachment has been progressed, and the final integration requires that the number of internal data in each header file should be one until the final integration is achieved. You need to update the attach flag continuously.

그런후, 상기 ASN.1 컴파일러(101)는 두 개의 헤더 파일내 중복된 내부 데이터들의 서브 인덱스를 삭제하면서 어태치한 헤더 인덱스의 서브 인덱스를 재정의한다(S234).Thereafter, the ASN.1 compiler 101 redefines the sub index of the attached header index while deleting the sub index of the duplicated internal data in the two header files (S234).

이어서, 상기 ASN.1 컴파일러(101)는 상호 통합된 헤더 파일 중 어태치된 헤더 파일의 서브 인덱스를 가지고 있는 인덱스들을 어태치한 헤더 파일의 인덱스로 대체시켜 헤더 파일들의 인덱스를 재구성한다(S235). 다시 말해, 다른 헤더 파일내의 서브 인덱스 중에서 어태치된 헤더 파일의 서브 인덱스와 동일한 인덱스들은 어태치한 헤더 파일의 인덱스로 변경시킨다.Subsequently, the ASN.1 compiler 101 replaces indices having sub-indexes of the attached header files among the integrated header files with indexes of the attached header files to reconstruct the indexes of the header files (S235). In other words, the same indexes as the sub-indexes of the attached header files among the sub-indexes in the other header files are changed to the indexes of the attached header files.

그런후, 상기 ASN.1 컴파일러(101)는 상호 참조 정의 에러가 발생된 또다른헤더 파일들이 존재하는지의 여부를 판단한다(S236).Then, the ASN.1 compiler 101 determines whether there are other header files for which a cross-reference definition error has occurred (S236).

이 때, 상기 제 236 단계(S236)에서 상호 참조 정의 에러가 발생된 또다른 헤더 파일들이 존재하면(YES) 상기 ASN.1 컴파일러(101)는 상기 제 231 단계(S231)로 진행하는 한편, 존재하지 않으면(NO) 중복된 내부 데이터들은 삭제하면서 각 헤더 파일들을 어태치시켜 통합한다(S237).At this time, if there are other header files for which a cross-reference definition error has occurred in step 236 (SES) (YES), the ASN.1 compiler 101 proceeds to step 231 (S231) and exists. If not (NO), the duplicate internal data are deleted and attached to each header file to be integrated (S237).

한편, 상기 제 200 단계(S200) 이후, 상기 C 컴파일러(102)는 통합 헤더 파일을 컴파일하여 각 모듈별 오프젝트 파일이 포함된 'RRCASN.o' 오프젝트 화일을 생성한다(S300).On the other hand, after the 200th step (S200), the C compiler 102 compiles the integrated header file to generate an 'RRCASN.o' object file containing the object file for each module (S300).

상술한 바와 같이 본 발명에 의한 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법에 의하면, 3세대 비동기 시스템의 프로토콜 규격인 RRC.asn을 ASN.1 컴파일러 및 C 컴파일러를 이용하여 컴파일 시 상호 참조 정의 에러를 해결해 줌으로써 호처리 관련 프로그램의 오프젝트 화일들의 생성이 순조롭게 이루어지도록 해줄 뿐만 아니라, 사용자가 ASN.1에 의해서 RRC 메시지를 생성할 수 있도록 해준다는 뛰어난 효과가 있다.As described above, according to the method of processing cross-reference definition error of the AS.1 compiler according to the present invention, a cross-reference definition error is generated when compiling RRC.asn, which is a protocol standard of a third generation asynchronous system, using the ASN.1 compiler and the C compiler. By solving the problem, it not only facilitates the creation of the object files of the call processing program, but also has the excellent effect of allowing the user to generate the RRC message by ASN.1.

Claims (5)

ASN.1 컴파일러 및 C 컴파일러를 구비한 유닉스 환경의 워크 스테이션(100)을 이용하여 RRC.asn을 오브젝트 파일(RRCASN.o)로 컴파일할 때의 상호 참조 정의 에러를 처리하는 방법에 있어서,In a method for handling cross-reference definition errors when compiling RRC.asn into an object file (RRCASN.o) using a workstation 100 in a Unix environment with an ASN.1 compiler and a C compiler, 상기 ASN.1 컴파일러가 호처리 관련 프로토콜 규격인 RRC.asn을 컴파일하여 각 프로그램 모듈별 헤더 파일(*.h)들과 각 프로그램 모듈별 C 코드화된 파일(*.c)들을 생성하는 제 100 단계;Step 100, the ASN.1 compiler compiles RRC.asn, a call processing related protocol standard, to generate header files (* .h) for each program module and C-coded files (* .c) for each program module ; 상기 ASN.1 컴파일러가 각 프로그램 모듈별 헤더 파일(*.h)들을 이용하여 통합 헤더 파일을 생성하는 제 200 단계; 및A step 200 of generating, by the ASN.1 compiler, an integrated header file using header files (* .h) for each program module; And 상기 C 컴파일러가 통합 헤더 파일을 컴파일하여 각 모듈별 오프젝트 파일이 포함된 'RRCASN.o' 오프젝트 화일을 생성하는 제 300 단계로 이루어진 것을 특징으로 하는 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법.The C compiler compiles an integrated header file and generates a 'RRCASN.o' object file including an object file for each module. . 제 1항에 있어서,The method of claim 1, 상기 제 200 단계는, 상기 ASN.1 컴파일러가 각 헤더 파일들을 오름차순으로 정렬시키는 제 210 단계;The 200 step may include: a 210 step of the ASN.1 compiler sorting each header file in ascending order; 상기 ASN.1 컴파일러가 각 헤더 파일에 정수형 인덱스를 지정하고, 이후 각 헤더 파일의 내부 데이터를 해당 모듈 내부의 임포트 데이터를 이용하여 생성함과동시에 각 내부 데이터의 서브 인덱스를 지정하는 제 220 단계;A step 220 in which the ASN.1 compiler assigns an integer index to each header file, and then generates internal data of each header file using import data in a corresponding module, and simultaneously designates a sub-index of each internal data; 상기 ASN.1 컴파일러가 정렬된 각 헤더 파일들과 내부 데이터의 서브 인덱스를 체크하여 상호 참조 정의 에러가 존재하는지의 여부를 판단하는 제 230 단계; 및Step 230, wherein the ASN.1 compiler checks sub-indexes of aligned header files and internal data to determine whether a cross-reference definition error exists; And 상기 제 230 단계에서 상호 참조 정의 에러가 존재하지 않으면, 상기 ASN.1 컴파일러가 중복된 내부 데이터들은 삭제하면서 각 헤더 파일들을 어태치시켜 통합하는 제 240 단계로 이루어진 것을 특징으로 하는 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법.If there is no cross-reference definition error in step 230, the ASN.1 compiler includes step 240 of attaching and integrating header files while deleting duplicate internal data. How to handle cross-reference definition errors. 제 2항에 있어서,The method of claim 2, 상기 제 240 단계에서 상기 ASN.1 컴파일러가 각 헤더 파일들을 어태치시키는 방법은, 인덱스 값이 적은 헤더 파일을 인덱스 값이 큰 헤더 파일의 앞부분에 어태치시킴을 특징으로 하는 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법.The method of attaching the header files by the ASN.1 compiler in step 240 may include attaching a header file having a small index value to the front of the header file having a large index value. How to handle reference definition errors. 제 2항에 있어서,The method of claim 2, 상기 제 230 단계에서 상호 참조 정의 에러가 존재하면, 상기 ASN.1 컴파일러가 상호 참조 정의가 발생된 헤더 파일들의 에러를 정정함과 동시에 중복된 내부 데이터들은 삭제하면서 각 헤더 파일들을 어태치시켜 통합하는 제 250 단계를 추가로 포함시킴을 특징으로 하는 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법.If there is a cross-reference definition error in step 230, the ASN.1 compiler corrects the errors of the header files for which the cross-reference definition has occurred, and simultaneously attaches and integrates the respective header files while deleting duplicate internal data. A method for handling cross-reference definition errors of an AS.1 compiler, further comprising step 250. 제 4항에 있어서,The method of claim 4, wherein 상기 제 250 단계는, 상기 ASN.1 컴파일러가 상호 참조 정의 에러가 발생된 헤더 파일 중 인덱스 값이 적은 헤더 파일을 인덱스 값이 큰 헤더 파일에 어태치시키는 제 231 단계;In step 250, the ASN.1 compiler attaches a header file having a small index value to a header file having a large index value among header files having a cross-reference definition error; 상기 ASN.1 컴파일러가 상호 참조 정의 에러가 발생된 헤더 파일들의 인포메이션 엘리먼트(IE)를 재정렬하는 제 232 단계;Step 232, wherein the ASN.1 compiler rearranges information elements (IE) of header files in which a cross-reference definition error occurs; 상기 ASN.1 컴파일러가 상호 참조 정의 에러가 발생된 헤더 파일들의 어태치 플래그를 재정의하는 제 233 단계;Step 233, wherein the ASN.1 compiler redefines attach flags of header files in which a cross-reference definition error occurs; 상기 ASN.1 컴파일러가 중복된 내부 데이터들의 서브 인덱스를 삭제하면서 어태치한 헤더 인덱스의 서브 인덱스를 재정의하는 제 234 단계;Step 234, the ASN.1 compiler redefining the sub index of the attached header index while deleting the sub index of duplicate internal data; 상기 ASN.1 컴파일러가 상호 통합된 헤더 파일 중 어태치된 헤더 파일의 서브 인덱스를 가지고 있는 인덱스들을 어태치한 헤더 파일의 인덱스로 대체시켜 헤더 파일들의 인덱스를 재구성하는 제 235 단계;Step 235, the ASN.1 compiler reconstructing the indexes of the header files by replacing the indexes having sub-indexes of the attached header files with the indexes of the attached header files; 상기 ASN.1 컴파일러가 상호 참조 정의 에러가 발생된 또다른 헤더 파일들이 존재하는지의 여부를 판단하는 제 236 단계; 및Step 236, the ASN.1 compiler determining whether there are other header files in which a cross-reference definition error has occurred; And 상기 제 236 단계에서 상호 참조 정의 에러가 발생된 또다른 헤더 파일들이존재하면 상기 ASN.1 컴파일러가 상기 제 231 단계로 진행하는 한편, 존재하지 않으면 중복된 내부 데이터들은 삭제하면서 각 헤더 파일들을 어태치시켜 통합하는 제 237 단계로 이루어진 것을 특징으로 하는 ASN.1 컴파일러의 상호 참조 정의 에러 처리 방법.If there are other header files for which a cross-reference definition error has occurred in step 236, the ASN.1 compiler proceeds to step 231, and if none exists, attaches the respective header files while deleting duplicate internal data. A method for processing cross-reference definition errors of an AS.1 compiler, comprising: step 237;
KR1020010029381A 2001-05-28 2001-05-28 Method for processing circular import definition error of asn.1 compiler KR20020090512A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010029381A KR20020090512A (en) 2001-05-28 2001-05-28 Method for processing circular import definition error of asn.1 compiler

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010029381A KR20020090512A (en) 2001-05-28 2001-05-28 Method for processing circular import definition error of asn.1 compiler

Publications (1)

Publication Number Publication Date
KR20020090512A true KR20020090512A (en) 2002-12-05

Family

ID=27706702

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010029381A KR20020090512A (en) 2001-05-28 2001-05-28 Method for processing circular import definition error of asn.1 compiler

Country Status (1)

Country Link
KR (1) KR20020090512A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101142322B1 (en) * 2009-03-31 2012-05-17 (재)국토연구원 ASN.1 Compiler
US10725750B2 (en) 2016-12-01 2020-07-28 Red Hat, Inc. Compiler integrated intelligent deserialization framework

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101142322B1 (en) * 2009-03-31 2012-05-17 (재)국토연구원 ASN.1 Compiler
US10725750B2 (en) 2016-12-01 2020-07-28 Red Hat, Inc. Compiler integrated intelligent deserialization framework

Similar Documents

Publication Publication Date Title
US5745897A (en) Method and system for compiling management information base specifications
JPH04320533A (en) Device and method for processing program
CN109614106B (en) C + + program compiling method and device
US8667506B2 (en) Object oriented management device for ASN.1 message
US6106574A (en) Computer-implemented object-oriented method for relating objects in a compiler to locations in the source program and to inlined call histories
CN109726217B (en) Database operation method, device, equipment and storage medium
US6405368B1 (en) Method for separate compilation of templates
US5978587A (en) Method for propagating source code locations into objects in a compiler
CN112765209A (en) SQL statement syntax migration method and system between databases
CN113901083A (en) Heterogeneous data source operation resource analysis positioning method and equipment based on multiple analyzers
US20080033968A1 (en) Methods and apparatus for input specialization
KR20020090512A (en) Method for processing circular import definition error of asn.1 compiler
CN1132390C (en) Telecom service developing method based on independent service module
CN115934789A (en) AST-based distributed SQL query method, AST-based distributed SQL query device and AST-based distributed SQL query storage medium
US20030217190A1 (en) Service description and development processes
CN112148283B (en) Method for realizing cross-platform ABI compatible C++ component framework
CN110018816B (en) Virtual machine control system based on C/C + + compiling system and control method thereof
KR100938226B1 (en) Method for storing data according to a size of asn.1 file
CN117555925B (en) Database access code conversion method and device and electronic equipment
KR100282566B1 (en) How to generate attribute values in task mode and non-substituted module modes in Chill 96
JP2002132502A (en) Automatic creating system and method of distributed object with interpretation of language function
KR100276080B1 (en) A translation method from process in sdl-92 to task in chill-96
Rayner Recent developments in machine‐independent job control languages
LEAKE Robust error correction in a generalized LR parser
KR100428015B1 (en) How to Import Text Files in Building Control Systems

Legal Events

Date Code Title Description
N231 Notification of change of applicant
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination