2 * Copyright (c) 2020, Masatake YAMATO
3 * Copyright (c) 2020, Red Hat, Inc.
5 * This source code is released for free distribution under the terms of the
6 * GNU General Public License version 2 or (at your option) any later version.
8 * This module contains ctags specific optscript objects
11 #ifndef CTAGS_MAIN_SCRIPT_PRIVATE_H
12 #define CTAGS_MAIN_SCRIPT_PRIVATE_H
14 #include "general.h" /* must always come first */
16 #include "optscript.h"
19 struct optscriptOperatorRegistration
{
25 extern void optscriptRegisterOperators(EsObject
* dict
,
26 struct optscriptOperatorRegistration regs
[], size_t count
);
28 extern EsObject
*OPTSCRIPT_ERR_NOTAGENTRY
;
29 extern EsObject
*OPTSCRIPT_ERR_UNKNOWNLANGUAGE
;
30 extern EsObject
*OPTSCRIPT_ERR_UNKNOWNEXTRA
;
32 extern OptVM
*optscriptInit (void);
34 extern void optscriptInstallProcs (EsObject
*dict
, OptOperatorFn matchResultAccessor
);
36 extern void optscriptSetup (OptVM
*vm
, EsObject
*dict
, int corkIndex
);
37 extern void optscriptTeardown (OptVM
*vm
, EsObject
*dict
);
39 /* If len is 0, strlen (src) is used instead of 0. */
40 extern EsObject
*optscriptRead (OptVM
*vm
, const char *src
, size_t len
);
41 extern EsObject
*optscriptEval (OptVM
*vm
, EsObject
*code
);
42 extern EsObject
*optscriptDefine (EsObject
*dict
, const char *name
, EsObject
*obj
);
44 extern EsObject
*optscriptReadAndEval (OptVM
*vm
, const char *src
, size_t len
);
45 extern EsObject
*optscriptReadAndDefine (OptVM
*vm
, EsObject
*dict
, const char *name
,
46 const char *src
, size_t len
);
48 extern EsObject
*optscriptLoad (OptVM
*vm
, MIO
*mio
);
50 extern void optscriptHelp (OptVM
*vm
, FILE *fp
, EsObject
*procdocs
);
52 extern xtagType
optscriptGetXtagType (const EsObject
*extra
);
55 unsigned long delta
; /* for _advanceto operator */
59 extern int OPT_TYPE_MATCHLOC
;
61 extern int OPT_TYPE_TAG
;
62 #endif /* CTAGS_MAIN_SCRIPT_PRIVATE_H */