#
# Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Distribution License v. 1.0, which is available at
# http://www.eclipse.org/org/documents/edl-v10.php.
#
# SPDX-License-Identifier: BSD-3-Clause
#

package @PKGNAME@ ;

import org.omg.CORBA.OMGVMCID ;
import org.omg.CORBA.CompletionStatus ;

import org.omg.CORBA.@SYSEX@ ; 

public abstract class StandardException {
    // @SYSEX@ BAD_CONTEXT

    public void IdlContextNotFound( CompletionStatus completed )
    {
        throw new BAD_CONTEXT( "IDL context not found", 
            OMGVMCID.value + 1, completed ) ;
    }

    public void IdlContextNotFound( )
    {
        IdlContextNotFound( CompletionStatus.COMPLETED_NO ) ;
    }

Data structures: list[ ... ] vector[ ... ] ( record )

list[ ( string{exception name} list[ ( string{code name} int{value} string{description} ] ) ]
                            
Processing:
    

    open file (fname)
        fr = new FileReader( fname )
        br = new BufferedReader( fr )
        br.readLine() returns null at EOF

    want a BufferedReader
    
    while not eol read line
        if (line start with spaces)
            add to current index
        else
            new exception

    create StandardException class

    foreach ( excname vec ) in data
        add import statement for execname to output 

        foreach ( codename value descr ) in vec 
            generate full method
            generate short method
        
           
(define (read-file fname)
    (begin
        (let port (open-input-port fname))
        (let obj  (read port))
        obj
    )
)

    
    
