WsParser_VS/libSyntax/ast_gen.h

39 lines
873 B
C
Raw Normal View History

2024-03-17 07:58:28 +00:00
#pragma once
2025-02-07 15:26:20 +00:00
#include "libsyntax.h"
2024-03-17 07:58:28 +00:00
#include "ast_basic.h"
2025-02-07 15:26:20 +00:00
namespace ast_gen {
2024-03-17 07:58:28 +00:00
/**
2025-02-07 15:26:20 +00:00
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
2025-02-08 01:06:39 +00:00
class LIBSYNTAX_EXPORT SyntaxParser {
2024-03-17 07:58:28 +00:00
private:
2025-02-08 05:40:36 +00:00
std::shared_ptr<const lib_syntax::IBasicRule> _rule_bind = nullptr;
2024-03-17 07:58:28 +00:00
public:
2025-02-08 05:40:36 +00:00
SyntaxParser(std::shared_ptr<const lib_syntax::IBasicRule> rule);
2024-03-17 07:58:28 +00:00
/**
2025-02-07 15:26:20 +00:00
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򣬽<EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param wods Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><EFBFBD><EFBFBD>
*/
2025-02-08 05:40:36 +00:00
QList<std::shared_ptr<const lib_syntax::MatchCursor>> parse(std::shared_ptr<const lib_words::IPrimitiveWord> words);
2025-02-07 15:26:20 +00:00
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param cursor <EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>
* @param root <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD>Ԥ<EFBFBD>Ƹ<EFBFBD><EFBFBD>ڵ<EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD>ڵ<EFBFBD>
*/
std::shared_ptr<ast_basic::IExprInstance> getAst(
std::shared_ptr<const lib_syntax::MatchCursor> cursor, std::shared_ptr<ast_basic::IExprInstance> root);
2024-03-17 07:58:28 +00:00
};
2024-03-17 07:58:28 +00:00
}