condense string flags

This commit is contained in:
Allen Webster
2021-06-30 14:09:32 -04:00
parent 52f840f5ab
commit 3648548cfe
5 changed files with 100 additions and 112 deletions
@@ -1,14 +1,14 @@
Node {
Kind: Label,
Flags: 0000110000000000000000010000000000000000000000000000000000000000,
Flag Names: BraceLeft, BraceRight,
Flags: 0000110000000001000000000000000000000000000000000000000000000000,
Flag Names: BraceLeft, BraceRight, Identifier,
String: foo,
Whole String: foo,
Tag: @struct
Node {
Kind: Label,
Flags: 1100000010000000000000010000000000000000000000000000000000000000,
Flag Names: ParenLeft, ParenRight, BeforeComma,
Flags: 1100000010000001000000000000000000000000000000000000000000000000,
Flag Names: ParenLeft, ParenRight, BeforeComma, Identifier,
String: x,
Whole String: x,
Node {
@@ -17,16 +17,16 @@ Node {
Flag Names: BracketLeft, BracketRight,
Node {
Kind: Label,
Flags: 0000000000000000000000010000000000000000000000000000000000000000,
Flag Names: ,
Flags: 0000000000000001000000000000000000000000000000000000000000000000,
Flag Names: Identifier,
String: MAX_PATH,
Whole String: MAX_PATH,
}
}
Node {
Kind: Label,
Flags: 0000000000000000000000010000000000000000000000000000000000000000,
Flag Names: ,
Flags: 0000000000000001000000000000000000000000000000000000000000000000,
Flag Names: Identifier,
String: char,
Whole String: char,
}
@@ -35,36 +35,36 @@ Node {
Node {
Kind: Label,
Flags: 0000110000000000000000010000000000000000000000000000000000000000,
Flag Names: BraceLeft, BraceRight,
Flags: 0000110000000001000000000000000000000000000000000000000000000000,
Flag Names: BraceLeft, BraceRight, Identifier,
String: bar,
Whole String: bar,
Tag: @struct
Tag: @test_tag
Node {
Kind: Label,
Flags: 0000000010000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma,
Flags: 0000000000000001000000000000000000000000000000000000000000000000,
Flag Names: Identifier,
String: y,
Whole String: y,
Node {
Kind: Label,
Flags: 0000000000000000000000010000000000000000000000000000000000000000,
Flag Names: ,
Flags: 0000000000000001000000000000000000000000000000000000000000000000,
Flag Names: Identifier,
String: float,
Whole String: float,
}
}
Node {
Kind: Label,
Flags: 0000000011000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma,
Flags: 0000000000000001000000000000000000000000000000000000000000000000,
Flag Names: Identifier,
String: z,
Whole String: z,
Node {
Kind: Label,
Flags: 0000000000000000000000010000000000000000000000000000000000000000,
Flag Names: ,
Flags: 0000000000000001000000000000000000000000000000000000000000000000,
Flag Names: Identifier,
String: i32,
Whole String: i32,
}
@@ -1,34 +1,34 @@
Node {
Kind: Label,
Flags: 0000110000000000000000010000000000000000000000000000000000000000,
Flag Names: BraceLeft, BraceRight,
Flags: 0000110000000001000000000000000000000000000000000000000000000000,
Flag Names: BraceLeft, BraceRight, Identifier,
String: a_set,
Whole String: a_set,
Tag: @sets
Node {
Kind: Label,
Flags: 0000110010000000000000010000000000000000000000000000000000000000,
Flag Names: BraceLeft, BraceRight, BeforeComma,
Flags: 0000110010000001000000000000000000000000000000000000000000000000,
Flag Names: BraceLeft, BraceRight, BeforeComma, Identifier,
String: named_set,
Whole String: named_set,
Node {
Kind: Label,
Flags: 0000000010000000000000100000000000000000000000000000000000000000,
Flag Names: BeforeComma,
Flags: 0000000010000010000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, Numeric,
String: 1,
Whole String: 1,
}
Node {
Kind: Label,
Flags: 0000000011000000000000100000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma,
Flags: 0000000011000010000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma, Numeric,
String: 3,
Whole String: 3,
}
Node {
Kind: Label,
Flags: 0000000001000000000000100000000000000000000000000000000000000000,
Flag Names: AfterComma,
Flags: 0000000001000010000000000000000000000000000000000000000000000000,
Flag Names: AfterComma, Numeric,
String: 7,
Whole String: 7,
}
@@ -39,22 +39,22 @@ Node {
Flag Names: BraceLeft, BraceRight, BeforeComma, AfterComma,
Node {
Kind: Label,
Flags: 0000000010000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma,
Flags: 0000000010000001000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, Identifier,
String: not,
Whole String: not,
}
Node {
Kind: Label,
Flags: 0000000011000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma,
Flags: 0000000011000001000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma, Identifier,
String: named,
Whole String: named,
}
Node {
Kind: Label,
Flags: 0000000001000000000000010000000000000000000000000000000000000000,
Flag Names: AfterComma,
Flags: 0000000001000001000000000000000000000000000000000000000000000000,
Flag Names: AfterComma, Identifier,
String: set,
Whole String: set,
}
@@ -67,44 +67,44 @@ Node {
Tag Children{
Node {
Kind: Label,
Flags: 0000000010000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma,
Flags: 0000000010000001000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, Identifier,
String: p1,
Whole String: p1,
}
Node {
Kind: Label,
Flags: 0000000011000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma,
Flags: 0000000011000001000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma, Identifier,
String: p2,
Whole String: p2,
}
Node {
Kind: Label,
Flags: 0000000001000000000000010000000000000000000000000000000000000000,
Flag Names: AfterComma,
Flags: 0000000001000001000000000000000000000000000000000000000000000000,
Flag Names: AfterComma, Identifier,
String: p3,
Whole String: p3,
}
}
Node {
Kind: Label,
Flags: 0000000010000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma,
Flags: 0000000010000001000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, Identifier,
String: e1,
Whole String: e1,
}
Node {
Kind: Label,
Flags: 0000000011000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma,
Flags: 0000000011000001000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma, Identifier,
String: e2,
Whole String: e2,
}
Node {
Kind: Label,
Flags: 0000000001000000000000010000000000000000000000000000000000000000,
Flag Names: AfterComma,
Flags: 0000000001000001000000000000000000000000000000000000000000000000,
Flag Names: AfterComma, Identifier,
String: e3,
Whole String: e3,
}
@@ -117,22 +117,22 @@ Node {
Tag Children{
Node {
Kind: Label,
Flags: 0000000010000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma,
Flags: 0000000010000001000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, Identifier,
String: p1,
Whole String: p1,
}
Node {
Kind: Label,
Flags: 0000000011000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma,
Flags: 0000000011000001000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma, Identifier,
String: p2,
Whole String: p2,
}
Node {
Kind: Label,
Flags: 0000000001000000000000010000000000000000000000000000000000000000,
Flag Names: AfterComma,
Flags: 0000000001000001000000000000000000000000000000000000000000000000,
Flag Names: AfterComma, Identifier,
String: p3,
Whole String: p3,
}
@@ -141,44 +141,44 @@ Node {
Tag Children{
Node {
Kind: Label,
Flags: 0000000010000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma,
Flags: 0000000010000001000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, Identifier,
String: p,
Whole String: p,
}
Node {
Kind: Label,
Flags: 0000000011000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma,
Flags: 0000000011000001000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma, Identifier,
String: pp,
Whole String: pp,
}
Node {
Kind: Label,
Flags: 0000000001000000000000010000000000000000000000000000000000000000,
Flag Names: AfterComma,
Flags: 0000000001000001000000000000000000000000000000000000000000000000,
Flag Names: AfterComma, Identifier,
String: ppp,
Whole String: ppp,
}
}
Node {
Kind: Label,
Flags: 0000000010000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma,
Flags: 0000000010000001000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, Identifier,
String: e1,
Whole String: e1,
}
Node {
Kind: Label,
Flags: 0000000011000000000000010000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma,
Flags: 0000000011000001000000000000000000000000000000000000000000000000,
Flag Names: BeforeComma, AfterComma, Identifier,
String: e2,
Whole String: e2,
}
Node {
Kind: Label,
Flags: 0000000001000000000000010000000000000000000000000000000000000000,
Flag Names: AfterComma,
Flags: 0000000001000001000000000000000000000000000000000000000000000000,
Flag Names: AfterComma, Identifier,
String: e3,
Whole String: e3,
}
@@ -187,8 +187,8 @@ Node {
Node {
Kind: Label,
Flags: 0000110000000000000000010000000000000000000000000000000000000000,
Flag Names: BraceLeft, BraceRight,
Flags: 0000110000000001000000000000000000000000000000000000000000000000,
Flag Names: BraceLeft, BraceRight, Identifier,
String: empty,
Whole String: empty,
Tag: @empty_set
@@ -201,14 +201,14 @@ Node {
Tag: @tagged_unnamed_set
Node {
Kind: Label,
Flags: 0000110000000000000000010000000000000000000000000000000000000000,
Flag Names: BraceLeft, BraceRight,
Flags: 0000110000000001000000000000000000000000000000000000000000000000,
Flag Names: BraceLeft, BraceRight, Identifier,
String: a_label,
Whole String: a_label,
Node {
Kind: Label,
Flags: 0000000000000000000000010000000000000000000000000000000000000000,
Flag Names: ,
Flags: 0000000000000001000000000000000000000000000000000000000000000000,
Flag Names: Identifier,
String: unnamed_set_element,
Whole String: unnamed_set_element,
}
@@ -229,22 +229,22 @@ Node {
Tag: @symbol_label
Node {
Kind: Label,
Flags: 0000000000000000000000100000000000000000000000000000000000000000,
Flag Names: ,
Flags: 0000000000000010000000000000000000000000000000000000000000000000,
Flag Names: Numeric,
String: 1,
Whole String: 1,
}
Node {
Kind: Label,
Flags: 0000000000000000000000100000000000000000000000000000000000000000,
Flag Names: ,
Flags: 0000000000000010000000000000000000000000000000000000000000000000,
Flag Names: Numeric,
String: 2,
Whole String: 2,
}
Node {
Kind: Label,
Flags: 0000000000000000000000100000000000000000000000000000000000000000,
Flag Names: ,
Flags: 0000000000000010000000000000000000000000000000000000000000000000,
Flag Names: Numeric,
String: 3,
Whole String: 3,
}
@@ -258,22 +258,22 @@ Node {
Tag: @symbol_label
Node {
Kind: Label,
Flags: 0000000000000000000000010000000000000000000000000000000000000000,
Flag Names: ,
Flags: 0000000000000001000000000000000000000000000000000000000000000000,
Flag Names: Identifier,
String: x,
Whole String: x,
}
Node {
Kind: Label,
Flags: 0000000000000000000000010000000000000000000000000000000000000000,
Flag Names: ,
Flags: 0000000000000001000000000000000000000000000000000000000000000000,
Flag Names: Identifier,
String: y,
Whole String: y,
}
Node {
Kind: Label,
Flags: 0000000000000000000000010000000000000000000000000000000000000000,
Flag Names: ,
Flags: 0000000000000001000000000000000000000000000000000000000000000000,
Flag Names: Identifier,
String: z,
Whole String: z,
}
+6 -7
View File
@@ -207,7 +207,8 @@
#endif
#if MD_COMPILER_CLANG || MD_COMPILER_GCC
#define MD_FORMAT_FUNCTION_ANNOTATION(str_idx, check_idx) __attribute__((format(printf, str_idx, check_idx)))
#define MD_FORMAT_FUNCTION_ANNOTATION(str_idx, check_idx) \
__attribute__((format(printf, str_idx, check_idx)))
#else
#define MD_FORMAT_FUNCTION_ANNOTATION(str_idx, check_idx)
#endif
@@ -352,13 +353,11 @@ enum
MD_NodeFlag_StringSingleQuote = (1<<10),
MD_NodeFlag_StringDoubleQuote = (1<<11),
MD_NodeFlag_StringTick = (1<<12),
MD_NodeFlag_StringTripletSingleQuote= (1<<13),
MD_NodeFlag_StringTripletDoubleQuote= (1<<14),
MD_NodeFlag_StringTripletTick = (1<<15),
MD_NodeFlag_StringTriplet = (1<<13),
MD_NodeFlag_Numeric = (1<<16),
MD_NodeFlag_Identifier = (1<<17),
MD_NodeFlag_StringLiteral = (1<<18),
MD_NodeFlag_Numeric = (1<<14),
MD_NodeFlag_Identifier = (1<<15),
MD_NodeFlag_StringLiteral = (1<<16),
};
typedef struct MD_Node MD_Node;
+9 -20
View File
@@ -679,9 +679,7 @@ MD_StringListFromNodeFlags(MD_NodeFlags flags)
"StringSingleQuote",
"StringDoubleQuote",
"StringTick",
"StringTripletSingleQuote",
"StringTripletDoubleQuote",
"StringTripletTick",
"StringTriplet",
"Numeric",
"Identifier",
@@ -1309,25 +1307,16 @@ MD_TokenFromString(MD_String8 string)
//- rjf: set relevant node flags on token
token.node_flags |= MD_NodeFlag_StringLiteral;
switch(d)
{
case '\'': token.node_flags |= MD_NodeFlag_StringSingleQuote; break;
case '"': token.node_flags |= MD_NodeFlag_StringDoubleQuote; break;
case '`': token.node_flags |= MD_NodeFlag_StringTick; break;
default: break;
}
if(is_triplet)
{
switch(d)
{
case '\'': token.node_flags |= MD_NodeFlag_StringTripletSingleQuote; break;
case '"': token.node_flags |= MD_NodeFlag_StringTripletDoubleQuote; break;
case '`': token.node_flags |= MD_NodeFlag_StringTripletTick; break;
default: break;
}
}
else
{
switch(d)
{
case '\'': token.node_flags |= MD_NodeFlag_StringSingleQuote; break;
case '"': token.node_flags |= MD_NodeFlag_StringDoubleQuote; break;
case '`': token.node_flags |= MD_NodeFlag_StringTick; break;
default: break;
}
token.node_flags |= MD_NodeFlag_StringTriplet;
}
}break;
+3 -3
View File
@@ -309,11 +309,11 @@ int main(void)
TestResult(MD_ParseOneNode(MD_S8Lit("`foo`"), 0).node->flags &
MD_NodeFlag_StringLiteral | MD_NodeFlag_StringTick);
TestResult(MD_ParseOneNode(MD_S8Lit("\"\"\"foo\"\"\""), 0).node->flags &
MD_NodeFlag_StringLiteral | MD_NodeFlag_StringTripletDoubleQuote);
MD_NodeFlag_StringLiteral | MD_NodeFlag_StringDoubleQuote | MD_NodeFlag_StringTriplet);
TestResult(MD_ParseOneNode(MD_S8Lit("'''foo'''"), 0).node->flags &
MD_NodeFlag_StringLiteral | MD_NodeFlag_StringTripletSingleQuote);
MD_NodeFlag_StringLiteral | MD_NodeFlag_StringSingleQuote | MD_NodeFlag_StringTriplet);
TestResult(MD_ParseOneNode(MD_S8Lit("```foo```"), 0).node->flags &
MD_NodeFlag_StringLiteral | MD_NodeFlag_StringTripletTick);
MD_NodeFlag_StringLiteral | MD_NodeFlag_StringTick | MD_NodeFlag_StringTriplet);
}
Test("Expression Evaluation")