// Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
//
// This program and the accompanying materials are made available under the
// terms of the Eclipse Public License v. 2.0 which is available at
// http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
// v. 1.0 which is available at
// http://www.eclipse.org/org/documents/edl-v10.php.
//
// SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause

import "banner.st"
import "file.st"
import "dlldef.st"
import "module.st"
import "struct.st"

scopedname (scope, name) ::= <<
<if(scope)><scope;separator="_">_<endif><name>
>>

colonscopedname (scope, name) ::= << <if(scope)><scope;separator="::">::<endif><name>
>>

member (name, arraydim, scope, type, str_size) ::= <<
>>

scalar_typedef (namescope, name, scope, type, arraydim, str_size) ::= <<
>>

enum (name, scope, values) ::= <<
>>

const (name, scope, expression) ::= <<
>>

union (name, scope, disc, discscope, fields, declarations) ::= <<
>>

keyfield (name, offset) ::= <<
>>

seqdef (name, scope, type, typescope) ::= <<
>>

seqdef_base (name, scope, type, arraydim, str_size) ::= <<
>>
