introduce new --dump-builtin-symbols command line

add corresponding EShMsgBuiltinSymbolTable
TSymbol::dump functions have option to do "complete" print
bugfix in TType::getCompleteString, structure can be null for block
This commit is contained in:
Christoph Kubisch 2019-04-13 22:18:16 +02:00
parent 0527c9db81
commit 55ba3eaf89
6 changed files with 82 additions and 19 deletions

View file

@ -116,7 +116,8 @@ public:
}
virtual int getNumExtensions() const { return extensions == nullptr ? 0 : (int)extensions->size(); }
virtual const char** getExtensions() const { return extensions->data(); }
virtual void dump(TInfoSink &infoSink) const = 0;
virtual void dump(TInfoSink &infoSink, bool pretty = false) const = 0;
void dumpExtensions(TInfoSink &infoSink) const;
virtual bool isReadOnly() const { return ! writable; }
virtual void makeReadOnly() { writable = false; }
@ -192,7 +193,7 @@ public:
}
virtual const char** getMemberExtensions(int member) const { return (*memberExtensions)[member].data(); }
virtual void dump(TInfoSink &infoSink) const;
virtual void dump(TInfoSink &infoSink, bool complete = false) const;
protected:
explicit TVariable(const TVariable&);
@ -313,7 +314,7 @@ public:
virtual TParameter& operator[](int i) { assert(writable); return parameters[i]; }
virtual const TParameter& operator[](int i) const { return parameters[i]; }
virtual void dump(TInfoSink &infoSink) const override;
virtual void dump(TInfoSink &infoSink, bool complete = false) const override;
protected:
explicit TFunction(const TFunction&);
@ -373,7 +374,7 @@ public:
virtual const char** getExtensions() const override { return anonContainer.getMemberExtensions(memberNumber); }
virtual int getAnonId() const { return anonId; }
virtual void dump(TInfoSink &infoSink) const override;
virtual void dump(TInfoSink &infoSink, bool complete = false) const override;
protected:
explicit TAnonMember(const TAnonMember&);
@ -541,7 +542,7 @@ public:
void relateToOperator(const char* name, TOperator op);
void setFunctionExtensions(const char* name, int num, const char* const extensions[]);
void dump(TInfoSink &infoSink) const;
void dump(TInfoSink &infoSink, bool complete = false) const;
TSymbolTableLevel* clone() const;
void readOnly();
@ -842,7 +843,7 @@ public:
}
int getMaxSymbolId() { return uniqueId; }
void dump(TInfoSink &infoSink) const;
void dump(TInfoSink &infoSink, bool complete = false) const;
void copyTable(const TSymbolTable& copyOf);
void setPreviousDefaultPrecisions(TPrecisionQualifier *p) { table[currentLevel()]->setPreviousDefaultPrecisions(p); }