mirror of
https://github.com/Ed94/metadesk.git
synced 2026-08-07 08:08:48 +00:00
tweak expression parser interface.
This commit is contained in:
+3
-2
@@ -206,6 +206,7 @@ MD_WIN32_Release(void *ptr, MD_u64 size){
|
|||||||
# include <fcntl.h>
|
# include <fcntl.h>
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
# include <sys/syscall.h>
|
# include <sys/syscall.h>
|
||||||
|
# include <sys/mman.h>
|
||||||
// NOTE(mal): To get these constants I need to #define _GNU_SOURCE,
|
// NOTE(mal): To get these constants I need to #define _GNU_SOURCE,
|
||||||
// which invites non-POSIX behavior I'd rather avoid
|
// which invites non-POSIX behavior I'd rather avoid
|
||||||
# ifndef O_PATH
|
# ifndef O_PATH
|
||||||
@@ -2992,10 +2993,10 @@ MD_ExprBakeOperatorTableFromList(MD_Arena *arena, MD_ExprOperatorList *list){
|
|||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
MD_FUNCTION MD_ExprNode*
|
MD_FUNCTION MD_ExprParseResult
|
||||||
MD_ExprParse(MD_Arena *arena, MD_ExprOperatorTable *op_table,
|
MD_ExprParse(MD_Arena *arena, MD_ExprOperatorTable *op_table,
|
||||||
MD_Node *first, MD_Node *one_past_last){
|
MD_Node *first, MD_Node *one_past_last){
|
||||||
MD_ExprNode *result = 0;
|
MD_ExprParseResult result = {0};
|
||||||
// TODO(allen): @expr_parser
|
// TODO(allen): @expr_parser
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-2
@@ -681,9 +681,11 @@ struct MD_ParseResult
|
|||||||
|
|
||||||
typedef enum MD_ExprOperatorKind
|
typedef enum MD_ExprOperatorKind
|
||||||
{
|
{
|
||||||
|
// TODO(mal): We could improve this naming scheme
|
||||||
MD_ExprOperatorKind_Prefix,
|
MD_ExprOperatorKind_Prefix,
|
||||||
MD_ExprOperatorKind_Postfix,
|
MD_ExprOperatorKind_Postfix,
|
||||||
MD_ExprOperatorKind_Binary,
|
MD_ExprOperatorKind_Binary,
|
||||||
|
MD_ExprOperatorKind_BinaryRightAssociative,
|
||||||
} MD_ExprOperatorKind;
|
} MD_ExprOperatorKind;
|
||||||
|
|
||||||
typedef struct MD_ExprOperator MD_ExprOperator;
|
typedef struct MD_ExprOperator MD_ExprOperator;
|
||||||
@@ -715,6 +717,7 @@ struct MD_ExprOperatorTable
|
|||||||
{
|
{
|
||||||
// TODO(allen): @expr_parser fill this in however needed
|
// TODO(allen): @expr_parser fill this in however needed
|
||||||
int foo;
|
int foo;
|
||||||
|
MD_MessageList errors;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct MD_ExprNode MD_ExprNode;
|
typedef struct MD_ExprNode MD_ExprNode;
|
||||||
@@ -729,6 +732,13 @@ struct MD_ExprNode
|
|||||||
MD_Node *md_op_node;
|
MD_Node *md_op_node;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef struct MD_ExprParseResult MD_ExprParseResult;
|
||||||
|
struct MD_ExprParseResult
|
||||||
|
{
|
||||||
|
MD_ExprNode *node;
|
||||||
|
MD_MessageList errors;
|
||||||
|
};
|
||||||
|
|
||||||
//~ String Generation Types
|
//~ String Generation Types
|
||||||
|
|
||||||
typedef MD_u32 MD_GenerateFlags;
|
typedef MD_u32 MD_GenerateFlags;
|
||||||
@@ -1096,8 +1106,8 @@ MD_FUNCTION void MD_ExprOperatorPush(MD_Arena *arena, MD_ExprOperatorList *lis
|
|||||||
MD_FUNCTION MD_ExprOperatorTable MD_ExprBakeOperatorTableFromList(MD_Arena *arena,
|
MD_FUNCTION MD_ExprOperatorTable MD_ExprBakeOperatorTableFromList(MD_Arena *arena,
|
||||||
MD_ExprOperatorList *list);
|
MD_ExprOperatorList *list);
|
||||||
|
|
||||||
MD_FUNCTION MD_ExprNode* MD_ExprParse(MD_Arena *arena, MD_ExprOperatorTable *op_table,
|
MD_FUNCTION MD_ExprParseResult MD_ExprParse(MD_Arena *arena, MD_ExprOperatorTable *op_table,
|
||||||
MD_Node *first, MD_Node *one_past_last);
|
MD_Node *first, MD_Node *one_past_last);
|
||||||
|
|
||||||
//~ String Generation
|
//~ String Generation
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user