mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-28 03:23:03 +01:00
122 lines
4.0 KiB
C
122 lines
4.0 KiB
C
/*
|
|
* PROGRAM: JRD Command Oriented Query Language
|
|
* MODULE: format.h
|
|
* DESCRIPTION: Print formatter definitions
|
|
*
|
|
* The contents of this file are subject to the Interbase Public
|
|
* License Version 1.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy
|
|
* of the License at http://www.Inprise.com/IPL.html
|
|
*
|
|
* Software distributed under the License is distributed on an
|
|
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
|
|
* or implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code was created by Inprise Corporation
|
|
* and its predecessors. Portions created by Inprise Corporation are
|
|
* Copyright (C) Inprise Corporation.
|
|
*
|
|
* All Rights Reserved.
|
|
* Contributor(s): ______________________________________.
|
|
*/
|
|
|
|
#ifndef QLI_FORMAT_H
|
|
#define QLI_FORMAT_H
|
|
|
|
// Logical column block
|
|
|
|
typedef struct col {
|
|
blk col_header;
|
|
col* col_next; // Next logical column
|
|
qli_nod* col_expression; // Definitive expression
|
|
TEXT *col_head; // Column header
|
|
USHORT col_column; // Starting column number
|
|
USHORT col_print_length; // Max print length
|
|
} *COL;
|
|
|
|
/* Picture string elements:
|
|
|
|
A any alpha character (interpreted as X)
|
|
B blank character
|
|
CR credit (sign)
|
|
D day of month (digit)
|
|
DB debit (sign)
|
|
E exponent
|
|
G exponent or decimal format, whichever is shorter
|
|
H hex digit
|
|
J day of year (digit)
|
|
M alpha month
|
|
N month (numeric)
|
|
P AM/PM indicator for time
|
|
T time
|
|
W weekday (character)
|
|
X any character
|
|
Y year (digit)
|
|
Z digit or leading suppressed digit (blank)
|
|
9 digit
|
|
$ fixed or floating insertion
|
|
* floating insertion
|
|
, literal character or inserted
|
|
. decimal point
|
|
+ sign (fixed or floating), always present
|
|
- sign (fixed or floating), suppressed on positive, or literal
|
|
? separate between real and missing components of edit string
|
|
"string" any string
|
|
(( )) insert parenthesis if negative
|
|
/ literal insertion
|
|
% literal insertion
|
|
: literal insertion
|
|
*/
|
|
|
|
typedef enum pic_t {
|
|
pic_alpha = 1,
|
|
pic_numeric,
|
|
pic_date,
|
|
pic_float,
|
|
pic_text
|
|
} PIC_T;
|
|
|
|
// Picture string handling block
|
|
|
|
struct pics {
|
|
blk pic_header;
|
|
USHORT pic_print_length; // Print length of picture string
|
|
const TEXT* pic_string; // Address of string
|
|
const TEXT* pic_pointer; // Address of string
|
|
USHORT pic_flags; // Misc. trash
|
|
USHORT pic_count; // Count of repeat characters
|
|
TEXT pic_character; // Last significant character
|
|
PIC_T pic_type; // Type of edit
|
|
USHORT pic_length; /* Printing columns (MAX of edit_string & missing) */
|
|
USHORT pic_floats; // Character of floating things
|
|
USHORT pic_digits; // Digits of number
|
|
USHORT pic_hex_digits; // Hexidecimal digits
|
|
USHORT pic_fractions; // Digits after decimal point
|
|
USHORT pic_chars; // Insertion characters (alpha)
|
|
USHORT pic_literals; // Literal insertion characters
|
|
USHORT pic_days; // Digits of day of month
|
|
USHORT pic_weekdays; // Characters of weekday
|
|
USHORT pic_months; // Characters of alpha month
|
|
USHORT pic_nmonths; // Digits of numeric month
|
|
USHORT pic_years; // Digits of year
|
|
USHORT pic_julians; // Digits of julian days
|
|
USHORT pic_decimals; /* Number of decimal points (?!) */
|
|
USHORT pic_brackets; // Pairs of deficit brackets
|
|
USHORT pic_exponents; // Exponential indicators
|
|
USHORT pic_float_digits; // Floating digits
|
|
USHORT pic_hours; // hours
|
|
USHORT pic_minutes; // minutes
|
|
USHORT pic_seconds; // seconds
|
|
USHORT pic_meridian; // AM/PM indicator
|
|
pics* pic_missing; // missing value edit string
|
|
};
|
|
|
|
// pic_flags
|
|
const USHORT PIC_suppress_blanks = 1; // Suppress leading blanks
|
|
const USHORT PIC_literal = 2; // We're in a quoted string
|
|
const USHORT PIC_signed = 4; // This numeric edit string has a sign indicator
|
|
|
|
#endif // QLI_FORMAT_H
|
|
|