26#define SCOPE_SEPARATOR "::"
29#define ACCESS_UNDEFINED NULL
45 {
true,
'f',
"function",
"functions" },
46 {
true,
'v',
"variable",
"variables" }
187 return (isalnum (c) || c ==
':' || c ==
'_' || c ==
'-' || c >= 0x80);
198 else if (c == EOF || c == delimiter)
224 return (c ==
'\t' || c ==
' ' || c ==
'\v' ||
225 c ==
'\n' || c ==
'\r' || c ==
'\f');
249 }
while (c != EOF && c !=
'\n' && c !=
'\r');
369 const vString *
const extraScope,
370 const int parentKind);
377 const char *powershellScopeEnd;
379 powershellScopeEnd = strchr (tokenName,
':');
380 if (powershellScopeEnd)
382 size_t powershellScopeLen;
385 powershellScopeLen = (size_t)(powershellScopeEnd - tokenName);
387 vStringNCopyS (powershellScope, tokenName, powershellScopeLen);
410 bool readNext =
true;
514 bool readNext =
true;
539 const vString *
const extraScope,
540 const int parentKind)
557 bool readNext =
true;
600 static const char *
const extensions [] = {
"ps1",
"psm1",
NULL };
int makeTagEntry(const tagEntryInfo *const tag)
void initTagEntry(tagEntryInfo *const e, const char *const name, int kindIndex)
unsigned long int lineNumber
static const char * parsePowerShellScope(tokenInfo *const token)
static void enterScope(tokenInfo *const parentToken, const vString *const extraScope, const int parentKind)
static int skipSingleComment(void)
static void makeSimplePowerShellTag(const tokenInfo *const token, const powerShellKind kind, const char *const access)
static tokenInfo * newToken(void)
static bool isTokenFunction(vString *const name)
static void makeFunctionTag(const tokenInfo *const token, const vString *const arglist, const char *const access)
static kindDefinition PowerShellKinds[COUNT_KIND]
parserDefinition * PowerShellParser(void)
static int skipWhitespaces(int c)
static void deleteToken(tokenInfo *const token)
enum eTokenType tokenType
static void findPowerShellTags(void)
static const char *const accessTypes[]
static void addToScope(tokenInfo *const token, const vString *const extra)
static void copyToken(tokenInfo *const dest, const tokenInfo *const src, bool scope)
static void parseString(vString *const string, const int delimiter)
static const char * findValidAccessType(const char *const access)
static void parseIdentifier(vString *const string, const int firstChar)
static bool parseVariable(tokenInfo *const token)
static bool parseFunction(tokenInfo *const token)
static bool isIdentChar(const int c)
static bool isSpace(int c)
static void initPowerShellEntry(tagEntryInfo *const e, const tokenInfo *const token, const powerShellKind kind, const char *const access)
static void readToken(tokenInfo *const token)
#define strcasecmp(s1, s2)
parserDefinition * parserNew(const char *name)
unsigned long getInputLineNumber(void)
int getcFromInputFile(void)
MIOPos getInputFilePosition(void)
void ungetcToInputFile(int c)
int skipToCharacterInInputFile(int c)
void eFree(void *const ptr)
const char *const * extensions
kindDefinition * kindTable
struct sTagEntryInfo::@3 extensionFields
struct sTokenInfo tokenInfo
vString * vStringNew(void)
void vStringDelete(vString *const string)
void vStringNCopyS(vString *const string, const char *const s, const size_t length)
void vStringCatS(vString *const string, const char *const s)
void vStringCat(vString *const string, const vString *const s)
void vStringCopy(vString *const string, const vString *const s)
#define vStringClear(string)
#define vStringLength(vs)
static void vStringPut(vString *const string, const int c)