|
Archeus 0.0.0
A C library and game engine that focuses on documentation
|
#include "arc/std/parser/parserlang.h"#include "arc/std/bool.h"#include "arc/std/errno.h"#include "arc/std/lexer.h"#include "arc/std/parser.h"#include "arc/std/string.h"#include "arc/std/vector.h"#include <stddef.h>#include <stdlib.h>Go to the source code of this file.
| void ARC_ParserLang_CreateAsParser | ( | ARC_Parser ** | parser, |
| ARC_Parser_GetStringIdFn | getStringIdFn ) |
creates a parser for the Parser Lang
| [out] | parser | the parser to create |
Definition at line 324 of file parserlang.c.
References ARC_Parser_Create(), ARC_PARSERLANG_ALPHA_CHAR, ARC_PARSERLANG_ARGUMENT, ARC_PARSERLANG_ARGUMENTS, ARC_PARSERLANG_BODY, ARC_PARSERLANG_CONSTANT, ARC_PARSERLANG_CONSTANT_BODY, ARC_PARSERLANG_CONSTANT_CHAR, ARC_ParserLang_CreateDataFn(), ARC_ParserLang_DestroyDataFn(), ARC_ParserLang_InitLexerRulesFn(), ARC_PARSERLANG_LAMBDA, ARC_PARSERLANG_LINE, ARC_PARSERLANG_TAG, ARC_PARSERLANG_TAG_OR_CONSTANT, ARC_PARSERLANG_TOKEN_ALPHA_LOWER_CHAR, ARC_PARSERLANG_TOKEN_ALPHA_UPPER_CHAR, ARC_PARSERLANG_TOKEN_ARROW_ID, ARC_PARSERLANG_TOKEN_GREATER_THAN_ID, ARC_PARSERLANG_TOKEN_LESS_THAN_ID, ARC_PARSERLANG_TOKEN_NEWLINE_ID, ARC_PARSERLANG_TOKEN_NUMBER, ARC_PARSERLANG_TOKEN_OR_ID, ARC_PARSERLANG_TOKEN_UNDERSCORE_ID, ARC_PARSERLANG_TOKEN_WHITESPACE, ARC_PARSERLANG_VARIABLE, ARC_PARSERLANG_VARIABLE_BODY, ARC_PARSERLANG_VARIABLE_CHAR, and ARC_PARSERLANG_WHITESPACE.
Referenced by ARC_Parser_CreateFromString().
| void ARC_ParserLang_CreateDataFn | ( | void ** | data, |
| ARC_ParserTagToken * | parsedData, | ||
| void * | userData ) |
Definition at line 286 of file parserlang.c.
References ARC_DEBUG_LOG_ERROR, arc_errno, ARC_ERRNO_NULL, ARC_ParserLang_VectorDestroyParserTagFn(), ARC_ParserLangParsedData_RunLineTag(), ARC_Vector_Create(), and ARC_ParserTagToken::tagTokens.
Referenced by ARC_ParserLang_CreateAsParser().
| void ARC_ParserLang_DestroyDataFn | ( | void * | data, |
| ARC_Bool | clear, | ||
| void * | userData ) |
Definition at line 312 of file parserlang.c.
References ARC_False, and ARC_Vector_Destroy().
Referenced by ARC_ParserLang_CreateAsParser().
| void ARC_ParserLang_InitLexerRulesFn | ( | ARC_Lexer * | lexer | ) |
Definition at line 12 of file parserlang.c.
References ARC_Lexer_RegisterTokenRule(), ARC_LEXER_TOKEN_WHITESPACE, ARC_LexerTokenRule_CreateAndReturnMatchCharInStringRule(), ARC_LexerTokenRule_CreateAndReturnMatchCharOrBetween(), ARC_LexerTokenRule_CreateAndReturnMatchCharRule(), ARC_LexerTokenRule_CreateAndReturnMatchStringRule(), ARC_PARSERLANG_TOKEN_ALPHA_LOWER_CHAR, ARC_PARSERLANG_TOKEN_ALPHA_UPPER_CHAR, ARC_PARSERLANG_TOKEN_ARROW_CSTRING, ARC_PARSERLANG_TOKEN_ARROW_ID, ARC_PARSERLANG_TOKEN_GREATER_THAN_CHAR, ARC_PARSERLANG_TOKEN_GREATER_THAN_ID, ARC_PARSERLANG_TOKEN_LESS_THAN_CHAR, ARC_PARSERLANG_TOKEN_LESS_THAN_ID, ARC_PARSERLANG_TOKEN_NEWLINE_CHAR, ARC_PARSERLANG_TOKEN_NEWLINE_ID, ARC_PARSERLANG_TOKEN_NULL, ARC_PARSERLANG_TOKEN_NUMBER, ARC_PARSERLANG_TOKEN_OR_CHAR, ARC_PARSERLANG_TOKEN_OR_ID, ARC_PARSERLANG_TOKEN_UNDERSCORE_CHAR, ARC_PARSERLANG_TOKEN_UNDERSCORE_ID, ARC_String_CreateWithStrlen(), and ARC_String_Destroy().
Referenced by ARC_ParserLang_CreateAsParser().
| void ARC_ParserLang_VectorDestroyParserTagFn | ( | void * | data | ) |
Definition at line 53 of file parserlang.c.
References ARC_ParserTag::tokensOrTags, and ARC_ParserTag::tokensOrTagsSize.
Referenced by ARC_ParserLang_CreateDataFn().
| void ARC_ParserLang_VectorDestroyUInt32Fn | ( | void * | data | ) |
Definition at line 48 of file parserlang.c.
Referenced by ARC_ParserLangParsedData_CreateBodyTag(), and ARC_ParserLangParsedData_GetArgumentsTag().
| void ARC_ParserLang_VectorDestroyVectorFn | ( | void * | data | ) |
Definition at line 43 of file parserlang.c.
References ARC_Vector_Destroy().
Referenced by ARC_ParserLangParsedData_CreateBodyTag().
| void ARC_ParserLangParsedData_CreateBodyTag | ( | ARC_ParserTag ** | tag, |
| ARC_ParserTagToken * | tagToken, | ||
| ARC_Parser_GetStringIdFn * | getStringIdFn ) |
Definition at line 196 of file parserlang.c.
References ARC_ParserLang_VectorDestroyUInt32Fn(), ARC_ParserLang_VectorDestroyVectorFn(), ARC_ParserLangParsedData_CreateTagString(), ARC_ParserLangParsedData_GetArgumentsTag(), ARC_String_Destroy(), ARC_Vector_Add(), ARC_Vector_Create(), ARC_Vector_Destroy(), ARC_Vector_Get(), ARC_Vector_GetSize(), ARC_ParserTag::tagId, ARC_ParserTagToken::tagTokens, ARC_ParserTag::tokensOrTags, and ARC_ParserTag::tokensOrTagsSize.
Referenced by ARC_ParserLangParsedData_RunLineTag().
| void ARC_ParserLangParsedData_CreateTagString | ( | ARC_String ** | tagString, |
| ARC_ParserTagToken * | tagToken ) |
Definition at line 104 of file parserlang.c.
References ARC_ParserLangParsedData_RecurseStringAdd(), ARC_String_Create(), ARC_Vector_Get(), ARC_Vector_GetSize(), and ARC_ParserTagToken::tagTokens.
Referenced by ARC_ParserLangParsedData_CreateBodyTag().
| void ARC_ParserLangParsedData_GetArgumentsTag | ( | ARC_Vector * | tokensOrTags, |
| ARC_ParserTagToken * | tagToken, | ||
| ARC_Parser_GetStringIdFn * | getStringIdFn ) |
Definition at line 157 of file parserlang.c.
References ARC_PARSERLANG_ARGUMENT, ARC_PARSERLANG_ARGUMENTS, ARC_PARSERLANG_TOKEN_OR_ID, ARC_ParserLang_VectorDestroyUInt32Fn(), ARC_ParserLangParsedData_GetArgumentsTag(), ARC_ParserLangParsedData_GetArgumentTag(), ARC_Vector_Add(), ARC_Vector_Create(), ARC_Vector_Get(), ARC_Vector_GetSize(), ARC_ParserTagToken::id, and ARC_ParserTagToken::tagTokens.
Referenced by ARC_ParserLangParsedData_CreateBodyTag(), and ARC_ParserLangParsedData_GetArgumentsTag().
| void ARC_ParserLangParsedData_GetArgumentTag | ( | ARC_Vector * | orTokensOrTags, |
| ARC_ParserTagToken * | tagToken, | ||
| ARC_Parser_GetStringIdFn * | getStringIdFn ) |
Definition at line 117 of file parserlang.c.
References ARC_PARSERLANG_ARGUMENT, ARC_PARSERLANG_TAG_OR_CONSTANT, ARC_ParserLangParsedData_GetArgumentTag(), ARC_ParserLangParsedData_RecurseStringAdd(), ARC_String_Create(), ARC_String_Destroy(), ARC_Vector_Add(), ARC_Vector_Get(), ARC_Vector_GetSize(), ARC_ParserTagToken::id, and ARC_ParserTagToken::tagTokens.
Referenced by ARC_ParserLangParsedData_GetArgumentsTag(), and ARC_ParserLangParsedData_GetArgumentTag().
| void ARC_ParserLangParsedData_RecurseStringAdd | ( | ARC_String ** | data, |
| ARC_ParserTagToken * | tagToken ) |
Definition at line 68 of file parserlang.c.
References ARC_PARSERLANG_TOKEN_GREATER_THAN_CHAR, ARC_PARSERLANG_TOKEN_GREATER_THAN_ID, ARC_PARSERLANG_TOKEN_LESS_THAN_CHAR, ARC_PARSERLANG_TOKEN_LESS_THAN_ID, ARC_PARSERLANG_TOKEN_UNDERSCORE_CHAR, ARC_PARSERLANG_TOKEN_UNDERSCORE_ID, ARC_ParserLangParsedData_RecurseStringAdd(), ARC_String_Append(), ARC_String_AppendCString(), ARC_Vector_Get(), ARC_Vector_GetSize(), ARC_LexerToken::data, ARC_LexerToken::rule, ARC_ParserTagToken::tagTokens, and ARC_ParserTagToken::token.
Referenced by ARC_ParserLangParsedData_CreateTagString(), ARC_ParserLangParsedData_GetArgumentTag(), and ARC_ParserLangParsedData_RecurseStringAdd().
| void ARC_ParserLangParsedData_RunLineTag | ( | ARC_Vector * | tags, |
| ARC_ParserTagToken * | tagToken, | ||
| ARC_Parser_GetStringIdFn * | getStringIdFn ) |
Definition at line 259 of file parserlang.c.
References ARC_PARSERLANG_BODY, ARC_PARSERLANG_LINE, ARC_ParserLangParsedData_CreateBodyTag(), ARC_ParserLangParsedData_RunLineTag(), ARC_Vector_Add(), ARC_Vector_Get(), ARC_Vector_GetSize(), ARC_ParserTagToken::id, and ARC_ParserTagToken::tagTokens.
Referenced by ARC_ParserLang_CreateDataFn(), and ARC_ParserLangParsedData_RunLineTag().