1 /******************************************************************************
2 *
3 * Copyright (C) 2006, The Gentee Group. All rights reserved.
4 * This file is part of the Gentee open source project - http://www.gentee.com.
5 *
6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT").
7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS
8 * ACCEPTANCE OF THE AGREEMENT.
9 *
10 * ID: msg 18.10.06 0.0.A.
11 *
12 * Author: Alexey Krivonogov
13 *
14 * Summary: Message functions.
15 *
16 ******************************************************************************/
17
18 #ifndef _MSG_
19 #define _MSG_
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif // __cplusplus
24
25
26 #include "../os/user/defines.h"
27 #include "msglist.h"
28
29 /*-----------------------------------------------------------------------------
30 *
31 * ID: msgflags 19.10.06 0.0.A.
32 *
33 * Summary: Flags for msg function
34 *
35 -----------------------------------------------------------------------------*/
36
37 #define MSG_STR 0x00010000 // The parameter is a string
38 #define MSG_EXIT 0x00020000 // Exit the thread
39 //#define MSG_WAIT 0x00040000 // Wait for pressing key. Set up if MSG_EXIT
40 //#define MSG_START 0x00080000 // Start compilation
41 //#define MSG_FINISH 0x00100000 // Finish compilation
42 #define MSG_POS 0x00200000 // The parameter is a position
43 #define MSG_LEXEM 0x00400000 // The parameter is a lexem
44 #define MSG_LEXNAME 0x00800000 // Output the name of the lexem
45 #define MSG_VALUE 0x01000000 // The parameter is a value
46 #define MSG_VALSTR 0x02000000 // double value + name
47 #define MSG_VALVAL 0x04000000 // double value
48
49 #define MSG_LEXNAMEERR ( MSG_EXIT | MSG_LEXEM | MSG_LEXNAME )
50 #define MSG_LEXERR ( MSG_EXIT | MSG_LEXEM )
51 #define MSG_VALSTRERR ( MSG_VALUE | MSG_VALSTR | MSG_EXIT )
52 #define MSG_DVAL ( MSG_VALUE | MSG_VALVAL | MSG_EXIT )
53
54 /*-----------------------------------------------------------------------------
55 *
56 * ID: msginfo 19.10.06 0.0.A.
57 *
58 * Summary: Type messageinfo.
59 *
60 -----------------------------------------------------------------------------*/
61
62 typedef struct
63 {
64 uint code; // Message code
65 uint flag; // Message flags
66 pubyte filename;
67 uint line;
68 uint pos;
69 pubyte namepar;
70 uint uintpar;
71 pubyte pattern;
72 } msginfo, * pmsginfo;
73
74 extern uint _time;
75
76 uint CDECLCALL msg( uint code, ... );
77 void CDECLCALL print( pubyte output, ... );
78 uint STDCALL message( pmsginfo minfo );
79
80 #ifdef __cplusplus
81 }
82 #endif // __cplusplus
83
84 #endif // _MSG_