#pragma once #include "LexAnalyzer.h" struct VmCall { enum Type { FunctionCall, Label }; CString name; Type type; std::vector arguments; CString labelReference; }; class SemAnalyzer { public: LanguageSpecifier language; std::vector texts; std::vector vmCalls; std::map usedFunctions; SemAnalyzer(); virtual ~SemAnalyzer(); void Parse(const CString& fileName, std::vector keywords); private: int ParseFunction(const CString& fileName, std::vector::iterator& iter, std::vector& args, CString& labelReference); };