Annotation of XNU/osfmk/ddb/db_lex.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
        !             3:  *
        !             4:  * @APPLE_LICENSE_HEADER_START@
        !             5:  * 
        !             6:  * The contents of this file constitute Original Code as defined in and
        !             7:  * are subject to the Apple Public Source License Version 1.1 (the
        !             8:  * "License").  You may not use this file except in compliance with the
        !             9:  * License.  Please obtain a copy of the License at
        !            10:  * http://www.apple.com/publicsource and read it before using this file.
        !            11:  * 
        !            12:  * This Original Code and all software distributed under the License are
        !            13:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
        !            14:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
        !            15:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
        !            16:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
        !            17:  * License for the specific language governing rights and limitations
        !            18:  * under the License.
        !            19:  * 
        !            20:  * @APPLE_LICENSE_HEADER_END@
        !            21:  */
        !            22: /*
        !            23:  * @OSF_COPYRIGHT@
        !            24:  */
        !            25: /*
        !            26:  * HISTORY
        !            27:  * 
        !            28:  * Revision 1.1.1.1  1998/09/22 21:05:48  wsanchez
        !            29:  * Import of Mac OS X kernel (~semeria)
        !            30:  *
        !            31:  * Revision 1.1.1.1  1998/03/07 02:26:09  wsanchez
        !            32:  * Import of OSF Mach kernel (~mburg)
        !            33:  *
        !            34:  * Revision 1.1.11.2  1995/01/06  19:10:24  devrcs
        !            35:  *     mk6 CR668 - 1.3b26 merge
        !            36:  *     64bit cleanup
        !            37:  *     [1994/10/14  03:39:54  dwm]
        !            38:  *
        !            39:  * Revision 1.1.11.1  1994/09/23  01:20:10  ezf
        !            40:  *     change marker to not FREE
        !            41:  *     [1994/09/22  21:10:18  ezf]
        !            42:  * 
        !            43:  * Revision 1.1.4.3  1993/07/27  18:27:40  elliston
        !            44:  *     Add ANSI prototypes.  CR #9523.
        !            45:  *     [1993/07/27  18:12:19  elliston]
        !            46:  * 
        !            47:  * Revision 1.1.4.2  1993/06/02  23:11:33  jeffc
        !            48:  *     Added to OSF/1 R1.3 from NMK15.0.
        !            49:  *     [1993/06/02  20:56:37  jeffc]
        !            50:  * 
        !            51:  * Revision 1.1  1992/09/30  02:24:17  robert
        !            52:  *     Initial revision
        !            53:  * 
        !            54:  * $EndLog$
        !            55:  */
        !            56: /* CMU_HIST */
        !            57: /*
        !            58:  * Revision 2.5  91/10/09  16:00:48  af
        !            59:  *      Revision 2.4.3.1  91/10/05  13:06:34  jeffreyh
        !            60:  *             Added db_lex_context structure and some routine declarations
        !            61:  *               for macro and conditinal command.
        !            62:  *             Added relational operator tokens etc. for condition expression.
        !            63:  *             Changed TOK_STRING_SIZE from 120 to 64, and defined
        !            64:  *               DB_LEX_LINE_SIZE as 256 which was previously embedded
        !            65:  *               in db_lex.c as 120.
        !            66:  *             [91/08/29            tak]
        !            67:  *     Revision 2.4.1 91/07/15  09:30:00  tak
        !            68:  *             Added db_lex_context for macro support
        !            69:  *             Added some lexical constants to support logical expression etc.
        !            70:  *             [91/05/15  13:55:00  tak]
        !            71:  * 
        !            72:  * Revision 2.4.3.1  91/10/05  13:06:34  jeffreyh
        !            73:  *     Added db_lex_context structure and some routine declarations
        !            74:  *       for macro and conditinal command.
        !            75:  *     Added relational operator tokens etc. for condition expression.
        !            76:  *     Changed TOK_STRING_SIZE from 120 to 64, and defined
        !            77:  *       DB_LEX_LINE_SIZE as 256 which was previously embedded
        !            78:  *       in db_lex.c as 120.
        !            79:  *     [91/08/29            tak]
        !            80:  * 
        !            81:  * Revision 2.4.1 91/07/15  09:30:00  tak
        !            82:  *     Added db_lex_context for macro support
        !            83:  *     Added some lexical constants to support logical expression etc.
        !            84:  *     [91/05/15  13:55:00  tak]
        !            85:  *
        !            86:  * Revision 2.4  91/05/14  15:34:38  mrt
        !            87:  *     Correcting copyright
        !            88:  * 
        !            89:  * Revision 2.3  91/02/05  17:06:41  mrt
        !            90:  *     Changed to new Mach copyright
        !            91:  *     [91/01/31  16:18:28  mrt]
        !            92:  * 
        !            93:  * Revision 2.2  90/08/27  21:51:16  dbg
        !            94:  *     Add 'dotdot' token.
        !            95:  *     [90/08/22            dbg]
        !            96:  *     Export db_flush_lex.
        !            97:  *     [90/08/07            dbg]
        !            98:  *     Created.
        !            99:  *     [90/07/25            dbg]
        !           100:  * 
        !           101:  */
        !           102: /* CMU_ENDHIST */
        !           103: /* 
        !           104:  * Mach Operating System
        !           105:  * Copyright (c) 1991,1990 Carnegie Mellon University
        !           106:  * All Rights Reserved.
        !           107:  * 
        !           108:  * Permission to use, copy, modify and distribute this software and its
        !           109:  * documentation is hereby granted, provided that both the copyright
        !           110:  * notice and this permission notice appear in all copies of the
        !           111:  * software, derivative works or modified versions, and any portions
        !           112:  * thereof, and that both notices appear in supporting documentation.
        !           113:  * 
        !           114:  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
        !           115:  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
        !           116:  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
        !           117:  * 
        !           118:  * Carnegie Mellon requests users of this software to return to
        !           119:  * 
        !           120:  *  Software Distribution Coordinator  or  [email protected]
        !           121:  *  School of Computer Science
        !           122:  *  Carnegie Mellon University
        !           123:  *  Pittsburgh PA 15213-3890
        !           124:  * 
        !           125:  * any improvements or extensions that they make and grant Carnegie Mellon
        !           126:  * the rights to redistribute these changes.
        !           127:  */
        !           128: /*
        !           129:  */
        !           130: /*
        !           131:  *     Author: David B. Golub, Carnegie Mellon University
        !           132:  *     Date:   7/90
        !           133:  */
        !           134: /*
        !           135:  * Lexical analyzer.
        !           136:  */
        !           137: 
        !           138: #ifndef        _DDB_DB_LEX_H_
        !           139: #define        _DDB_DB_LEX_H_
        !           140: 
        !           141: #include <machine/db_machdep.h>          /* For db_expr_t */
        !           142: 
        !           143: #define        TOK_STRING_SIZE         64 
        !           144: #define DB_LEX_LINE_SIZE       256
        !           145: 
        !           146: struct db_lex_context {
        !           147:        int  l_char;            /* peek char */
        !           148:        int  l_token;           /* peek token */
        !           149:        char *l_ptr;            /* line pointer */
        !           150:        char *l_eptr;           /* line end pointer */
        !           151: };
        !           152: 
        !           153: extern db_expr_t db_tok_number;
        !           154: extern char    db_tok_string[TOK_STRING_SIZE];
        !           155: extern db_expr_t db_radix;
        !           156: 
        !           157: #define        tEOF            (-1)
        !           158: #define        tEOL            1
        !           159: #define        tNUMBER         2
        !           160: #define        tIDENT          3
        !           161: #define        tPLUS           4
        !           162: #define        tMINUS          5
        !           163: #define        tDOT            6
        !           164: #define        tSTAR           7
        !           165: #define        tSLASH          8
        !           166: #define        tEQ             9
        !           167: #define        tLPAREN         10
        !           168: #define        tRPAREN         11
        !           169: #define        tPCT            12
        !           170: #define        tHASH           13
        !           171: #define        tCOMMA          14
        !           172: #define        tQUOTE          15
        !           173: #define        tDOLLAR         16
        !           174: #define        tEXCL           17
        !           175: #define        tSHIFT_L        18
        !           176: #define        tSHIFT_R        19
        !           177: #define        tDOTDOT         20
        !           178: #define tSEMI_COLON    21
        !           179: #define tLOG_EQ                22
        !           180: #define tLOG_NOT_EQ    23
        !           181: #define tLESS          24
        !           182: #define tLESS_EQ       25
        !           183: #define tGREATER       26
        !           184: #define tGREATER_EQ    27
        !           185: #define tBIT_AND       28
        !           186: #define tBIT_OR                29
        !           187: #define tLOG_AND       30
        !           188: #define tLOG_OR                31
        !           189: #define tSTRING                32
        !           190: #define tQUESTION      33
        !           191: 
        !           192: /* Prototypes for functions exported by this module.
        !           193:  */
        !           194: int db_read_line(char *repeat_last);
        !           195: 
        !           196: void db_switch_input(
        !           197:        char    *buffer,
        !           198:        int     size);
        !           199: 
        !           200: void db_save_lex_context(struct db_lex_context *lp);
        !           201: 
        !           202: void db_restore_lex_context(struct db_lex_context *lp);
        !           203: 
        !           204: int db_read_char(void);
        !           205: 
        !           206: void db_unread_token(int t);
        !           207: 
        !           208: int db_read_token(void);
        !           209: 
        !           210: void db_flush_lex(void);
        !           211: 
        !           212: void db_skip_to_eol(void);
        !           213: 
        !           214: int db_lex(void);
        !           215: 
        !           216: #endif /* !_DDB_DB_LEX_H_ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.