gwenhywfar 5.14.1
parser.h
Go to the documentation of this file.
1/***************************************************************************
2 begin : Mon Feb 08 2021
3 copyright : (C) 2021 by Martin Preuss
4 email : martin@libchipcard.de
5
6 ***************************************************************************
7 * Please see toplevel file COPYING for license details *
8 ***************************************************************************/
9
10#ifndef GWBUILD_PARSER_H
11#define GWBUILD_PARSER_H
12
15
16#include <gwenhywfar/xml.h>
17#include <gwenhywfar/db.h>
18#include <gwenhywfar/stringlist.h>
19
20
21#define GWB_PARSER_FILENAME "0BUILD"
22
23
24
25#define GWB_PARSER_SRCFILEFLAGS_ALWAYSDIST 0x00000001
26#define GWB_PARSER_SRCFILEFLAGS_ISSOURCE 0x00000002
27
28
29
30
32 GWB_CONTEXT *currentContext,
33 const char *srcDir,
34 GWB_KEYVALUEPAIR_LIST *givenOptionList);
35
36
37
38
39GWB_CONTEXT *GWB_Parser_CopyContextForSubdir(const GWB_CONTEXT *sourceContext, const char *folder);
41
42GWEN_XMLNODE *GWB_Parser_ReadBuildFile(GWENBUILD *gwbuild, const GWB_CONTEXT *currentContext, const char *fileName);
46
47typedef int (*GWB_PARSER_PARSE_ELEMENT_FN)(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode);
49
51//int GWB_Parser_ParseSetVar(GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode);
52int GWB_Parser_ParseWriteFile(GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode);
53
55 GWB_CONTEXT *currentContext,
56 GWEN_XMLNODE *xmlNode,
57 /*int alwaysDist,
58 int isSource*/
59 uint32_t fileFlags,
60 const char *defaultTypeName,
61 const char *defaultBuilder);
62
63
64void GWB_Parser_SetItemValue(GWEN_DB_NODE *db, const char *sId, const char *suffix, const char *value);
65
67
69 GWB_CONTEXT *currentContext,
70 GWBUILD_TARGETTYPE targetType,
71 const char *fileName,
72 const char *fileType,
73 const char *builderName,
74 const char *installPath);
75
76#endif
77
struct GWB_CONTEXT GWB_CONTEXT
Definition context.h:17
struct GWEN_DB_NODE GWEN_DB_NODE
Definition db.h:228
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition buffer.h:38
GWBUILD_TARGETTYPE
Definition gwenbuild.h:18
struct GWENBUILD GWENBUILD
Definition gwenbuild.h:15
GWEN_BUFFER * GWB_Parser_ReadNamedXmlDataIntoBufferAndExpand(GWEN_DB_NODE *db, GWEN_XMLNODE *xmlNode, const char *elem)
Definition parser.c:345
GWB_CONTEXT * GWB_Parser_CopyContextForTarget(const GWB_CONTEXT *sourceContext)
Definition parser.c:153
GWEN_STRINGLIST * GWB_Parser_ReadXmlDataIntoStringList(GWEN_DB_NODE *db, GWEN_XMLNODE *xmlNode, int ignoreDupes)
Definition parser.c:283
int GWB_Parser_ParseSubdirs(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode, GWB_PARSER_PARSE_ELEMENT_FN fn)
Definition parser.c:367
GWB_CONTEXT * GWB_Parser_CopyContextForSubdir(const GWB_CONTEXT *sourceContext, const char *folder)
Definition parser.c:118
int GWB_Parser_ParseWriteFile(GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
GWEN_XMLNODE * GWB_Parser_ReadBuildFile(GWENBUILD *gwbuild, const GWB_CONTEXT *currentContext, const char *fileName)
Definition parser.c:168
int GWB_Parser_ParseWellKnownElements(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *n, GWB_PARSER_PARSE_ELEMENT_FN fn)
Definition parser.c:942
GWB_TARGET * GWB_Parser_AddTargetForSourceFile(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWBUILD_TARGETTYPE targetType, const char *fileName, const char *fileType, const char *builderName, const char *installPath)
Definition parser.c:1054
GWB_PROJECT * GWB_Parser_ReadBuildTree(GWENBUILD *gwbuild, GWB_CONTEXT *currentContext, const char *srcDir, GWB_KEYVALUEPAIR_LIST *givenOptionList)
Definition parser.c:60
int GWB_Parser_ParseSourcesOrHeaders(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode, uint32_t fileFlags, const char *defaultTypeName, const char *defaultBuilder)
Definition parser.c:979
GWEN_BUFFER * GWB_Parser_ReadXmlDataIntoBufferAndExpand(GWEN_DB_NODE *db, GWEN_XMLNODE *xmlNode)
Definition parser.c:307
int GWB_Parser_ReplaceVarsBetweenAtSigns(const char *s, GWEN_BUFFER *dbuf, GWEN_DB_NODE *db)
Definition parser.c:873
void GWB_Parser_SetItemValue(GWEN_DB_NODE *db, const char *sId, const char *suffix, const char *value)
Definition parser.c:856
int(* GWB_PARSER_PARSE_ELEMENT_FN)(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
Definition parser.h:47
struct GWB_PROJECT GWB_PROJECT
Definition project.h:14
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
Definition stringlist.h:56
struct GWB_TARGET GWB_TARGET
Definition target.h:17
struct GWEN__XMLNODE GWEN_XMLNODE
Definition xml.h:156