Type Names |
This document describes how core UNO types (see UNO Type System) and related UNOIDL entities (like typedefs, modules, and services) are named in binary UNO and in the UNO type registry.
UNO Type t | Binary UNO Type Name β(t) | UNO Type Registry Name ρ(t) |
---|---|---|
VOID |
void |
void |
BOOLEAN |
boolean |
boolean |
BYTE |
byte |
byte |
SHORT |
short |
short |
UNSIGNED SHORT |
unsigned short |
unsigned short |
LONG |
long |
long |
UNSIGNED LONG |
unsigned long |
unsigned long |
HYPER |
hyper |
hyper |
UNSIGNED HYPER |
unsigned hyper |
unsigned hyper |
FLOAT |
float |
float |
DOUBLE |
double |
double |
CHAR |
char |
char |
STRING |
string |
string |
TYPE |
type |
type |
ANY |
any |
any |
Sequence type with component type t′ | [] β(t′) |
[] ρ(t′) |
Enum type with structured name n1. …. nk, k > 0 |
n1. …. nk |
n1/ …/ nk |
Plain struct type with structured name
n1. …. nk, k > 0 |
n1. …. nk |
n1/ …/ nk |
Instantiated polymorphic struct type with polymorphic struct
type template with structured name n1. …. nkn, kn > 0, and
type arguments 〈t1, …,
tkt〉, kt >
0 |
n1. …. nkn< β(t1), …, β(tkt)> |
n1/ …/ nkn< ρ(t1), …, ρ(tkt)> |
Exception type with structured name n1. …. nk, k > 0 |
n1. …. nk |
n1/ …/ nk |
Interface type with structured name n1. …. nk, k > 0 |
n1. …. nk |
n1/ …/ nk |
Polymorphic struct type template with structured name
n1. …. nk, k >
0 |
— | n1/ …/ nk |
Typedef with structured name n1. …. nk, k >
0 |
— | n1/ …/ nk |
Module with structured name n1. …. nk, k >
0 |
— | n1/ …/ nk |
Constant group with structured name
n1. …. nk, k >
0 |
— | n1/ …/ nk |
Service with structured name n1. …. nk, k >
0 |
— | n1/ …/ nk |
Singleton with structured name n1. …. nk, k >
0 |
— | n1/ …/ nk |
Annotations:
- Entries given in italics denote entities that are not types of the core UNO type system. They also have no correspondence in binary UNO.
- A structured name n1
.
….
nk, k > 0, consists of a sequence of structured name parts, separated by full stops (.
). Each structured name part must satisfy the lexical rulesstructured-name-part = lowercase-name / uppercase-name
lowercase-name = lowercase *alphanum
uppercase-name = uppercase *alphanum *(_
+alphanum)
alphanum = alpha / digit
alpha = lowercase / uppercase
lowercase =a
–z
uppercase =A
–Z
digit =0
–9
- For the purposes of binary UNO and the UNO type registry, it is an error for
any enum type, plain struct type, polymorphic struct type template,
exception type, or interface type to have a name that is not a structured
name, or that is a structured name (consisting of only a single structured
name part) that is equal to any of
void
,boolean
,byte
,short
,long
,hyper
,float
,double
,char
,string
,type
, orany
. - For the purposes of binary UNO, it is an error for any enum type, plain struct type, polymorphic struct type template, exception type, or interface type to have a name that is the same as the name of another enum type, plain structure type, polymorphic struct type template, exception type, or interface type.
- For the purposes of the UNO type registry, it is an error for any enum type, plain struct type, polymorphic struct type template, exception type, or interface type to have a name that is the same as the name of another enum type, plain structure type, polymorphic struct type template, exception type, interface type, typedef, module, constant group, service, or singleton.
- For the purposes of binary UNO and the UNO type registry, it is an error for any polymorphic struct type template to have zero type parameters.
Author: Stephan Bergmann (last modification $Date: 2004/11/30 12:25:04 $). Copyright 2004 OpenOffice.org Foundation. All rights reserved. |