зеркало из https://github.com/mozilla/pjs.git
invoke -> typelib
This commit is contained in:
Родитель
fc2ee43b44
Коммит
1da68bbc4d
|
@ -28,7 +28,7 @@ CSRCS = \
|
||||||
xpidl.c \
|
xpidl.c \
|
||||||
xpidl_idl.c \
|
xpidl_idl.c \
|
||||||
xpidl_header.c \
|
xpidl_header.c \
|
||||||
xpidl_invoke.c \
|
xpidl_typelib.c \
|
||||||
xpidl_doc.c \
|
xpidl_doc.c \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
|
|
|
@ -26,13 +26,13 @@ gboolean enable_debug = FALSE;
|
||||||
gboolean enable_warnings = FALSE;
|
gboolean enable_warnings = FALSE;
|
||||||
gboolean verbose_mode = FALSE;
|
gboolean verbose_mode = FALSE;
|
||||||
gboolean generate_docs = FALSE;
|
gboolean generate_docs = FALSE;
|
||||||
gboolean generate_invoke = FALSE;
|
gboolean generate_typelib = FALSE;
|
||||||
gboolean generate_headers = FALSE;
|
gboolean generate_headers = FALSE;
|
||||||
gboolean generate_nothing = FALSE;
|
gboolean generate_nothing = FALSE;
|
||||||
|
|
||||||
static char xpidl_usage_str[] =
|
static char xpidl_usage_str[] =
|
||||||
"Usage: %s [-i] [-d] [-h] [-w] [-v] [-I path] [-n] [-o basename] filename.idl\n"
|
"Usage: %s [-t] [-d] [-h] [-w] [-v] [-I path] [-n] [-o basename] filename.idl\n"
|
||||||
" -i generate InterfaceInfo data (filename.int) (NYI)\n"
|
" -t generate typelib data (filename.xpt) (NYI)\n"
|
||||||
" -d generate HTML documentation (filename.html) (NYI)\n"
|
" -d generate HTML documentation (filename.html) (NYI)\n"
|
||||||
" -h generate C++ headers (filename.h)\n"
|
" -h generate C++ headers (filename.h)\n"
|
||||||
" -w turn on warnings (recommended)\n"
|
" -w turn on warnings (recommended)\n"
|
||||||
|
@ -68,12 +68,12 @@ main(int argc, char *argv[])
|
||||||
case 'd':
|
case 'd':
|
||||||
generate_docs = TRUE;
|
generate_docs = TRUE;
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 't':
|
||||||
generate_invoke = TRUE;
|
generate_typelib = TRUE;
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
generate_headers = TRUE;
|
generate_headers = TRUE;
|
||||||
break;
|
break;
|
||||||
case 'w':
|
case 'w':
|
||||||
enable_warnings = TRUE;
|
enable_warnings = TRUE;
|
||||||
break;
|
break;
|
||||||
|
@ -114,8 +114,8 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(generate_docs || generate_invoke || generate_headers)) {
|
if (!(generate_docs || generate_typelib || generate_headers)) {
|
||||||
fprintf(stderr, "ERROR: must specify one of -i, -d, -h\n");
|
fprintf(stderr, "ERROR: must specify one of -t, -d, -h\n");
|
||||||
xpidl_usage(argc, argv);
|
xpidl_usage(argc, argv);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ extern gboolean enable_debug;
|
||||||
extern gboolean enable_warnings;
|
extern gboolean enable_warnings;
|
||||||
extern gboolean verbose_mode;
|
extern gboolean verbose_mode;
|
||||||
extern gboolean generate_docs;
|
extern gboolean generate_docs;
|
||||||
extern gboolean generate_invoke;
|
extern gboolean generate_typelib;
|
||||||
extern gboolean generate_headers;
|
extern gboolean generate_headers;
|
||||||
extern gboolean generate_nothing;
|
extern gboolean generate_nothing;
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ typedef struct {
|
||||||
} TreeState;
|
} TreeState;
|
||||||
|
|
||||||
#define TREESTATE_HEADER 0
|
#define TREESTATE_HEADER 0
|
||||||
#define TREESTATE_INVOKE 1
|
#define TREESTATE_TYPELIB 1
|
||||||
#define TREESTATE_DOC 2
|
#define TREESTATE_DOC 2
|
||||||
#define TREESTATE_NUM 3
|
#define TREESTATE_NUM 3
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ typedef gboolean (*nodeHandler)(TreeState *);
|
||||||
extern nodeHandler *nodeDispatch[TREESTATE_NUM];
|
extern nodeHandler *nodeDispatch[TREESTATE_NUM];
|
||||||
|
|
||||||
extern nodeHandler *headerDispatch();
|
extern nodeHandler *headerDispatch();
|
||||||
extern nodeHandler *invokeDispatch();
|
extern nodeHandler *typelibDispatch();
|
||||||
extern nodeHandler *docDispatch();
|
extern nodeHandler *docDispatch();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include "xpidl.h"
|
#include "xpidl.h"
|
||||||
|
|
||||||
FILE *typelib_file = NULL;
|
FILE *typelib_file = NULL;
|
||||||
FILE *invoke_file = NULL;
|
FILE *doc_file = NULL;
|
||||||
FILE *header_file = NULL;
|
FILE *header_file = NULL;
|
||||||
|
|
||||||
nodeHandler *nodeDispatch[TREESTATE_NUM] = { NULL };
|
nodeHandler *nodeDispatch[TREESTATE_NUM] = { NULL };
|
||||||
|
@ -466,7 +466,7 @@ xpidl_process_idl(char *filename, IncludePathEntry *include_path,
|
||||||
state.includes = stack.includes;
|
state.includes = stack.includes;
|
||||||
state.include_path = include_path;
|
state.include_path = include_path;
|
||||||
nodeDispatch[TREESTATE_HEADER] = headerDispatch();
|
nodeDispatch[TREESTATE_HEADER] = headerDispatch();
|
||||||
nodeDispatch[TREESTATE_INVOKE] = invokeDispatch();
|
nodeDispatch[TREESTATE_TYPELIB] = typelibDispatch();
|
||||||
nodeDispatch[TREESTATE_DOC] = docDispatch();
|
nodeDispatch[TREESTATE_DOC] = docDispatch();
|
||||||
if (generate_headers) {
|
if (generate_headers) {
|
||||||
if (strcmp(basename, "-")) {
|
if (strcmp(basename, "-")) {
|
||||||
|
@ -489,8 +489,8 @@ xpidl_process_idl(char *filename, IncludePathEntry *include_path,
|
||||||
if (!ok)
|
if (!ok)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (generate_invoke) {
|
if (generate_typelib) {
|
||||||
state.mode = TREESTATE_INVOKE;
|
state.mode = TREESTATE_TYPELIB;
|
||||||
state.tree = top;
|
state.tree = top;
|
||||||
if (!process_tree(&state))
|
if (!process_tree(&state))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||||
|
/*
|
||||||
|
* The contents of this file are subject to the Netscape Public License
|
||||||
|
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||||
|
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||||
|
* http://www.mozilla.org/NPL/
|
||||||
|
*
|
||||||
|
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||||
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||||
|
* for the specific language governing rights and limitations under the
|
||||||
|
* NPL.
|
||||||
|
*
|
||||||
|
* The Initial Developer of this code under the NPL is Netscape
|
||||||
|
* Communications Corporation. Portions created by Netscape are
|
||||||
|
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||||
|
* Reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Generate typelib files for use with InterfaceInfo.
|
||||||
|
* http://www.mozilla.org/scriptable/typelib_file.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "xpidl.h"
|
||||||
|
|
||||||
|
nodeHandler *typelibDispatch()
|
||||||
|
{
|
||||||
|
static nodeHandler table[IDLN_LAST];
|
||||||
|
static gboolean initialized = FALSE;
|
||||||
|
|
||||||
|
if (!initialized) {
|
||||||
|
/* Initialize non-NULL elements */
|
||||||
|
initialized = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return table;
|
||||||
|
}
|
|
@ -28,7 +28,7 @@ CSRCS = \
|
||||||
xpidl.c \
|
xpidl.c \
|
||||||
xpidl_idl.c \
|
xpidl_idl.c \
|
||||||
xpidl_header.c \
|
xpidl_header.c \
|
||||||
xpidl_invoke.c \
|
xpidl_typelib.c \
|
||||||
xpidl_doc.c \
|
xpidl_doc.c \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
|
|
|
@ -26,13 +26,13 @@ gboolean enable_debug = FALSE;
|
||||||
gboolean enable_warnings = FALSE;
|
gboolean enable_warnings = FALSE;
|
||||||
gboolean verbose_mode = FALSE;
|
gboolean verbose_mode = FALSE;
|
||||||
gboolean generate_docs = FALSE;
|
gboolean generate_docs = FALSE;
|
||||||
gboolean generate_invoke = FALSE;
|
gboolean generate_typelib = FALSE;
|
||||||
gboolean generate_headers = FALSE;
|
gboolean generate_headers = FALSE;
|
||||||
gboolean generate_nothing = FALSE;
|
gboolean generate_nothing = FALSE;
|
||||||
|
|
||||||
static char xpidl_usage_str[] =
|
static char xpidl_usage_str[] =
|
||||||
"Usage: %s [-i] [-d] [-h] [-w] [-v] [-I path] [-n] [-o basename] filename.idl\n"
|
"Usage: %s [-t] [-d] [-h] [-w] [-v] [-I path] [-n] [-o basename] filename.idl\n"
|
||||||
" -i generate InterfaceInfo data (filename.int) (NYI)\n"
|
" -t generate typelib data (filename.xpt) (NYI)\n"
|
||||||
" -d generate HTML documentation (filename.html) (NYI)\n"
|
" -d generate HTML documentation (filename.html) (NYI)\n"
|
||||||
" -h generate C++ headers (filename.h)\n"
|
" -h generate C++ headers (filename.h)\n"
|
||||||
" -w turn on warnings (recommended)\n"
|
" -w turn on warnings (recommended)\n"
|
||||||
|
@ -68,12 +68,12 @@ main(int argc, char *argv[])
|
||||||
case 'd':
|
case 'd':
|
||||||
generate_docs = TRUE;
|
generate_docs = TRUE;
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 't':
|
||||||
generate_invoke = TRUE;
|
generate_typelib = TRUE;
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
generate_headers = TRUE;
|
generate_headers = TRUE;
|
||||||
break;
|
break;
|
||||||
case 'w':
|
case 'w':
|
||||||
enable_warnings = TRUE;
|
enable_warnings = TRUE;
|
||||||
break;
|
break;
|
||||||
|
@ -114,8 +114,8 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(generate_docs || generate_invoke || generate_headers)) {
|
if (!(generate_docs || generate_typelib || generate_headers)) {
|
||||||
fprintf(stderr, "ERROR: must specify one of -i, -d, -h\n");
|
fprintf(stderr, "ERROR: must specify one of -t, -d, -h\n");
|
||||||
xpidl_usage(argc, argv);
|
xpidl_usage(argc, argv);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ extern gboolean enable_debug;
|
||||||
extern gboolean enable_warnings;
|
extern gboolean enable_warnings;
|
||||||
extern gboolean verbose_mode;
|
extern gboolean verbose_mode;
|
||||||
extern gboolean generate_docs;
|
extern gboolean generate_docs;
|
||||||
extern gboolean generate_invoke;
|
extern gboolean generate_typelib;
|
||||||
extern gboolean generate_headers;
|
extern gboolean generate_headers;
|
||||||
extern gboolean generate_nothing;
|
extern gboolean generate_nothing;
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ typedef struct {
|
||||||
} TreeState;
|
} TreeState;
|
||||||
|
|
||||||
#define TREESTATE_HEADER 0
|
#define TREESTATE_HEADER 0
|
||||||
#define TREESTATE_INVOKE 1
|
#define TREESTATE_TYPELIB 1
|
||||||
#define TREESTATE_DOC 2
|
#define TREESTATE_DOC 2
|
||||||
#define TREESTATE_NUM 3
|
#define TREESTATE_NUM 3
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ typedef gboolean (*nodeHandler)(TreeState *);
|
||||||
extern nodeHandler *nodeDispatch[TREESTATE_NUM];
|
extern nodeHandler *nodeDispatch[TREESTATE_NUM];
|
||||||
|
|
||||||
extern nodeHandler *headerDispatch();
|
extern nodeHandler *headerDispatch();
|
||||||
extern nodeHandler *invokeDispatch();
|
extern nodeHandler *typelibDispatch();
|
||||||
extern nodeHandler *docDispatch();
|
extern nodeHandler *docDispatch();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include "xpidl.h"
|
#include "xpidl.h"
|
||||||
|
|
||||||
FILE *typelib_file = NULL;
|
FILE *typelib_file = NULL;
|
||||||
FILE *invoke_file = NULL;
|
FILE *doc_file = NULL;
|
||||||
FILE *header_file = NULL;
|
FILE *header_file = NULL;
|
||||||
|
|
||||||
nodeHandler *nodeDispatch[TREESTATE_NUM] = { NULL };
|
nodeHandler *nodeDispatch[TREESTATE_NUM] = { NULL };
|
||||||
|
@ -466,7 +466,7 @@ xpidl_process_idl(char *filename, IncludePathEntry *include_path,
|
||||||
state.includes = stack.includes;
|
state.includes = stack.includes;
|
||||||
state.include_path = include_path;
|
state.include_path = include_path;
|
||||||
nodeDispatch[TREESTATE_HEADER] = headerDispatch();
|
nodeDispatch[TREESTATE_HEADER] = headerDispatch();
|
||||||
nodeDispatch[TREESTATE_INVOKE] = invokeDispatch();
|
nodeDispatch[TREESTATE_TYPELIB] = typelibDispatch();
|
||||||
nodeDispatch[TREESTATE_DOC] = docDispatch();
|
nodeDispatch[TREESTATE_DOC] = docDispatch();
|
||||||
if (generate_headers) {
|
if (generate_headers) {
|
||||||
if (strcmp(basename, "-")) {
|
if (strcmp(basename, "-")) {
|
||||||
|
@ -489,8 +489,8 @@ xpidl_process_idl(char *filename, IncludePathEntry *include_path,
|
||||||
if (!ok)
|
if (!ok)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (generate_invoke) {
|
if (generate_typelib) {
|
||||||
state.mode = TREESTATE_INVOKE;
|
state.mode = TREESTATE_TYPELIB;
|
||||||
state.tree = top;
|
state.tree = top;
|
||||||
if (!process_tree(&state))
|
if (!process_tree(&state))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||||
|
/*
|
||||||
|
* The contents of this file are subject to the Netscape Public License
|
||||||
|
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||||
|
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||||
|
* http://www.mozilla.org/NPL/
|
||||||
|
*
|
||||||
|
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||||
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||||
|
* for the specific language governing rights and limitations under the
|
||||||
|
* NPL.
|
||||||
|
*
|
||||||
|
* The Initial Developer of this code under the NPL is Netscape
|
||||||
|
* Communications Corporation. Portions created by Netscape are
|
||||||
|
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||||
|
* Reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Generate typelib files for use with InterfaceInfo.
|
||||||
|
* http://www.mozilla.org/scriptable/typelib_file.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "xpidl.h"
|
||||||
|
|
||||||
|
nodeHandler *typelibDispatch()
|
||||||
|
{
|
||||||
|
static nodeHandler table[IDLN_LAST];
|
||||||
|
static gboolean initialized = FALSE;
|
||||||
|
|
||||||
|
if (!initialized) {
|
||||||
|
/* Initialize non-NULL elements */
|
||||||
|
initialized = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return table;
|
||||||
|
}
|
Загрузка…
Ссылка в новой задаче