|
Archeus 0.0.0
A C library and game engine that focuses on documentation
|
#include "arc/std/parser/parserlang.h"#include "arc/std/parser.h"#include "arc/std/bool.h"#include "arc/std/errno.h"#include "arc/std/io.h"#include "arc/std/lexer.h"#include "arc/std/vector.h"#include <stdint.h>#include <stdlib.h>#include <string.h>Go to the source code of this file.
Data Structures | |
| struct | ARC_Parser |
| void ARC_Parser_ClearData | ( | ARC_Parser * | parser | ) |
| [in] | parser |
Definition at line 358 of file parser.c.
References ARC_True, ARC_Parser::data, ARC_Parser::destroyDataFn, and ARC_Parser::userData.
Referenced by ARC_TEST().
| void ARC_Parser_Create | ( | ARC_Parser ** | parser, |
| ARC_Array * | language, | ||
| ARC_Parser_InitLexerRulesFn | initLexerRulesFn, | ||
| ARC_ParserData_CreateFn * | createDataFn, | ||
| ARC_ParserData_DestroyFn * | destroyDataFn, | ||
| void * | userData ) |
creates an ARC_Parser type
@TODO: fix this documentation to reflect changes
@TODO: probs want to move the note to another file
| [out] | parser | ARC_Parser to create |
| [in] | language | an arry of ARC_ParserLanguageTags defining a langauge |
| [in] | initLexerRulesFn | a callback used to initalize the token rules the lexer within the parser will use |
Definition at line 24 of file parser.c.
References ARC_Lexer_Create(), ARC_Array::data, ARC_Parser::language, ARC_Array::size, ARC_ParserTag::tagId, ARC_ParserTag::tokensOrTags, and ARC_ParserTag::tokensOrTagsSize.
Referenced by ARC_Parser_CreateFromVector(), ARC_ParserLang_CreateAsParser(), ARC_TEST(), ARC_TEST(), ARC_TEST(), and ARC_TEST().
| void ARC_Parser_CreateFromString | ( | ARC_Parser ** | parser, |
| ARC_String * | languageString, | ||
| ARC_Parser_InitLexerRulesFn | initLexerRulesFn, | ||
| ARC_Parser_GetStringIdFn | getStringIdFn, | ||
| ARC_ParserData_CreateFn * | createDataFn, | ||
| ARC_ParserData_DestroyFn * | destroyDataFn, | ||
| void * | userData ) |
creates an ARC_Parser type from a string
@TODO: probs want to move the note to another file
| [out] | parser | ARC_Parser to create |
| [in] | language | an arry of ARC_ParserLanguageTags defining a langauge |
| [in] | initLexerRulesFn | a callback used to initalize the token rules the lexer within the parser will use |
Definition at line 105 of file parser.c.
References ARC_DEBUG_LOG_ERROR_WITH_VARIABLES, arc_errno, ARC_Parser_CreateFromVector(), ARC_Parser_Destroy(), ARC_Parser_GetData(), ARC_Parser_Parse(), ARC_ParserLang_CreateAsParser(), ARC_String_Copy(), and ARC_String::data.
Referenced by ARC_ParserCSV_CreateAsParser(), and ARC_TEST().
| void ARC_Parser_CreateFromVector | ( | ARC_Parser ** | parser, |
| ARC_Vector * | language, | ||
| ARC_Parser_InitLexerRulesFn | initLexerRulesFn, | ||
| ARC_ParserData_CreateFn * | createDataFn, | ||
| ARC_ParserData_DestroyFn * | destroyDataFn, | ||
| void * | userData ) |
creates an ARC_Parser type from an arc vector
| [out] | parser | ARC_Parser to create |
| [in] | language | an vector of ARC_ParserLanguageTags defining a langauge |
| [in] | initLexerRulesFn | a callback used to initalize the token rules the lexer within the parser will use |
Definition at line 85 of file parser.c.
References ARC_Parser_Create(), ARC_Vector_Get(), ARC_Vector_GetSize(), and languageArray.
Referenced by ARC_Parser_CreateFromString(), and ARC_TEST().
| void ARC_Parser_Destroy | ( | ARC_Parser * | parser | ) |
destroys an ARC_Parser type
| [in] | parser | ARC_Parser to free |
Definition at line 127 of file parser.c.
References ARC_False, ARC_Lexer_Destroy(), ARC_Parser::createDataFn, ARC_Array::data, ARC_Parser::data, ARC_Parser::destroyDataFn, ARC_Parser::language, ARC_Parser::lexer, ARC_Array::size, ARC_ParserTag::tokensOrTags, ARC_ParserTag::tokensOrTagsSize, and ARC_Parser::userData.
Referenced by ARC_Parser_CreateFromString(), ARC_TEST(), ARC_TEST(), ARC_TEST(), ARC_TEST(), ARC_TEST(), ARC_TEST(), ARC_TEST(), ARC_TEST(), and ARC_TEST().
| void * ARC_Parser_GetData | ( | ARC_Parser * | parser | ) |
| [in] | parser |
Definition at line 368 of file parser.c.
References ARC_Parser::data.
Referenced by ARC_Parser_CreateFromString(), ARC_TEST(), ARC_TEST(), ARC_TEST(), ARC_TEST(), and ARC_TEST().
| void ARC_Parser_Parse | ( | ARC_Parser * | parser, |
| ARC_String ** | data ) |
| [in] | parser | |
| [in/out] | data the string to parse, will be freed and set to NULL by the end of this function |
Definition at line 297 of file parser.c.
References ARC_Bool, ARC_DEBUG_LOG_ERROR, ARC_DEBUG_LOG_ERROR_WITH_VARIABLES, arc_errno, ARC_ERRNO_DATA, ARC_False, ARC_Lexer_Clear(), ARC_Lexer_GetTokensSize(), ARC_Lexer_LexString(), ARC_Parser_ParseTag(), ARC_ParserTagToken_Create(), ARC_ParserTagToken_Destroy(), ARC_Parser::createDataFn, ARC_Array::data, ARC_Parser::data, ARC_Parser::language, ARC_Parser::lexer, ARC_Array::size, ARC_ParserTag::tagId, and ARC_Parser::userData.
Referenced by ARC_Parser_CreateFromString(), ARC_Parser_ParseFile(), ARC_TEST(), ARC_TEST(), ARC_TEST(), ARC_TEST(), ARC_TEST(), ARC_TEST(), ARC_TEST(), and ARC_TEST().
| void ARC_Parser_ParseFile | ( | ARC_Parser * | parser, |
| ARC_String * | path ) |
| [in] | parser | |
| [in] | language |
Definition at line 345 of file parser.c.
References ARC_DEBUG_LOG_ERROR_WITH_VARIABLES, arc_errno, ARC_ERRNO_NULL, ARC_IO_FileToStr(), ARC_Parser_Parse(), and ARC_String::data.
| ARC_Bool ARC_Parser_ParseTag | ( | ARC_Parser * | parser, |
| ARC_ParserTagToken * | tagToken, | ||
| uint32_t * | lexerIndex ) |
Definition at line 188 of file parser.c.
References ARC_Bool, ARC_DEBUG_LOG_ERROR_WITH_VARIABLES, arc_errno, ARC_ERRNO_NULL, ARC_False, ARC_Lexer_GetToken(), ARC_Lexer_GetTokensSize(), ARC_Lexer_IsTokenId(), ARC_Parser_ParseTag(), ARC_PARSER_TAG_LAMBDA, ARC_ParserTagToken_Create(), ARC_ParserTagToken_Destroy(), ARC_ParserTagToken_VectorDestroyDataFn(), ARC_True, ARC_Vector_Add(), ARC_Vector_Clear(), ARC_Vector_Create(), ARC_Vector_Destroy(), ARC_Array::data, ARC_ParserTagToken::id, ARC_Parser::language, ARC_Parser::lexer, ARC_LexerToken::rule, ARC_Array::size, ARC_ParserTag::tagId, ARC_ParserTagToken::tagTokens, ARC_ParserTagToken::token, ARC_ParserTag::tokensOrTags, and ARC_ParserTag::tokensOrTagsSize.
Referenced by ARC_Parser_Parse(), and ARC_Parser_ParseTag().
| void ARC_ParserTagToken_Create | ( | ARC_ParserTagToken ** | tagToken, |
| uint32_t | id ) |
Definition at line 163 of file parser.c.
References ARC_ParserTagToken::id.
Referenced by ARC_Parser_Parse(), and ARC_Parser_ParseTag().
| void ARC_ParserTagToken_Destroy | ( | ARC_ParserTagToken * | tagToken | ) |
Definition at line 172 of file parser.c.
References ARC_Vector_Destroy(), and ARC_ParserTagToken::tagTokens.
Referenced by ARC_Parser_Parse(), ARC_Parser_ParseTag(), and ARC_ParserTagToken_VectorDestroyDataFn().
| void ARC_ParserTagToken_VectorDestroyDataFn | ( | void * | data | ) |
Definition at line 182 of file parser.c.
References ARC_ParserTagToken_Destroy().
Referenced by ARC_Parser_ParseTag().