17#ifndef __OMNETPP_NEDXML_NEDYYUTIL_H
18#define __OMNETPP_NEDXML_NEDYYUTIL_H
21#include "nedelements.h"
27ASTNode *createNedElementWithTag(ParseContext *np,
int tagcode, ASTNode *parent=
nullptr);
28ASTNode *getOrCreateNedElementWithTag(ParseContext *np,
int tagcode, ASTNode *parent);
30PropertyElement *addProperty(ParseContext *np, ASTNode *node,
const char *name);
31PropertyElement *addComponentProperty(ParseContext *np, ASTNode *node,
const char *name);
33PropertyElement *storeSourceCode(ParseContext *np, ASTNode *node, YYLoc tokenpos);
34PropertyElement *storeComponentSourceCode(ParseContext *np, ASTNode *node, YYLoc tokenpos);
35PropertyElement *setIsNetworkProperty(ParseContext *np, ASTNode *node);
37void addComment(ParseContext *np, ASTNode *node,
const char *locId,
const char *comment,
const char *defaultValue);
38void storeFileComment(ParseContext *np, ASTNode *node);
39void storeBannerComment(ParseContext *np, ASTNode *node, YYLoc tokenpos);
40void storeRightComment(ParseContext *np, ASTNode *node, YYLoc tokenpos);
41void storeTrailingComment(ParseContext *np, ASTNode *node, YYLoc tokenpos);
42void storeBannerAndRightComments(ParseContext *np, ASTNode *node, YYLoc pos);
43void storeBannerAndRightComments(ParseContext *np, ASTNode *node, YYLoc firstpos, YYLoc lastpos);
44void storeInnerComments(ParseContext *np, ASTNode *node, YYLoc pos);
46ParamElement *addParameter(ParseContext *np, ASTNode *params, YYLoc namepos);
47ParamElement *addParameter(ParseContext *np, ASTNode *params,
const char *name, YYLoc namepos);
48GateElement *addGate(ParseContext *np, ASTNode *gates, YYLoc namepos);
50void swapConnection(ASTNode *conn);
52LiteralElement *createPropertyValue(ParseContext *np, YYLoc textpos);
53LiteralElement *createLiteral(ParseContext *np,
int type, YYLoc valuepos, YYLoc textpos);
54LiteralElement *createLiteral(ParseContext *np,
int type,
const char *value,
const char *text);
55LiteralElement *createStringLiteral(ParseContext *np, YYLoc textpos);
56LiteralElement *createQuantityLiteral(ParseContext *np, YYLoc textpos);
57ASTNode *prependMinusSign(ParseContext *np, ASTNode *node);
59void addOptionalExpression(ParseContext *np, ASTNode *elem,
const char *attrname, YYLoc exprpos, ASTNode *expr);
60void addExpression(ParseContext *np, ASTNode *elem,
const char *attrname, YYLoc exprpos, ASTNode *expr);