File: macro.lex.l

package info (click to toggle)
wine 0.0.20000109-3
  • links: PTS
  • area: main
  • in suites: potato
  • size: 22,652 kB
  • ctags: 59,973
  • sloc: ansic: 342,054; perl: 3,697; yacc: 3,059; tcl: 2,647; makefile: 2,466; lex: 1,494; sh: 394
file content (203 lines) | stat: -rw-r--r-- 9,392 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
%{
/*
 * Help Viewer
 *
 * Copyright 1996 Ulrich Schmid
 */
%}
%x quote dquote
%{
#include "macro.h"
#include "y.tab.h"

static LPCSTR  macroptr;
static LPSTR   strptr;
static HGLOBAL hStringBuffer = 0;
static INT     nested_quotes = 0;

#define YY_INPUT(buf,result,max_size)\
  if ((result = *macroptr ? 1 : 0)) buf[0] = *macroptr++;

#define YY_NO_UNPUT
%}
%%
About			yylval = (YYSTYPE)MACRO_About;			return VOID_FUNCTION_VOID;
AddAccelerator|AA	yylval = (YYSTYPE)MACRO_AddAccelerator;		return VOID_FUNCTION_2UINT_STRING;
ALink|AL		yylval = (YYSTYPE)MACRO_ALink;			return VOID_FUNCTION_STRING_UINT_STRING;
Annotate		yylval = (YYSTYPE)MACRO_Annotate;		return VOID_FUNCTION_VOID;
AppendItem		yylval = (YYSTYPE)MACRO_AppendItem;		return VOID_FUNCTION_4STRING;
Back			yylval = (YYSTYPE)MACRO_Back;			return VOID_FUNCTION_VOID;
BackFlush|BF		yylval = (YYSTYPE)MACRO_BackFlush;		return VOID_FUNCTION_VOID;
BookmarkDefine		yylval = (YYSTYPE)MACRO_BookmarkDefine;		return VOID_FUNCTION_VOID;
BookmarkMore		yylval = (YYSTYPE)MACRO_BookmarkMore;		return VOID_FUNCTION_VOID;
BrowseButtons		yylval = (YYSTYPE)MACRO_BrowseButtons;		return VOID_FUNCTION_VOID;
ChangeButtonBinding|CBB	yylval = (YYSTYPE)MACRO_ChangeButtonBinding;	return VOID_FUNCTION_2STRING;
ChangeEnable|CE		yylval = (YYSTYPE)MACRO_ChangeEnable;		return VOID_FUNCTION_2STRING;
ChangeItemBinding|CIB	yylval = (YYSTYPE)MACRO_ChangeItemBinding;	return VOID_FUNCTION_2STRING;
CheckItem|CI		yylval = (YYSTYPE)MACRO_CheckItem;		return VOID_FUNCTION_STRING;
CloseSecondarys|CS	yylval = (YYSTYPE)MACRO_CloseSecondarys;		return VOID_FUNCTION_VOID;
CloseWindow|CW		yylval = (YYSTYPE)MACRO_CloseWindow;		return VOID_FUNCTION_STRING;
Compare			yylval = (YYSTYPE)MACRO_Compare;			return VOID_FUNCTION_STRING;
Contents		yylval = (YYSTYPE)MACRO_Contents;		return VOID_FUNCTION_VOID;
ControlPanel		yylval = (YYSTYPE)MACRO_ControlPanel;		return VOID_FUNCTION_2STRING_UINT;
CopyDialog		yylval = (YYSTYPE)MACRO_CopyDialog;		return VOID_FUNCTION_VOID;
CopyTopic|CT		yylval = (YYSTYPE)MACRO_CopyTopic;		return VOID_FUNCTION_VOID;
CreateButton|CB		yylval = (YYSTYPE)MACRO_CreateButton;		return VOID_FUNCTION_3STRING;
DeleteItem		yylval = (YYSTYPE)MACRO_DeleteItem;		return VOID_FUNCTION_STRING;
DeleteMark		yylval = (YYSTYPE)MACRO_DeleteMark;		return VOID_FUNCTION_STRING;
DestroyButton		yylval = (YYSTYPE)MACRO_DestroyButton;		return VOID_FUNCTION_STRING;
DisableButton|DB	yylval = (YYSTYPE)MACRO_DisableButton;		return VOID_FUNCTION_STRING;
DisableItem|DI		yylval = (YYSTYPE)MACRO_DisableItem;		return VOID_FUNCTION_STRING;
EnableButton|EB		yylval = (YYSTYPE)MACRO_EnableButton;		return VOID_FUNCTION_STRING;
EnableItem|EI		yylval = (YYSTYPE)MACRO_EnableItem;		return VOID_FUNCTION_STRING;
EndMPrint		yylval = (YYSTYPE)MACRO_EndMPrint;		return VOID_FUNCTION_VOID;
ExecFile|EF		yylval = (YYSTYPE)MACRO_ExecFile;		return VOID_FUNCTION_2STRING_UINT_STRING;
ExecProgram|EP		yylval = (YYSTYPE)MACRO_ExecProgram;		return VOID_FUNCTION_STRING_UINT;
Exit			yylval = (YYSTYPE)MACRO_Exit;			return VOID_FUNCTION_VOID;
ExtAbleItem		yylval = (YYSTYPE)MACRO_ExtAbleItem;		return VOID_FUNCTION_STRING_UINT;
ExtInsertItem		yylval = (YYSTYPE)MACRO_ExtInsertItem;		return VOID_FUNCTION_4STRING_2UINT;
ExtInsertMenu		yylval = (YYSTYPE)MACRO_ExtInsertMenu;		return VOID_FUNCTION_3STRING_2UINT;
FileExist|FE		yylval = (YYSTYPE)MACRO_FileExist;		return BOOL_FUNCTION_STRING;
FileOpen|FO		yylval = (YYSTYPE)MACRO_FileOpen;		return VOID_FUNCTION_VOID;
Find			yylval = (YYSTYPE)MACRO_Find;			return VOID_FUNCTION_VOID;
Finder|FD		yylval = (YYSTYPE)MACRO_Finder;			return VOID_FUNCTION_VOID;
FloatingMenu		yylval = (YYSTYPE)MACRO_FloatingMenu;		return VOID_FUNCTION_VOID;
Flush|FH		yylval = (YYSTYPE)MACRO_Flush;			return VOID_FUNCTION_VOID;
FocusWindow		yylval = (YYSTYPE)MACRO_FocusWindow;		return VOID_FUNCTION_STRING;
Generate		yylval = (YYSTYPE)MACRO_Generate;		return VOID_FUNCTION_STRING_WPARAM_LPARAM;
GotoMark		yylval = (YYSTYPE)MACRO_GotoMark;		return VOID_FUNCTION_STRING;
HelpOn			yylval = (YYSTYPE)MACRO_HelpOn;			return VOID_FUNCTION_VOID;
HelpOnTop		yylval = (YYSTYPE)MACRO_HelpOnTop;		return VOID_FUNCTION_VOID;
History			yylval = (YYSTYPE)MACRO_History;			return VOID_FUNCTION_VOID;
IfThen|IF							return IF_THEN;
IfThenElse|IE							return IF_THEN_ELSE;
InitMPrint		yylval = (YYSTYPE)MACRO_InitMPrint;		return BOOL_FUNCTION_VOID;
InsertItem		yylval = (YYSTYPE)MACRO_InsertItem;		return VOID_FUNCTION_4STRING_UINT;
InsertMenu		yylval = (YYSTYPE)MACRO_InsertMenu;		return VOID_FUNCTION_2STRING_UINT;
IsBook			yylval = (YYSTYPE)MACRO_IsBook;			return BOOL_FUNCTION_VOID;
IsMark			yylval = (YYSTYPE)MACRO_IsMark;			return BOOL_FUNCTION_STRING;
IsNotMark|NM		yylval = (YYSTYPE)MACRO_IsNotMark;		return BOOL_FUNCTION_STRING;
JumpContents		yylval = (YYSTYPE)MACRO_JumpContents;		return VOID_FUNCTION_FILE_WIN;
JumpContext|JC		yylval = (YYSTYPE)MACRO_JumpContext;		return VOID_FUNCTION_FILE_WIN_UINT;
JumpHash|JH		yylval = (YYSTYPE)MACRO_JumpHash;		return VOID_FUNCTION_FILE_WIN_UINT;
JumpHelpOn		yylval = (YYSTYPE)MACRO_JumpHelpOn;		return VOID_FUNCTION_VOID;
JumpID|JI		yylval = (YYSTYPE)MACRO_JumpID;			return VOID_FUNCTION_FILE_WIN_STRING;
JumpKeyword|JK		yylval = (YYSTYPE)MACRO_JumpKeyword;		return VOID_FUNCTION_FILE_WIN_STRING;
KLink|KL		yylval = (YYSTYPE)MACRO_KLink;			return VOID_FUNCTION_STRING_UINT_2STRING;
Menu|MU			yylval = (YYSTYPE)MACRO_Menu;			return VOID_FUNCTION_VOID;
MPrintHash		yylval = (YYSTYPE)MACRO_MPrintHash;		return VOID_FUNCTION_UINT;
MPrintID		yylval = (YYSTYPE)MACRO_MPrintID;		return VOID_FUNCTION_STRING;
Next			yylval = (YYSTYPE)MACRO_Next;			return VOID_FUNCTION_VOID;
NoShow			yylval = (YYSTYPE)MACRO_NoShow;			return VOID_FUNCTION_VOID;
Not								return NOT;
PopupContext|PC		yylval = (YYSTYPE)MACRO_PopupContext;		return VOID_FUNCTION_STRING_UINT;
PopupHash		yylval = (YYSTYPE)MACRO_PopupHash;		return VOID_FUNCTION_STRING_UINT;
PopupId|PI		yylval = (YYSTYPE)MACRO_PopupId;			return VOID_FUNCTION_2STRING;
PositionWindow|PW	yylval = (YYSTYPE)MACRO_PositionWindow;		return VOID_FUNCTION_2INT_3UINT_STRING;
Prev			yylval = (YYSTYPE)MACRO_Prev;			return VOID_FUNCTION_VOID;
Print			yylval = (YYSTYPE)MACRO_Print;			return VOID_FUNCTION_VOID;
PrinterSetup		yylval = (YYSTYPE)MACRO_PrinterSetup;		return VOID_FUNCTION_VOID;
RegisterRoutine|RR	yylval = (YYSTYPE)MACRO_RegisterRoutine;		return VOID_FUNCTION_3STRING;
RemoveAccelerator|RA	yylval = (YYSTYPE)MACRO_RemoveAccelerator;	return VOID_FUNCTION_2UINT;
ResetMenu		yylval = (YYSTYPE)MACRO_ResetMenu;		return VOID_FUNCTION_VOID;
SaveMark		yylval = (YYSTYPE)MACRO_SaveMark;		return VOID_FUNCTION_STRING;
Search			yylval = (YYSTYPE)MACRO_Search;			return VOID_FUNCTION_VOID;
SetContents		yylval = (YYSTYPE)MACRO_SetContents;		return VOID_FUNCTION_STRING_UINT;
SetHelpOnFile		yylval = (YYSTYPE)MACRO_SetHelpOnFile;		return VOID_FUNCTION_STRING;
SetPopupColor|SPC	yylval = (YYSTYPE)MACRO_SetPopupColor;		return VOID_FUNCTION_3UINT;
ShellExecute|SE		yylval = (YYSTYPE)MACRO_ShellExecute;		return VOID_FUNCTION_2STRING_2UINT_2STRING;
ShortCut|SH		yylval = (YYSTYPE)MACRO_ShortCut;		return VOID_FUNCTION_2STRING_WPARAM_LPARAM_STRING;
TCard			yylval = (YYSTYPE)MACRO_TCard;			return VOID_FUNCTION_UINT;
Test			yylval = (YYSTYPE)MACRO_Test;			return VOID_FUNCTION_UINT;
TestALink		yylval = (YYSTYPE)MACRO_TestALink;		return BOOL_FUNCTION_STRING;
TestKLink		yylval = (YYSTYPE)MACRO_TestKLink;		return BOOL_FUNCTION_STRING;
UncheckItem|UI		yylval = (YYSTYPE)MACRO_UncheckItem;		return VOID_FUNCTION_STRING;
UpdateWindow|UW		yylval = (YYSTYPE)MACRO_UpdateWindow;		return VOID_FUNCTION_2STRING;

[-+]?[0-9]+		yylval.integer = strtol(yytext, NULL, 10);	return INTEGER;
[-+]?0[xX][0-9a-f]+	yylval.integer = strtol(yytext, NULL, 16);	return INTEGER;

\`			|
\"			{
  			  if (!hStringBuffer)
			    {
			      hStringBuffer = GlobalAlloc(GMEM_FIXED, strlen(macroptr));
			      strptr = GlobalLock(hStringBuffer);
			    }
			  yylval = (YYSTYPE)strptr;
			  BEGIN (yytext[0] == '`' ? quote : dquote);
			}

<quote>\`		{
			  *strptr++ = yytext[0];
			  nested_quotes++;
			}

<quote>\'		|
<dquote>\"		{
			  if (nested_quotes)
			    {
			      nested_quotes--;
			      *strptr++ = yytext[0];
			    }
			  else
			    {
			      BEGIN INITIAL;
			      *strptr++ = '\0';
			      return tSTRING;
			    }
			}

<quote,dquote>.		*strptr++ = yytext[0];
<quote,dquote>\\.	*strptr++ = yytext[1];

<quote,dquote><<EOF>>	return 0;


" "

.			return yytext[0];
%%
#include "winhelp.h"
static CHAR szTestMacro[256];

static LRESULT MACRO_TestDialogProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
  if (msg == WM_COMMAND && wParam == IDOK)
    {
      GetDlgItemText(hDlg, 99, szTestMacro, sizeof(szTestMacro));
      EndDialog(hDlg, IDOK);
      return TRUE;
    }
  return FALSE;
}

VOID MACRO_ExecuteMacro(LPCSTR macro)
{
  if (!lstrcmpi(macro, "MacroTest"))
    {
      WNDPROC lpfnDlg = MakeProcInstance(MACRO_TestDialogProc, Globals.hInstance);
      DialogBox(Globals.hInstance, STRING_DIALOG_TEST, Globals.active_win->hMainWnd, lpfnDlg);
      FreeProcInstance(lpfnDlg);
      macro = szTestMacro;
    }

  macroptr = macro;

  yyparse();

  if (hStringBuffer) GlobalFree(hStringBuffer);
  hStringBuffer = 0;
}

void yyerror (const char *s)
{
  fprintf(stderr, "%s\n", s);
  nested_quotes = 0;
  BEGIN INITIAL;
  yyrestart(yyin);
}

#ifndef yywrap
int yywrap(void) { return 1; }
#endif