changing more part of array handling to use #[
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
2e1ae8d9ee
commit
a1f304bdef
16
lang.txt
16
lang.txt
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
assignment syntax
|
assignment syntax
|
||||||
(k := 20) -> (set k 20)
|
(k := 20) -> (set k 20)
|
||||||
k := 20 -> (set k 20)
|
k := 20 -> (set k 20)
|
||||||
[a, b] := (multi-retvar-fun 10 20) -> (set-r a b (multi-retvar-fun 10 20))
|
[a, b] := (multi-retvar-fun 10 20) -> (set-r a b (multi-retvar-fun 10 20))
|
||||||
|
|
||||||
implement module -> ::, ., or what notation?
|
implement module -> ::, ., or what notation?
|
||||||
@ -22,9 +22,21 @@
|
|||||||
dynamic byte array is supported but we need yet to support byte-string(byte-array) constant
|
dynamic byte array is supported but we need yet to support byte-string(byte-array) constant
|
||||||
b"..." or B"..." for an byte string constant notation
|
b"..." or B"..." for an byte string constant notation
|
||||||
u"..." or U"..." for an explicit unicode string constant notation?
|
u"..." or U"..." for an explicit unicode string constant notation?
|
||||||
|
-> change u to c???
|
||||||
|
|
||||||
#b[ ] byte array??
|
|
||||||
#[ ] normal array?
|
#[ ] normal array?
|
||||||
|
#b[ ] byte array??
|
||||||
|
#c[ ] charcter array??
|
||||||
|
#w[ ] word array??
|
||||||
|
#hw[ ] half-word array??
|
||||||
|
#u8[ ]
|
||||||
|
#u16[ ]
|
||||||
|
#u32[ ]
|
||||||
|
#u64[ ]
|
||||||
|
#i8[ ]
|
||||||
|
#i16[ ]
|
||||||
|
#i32[ ]
|
||||||
|
#i64[ ]
|
||||||
|
|
||||||
allow b'X' or 'X' in byte array in #b[] notation?
|
allow b'X' or 'X' in byte array in #b[] notation?
|
||||||
|
|
||||||
|
@ -199,10 +199,16 @@ enum hcl_tok_type_t
|
|||||||
#define HCL_TOK_LPARCOLON HCL_TOK_LPARCOLON
|
#define HCL_TOK_LPARCOLON HCL_TOK_LPARCOLON
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
HCL_TOK_BAPAREN, /* #[ - byte array parenthesis */
|
HCL_TOK_APAREN, /* #[ - array parenthesis */
|
||||||
|
HCL_TOK_BAPAREN, /* #b[ - byte array parenthesis */
|
||||||
|
#if 0
|
||||||
|
HCL_TOK_CAPAREN, /* #c[ - character array parenthesis */
|
||||||
|
HCL_TOK_WAPAREN, /* #w[ - word array parenthesis */
|
||||||
|
HCL_TOK_WAPAREN, /* #hw[ - half-word array parenthesis */
|
||||||
|
#endif
|
||||||
HCL_TOK_QLPAREN, /* #( - quoted-list parenthesis */
|
HCL_TOK_QLPAREN, /* #( - quoted-list parenthesis */
|
||||||
HCL_TOK_DLPAREN, /* #{ - dictionary parenthese */
|
HCL_TOK_DLPAREN, /* #{ - dictionary parenthese */
|
||||||
HCL_TOK_LBRACK, /* [ - array */
|
HCL_TOK_LBRACK, /* [ - group */
|
||||||
HCL_TOK_RBRACK, /* ] */
|
HCL_TOK_RBRACK, /* ] */
|
||||||
HCL_TOK_LBRACE, /* { - block */
|
HCL_TOK_LBRACE, /* { - block */
|
||||||
HCL_TOK_RBRACE, /* } */
|
HCL_TOK_RBRACE, /* } */
|
||||||
@ -765,7 +771,7 @@ struct hcl_compiler_t
|
|||||||
hcl_flx_pn_t pn; /* plain number */
|
hcl_flx_pn_t pn; /* plain number */
|
||||||
hcl_flx_qt_t qt; /* quoted token */
|
hcl_flx_qt_t qt; /* quoted token */
|
||||||
hcl_flx_st_t st; /* signed token */
|
hcl_flx_st_t st; /* signed token */
|
||||||
hcl_flx_st_t bu; /* b or u prefix */
|
hcl_flx_bu_t bu; /* b or u prefix */
|
||||||
} u;
|
} u;
|
||||||
} lx;
|
} lx;
|
||||||
|
|
||||||
|
@ -219,8 +219,8 @@ int hcl_fmt_object_ (hcl_fmtout_t* fmtout, hcl_oop_t obj)
|
|||||||
{ "(", "(" }, /*HCL_CONCODE_MLIST */
|
{ "(", "(" }, /*HCL_CONCODE_MLIST */
|
||||||
{ "(", "(" }, /*HCL_CONCODE_ALIST */
|
{ "(", "(" }, /*HCL_CONCODE_ALIST */
|
||||||
{ "{", "{" }, /*HCL_CONCODE_BLOCK */
|
{ "{", "{" }, /*HCL_CONCODE_BLOCK */
|
||||||
{ "[", "[" }, /*HCL_CONCODE_ARRAY */
|
{ "#[", "[" }, /*HCL_CONCODE_ARRAY */
|
||||||
{ "#[", "[" }, /*HCL_CONCODE_BYTEARRAY */
|
{ "#b[", "[" }, /*HCL_CONCODE_BYTEARRAY */
|
||||||
{ "#{", "{" }, /*HCL_CONCODE_DIC */
|
{ "#{", "{" }, /*HCL_CONCODE_DIC */
|
||||||
{ "#(", "[" } /*HCL_CONCODE_QLIST */
|
{ "#(", "[" } /*HCL_CONCODE_QLIST */
|
||||||
};
|
};
|
||||||
|
15
lib/read.c
15
lib/read.c
@ -62,8 +62,8 @@ static struct voca_t
|
|||||||
{ 4, { '(',':',' ',')' /* MLIST */ } },
|
{ 4, { '(',':',' ',')' /* MLIST */ } },
|
||||||
{ 3, { '(',':','=',')' /* ALIST */ } },
|
{ 3, { '(',':','=',')' /* ALIST */ } },
|
||||||
{ 3, { '{',' ','}' /* BLOCK */ } },
|
{ 3, { '{',' ','}' /* BLOCK */ } },
|
||||||
{ 3, { '[',' ',']' /* ARRAY */ } },
|
{ 4, { '#','[',' ',']' /* ARRAY */ } },
|
||||||
{ 4, { '#','[',' ',']' } },
|
{ 5, { '#','b','[',' ',']' /* BYTE ARRAY */ } },
|
||||||
{ 4, { '#','{',' ','}' } },
|
{ 4, { '#','{',' ','}' } },
|
||||||
{ 4, { '#','(',' ',')' } },
|
{ 4, { '#','(',' ',')' } },
|
||||||
{ 3, { '|',' ','|' } },
|
{ 3, { '|',' ','|' } },
|
||||||
@ -1174,6 +1174,7 @@ static int feed_process_token (hcl_t* hcl)
|
|||||||
}
|
}
|
||||||
|
|
||||||
case HCL_TOK_LBRACK: /* [ */
|
case HCL_TOK_LBRACK: /* [ */
|
||||||
|
case HCL_TOK_APAREN: /* #[ */
|
||||||
/* [] is a data list. so let's treat it like other literal
|
/* [] is a data list. so let's treat it like other literal
|
||||||
* expressions(e.g. 1, "abc"). when it's placed at the block beginning,
|
* expressions(e.g. 1, "abc"). when it's placed at the block beginning,
|
||||||
* create the outer XLIST. */
|
* create the outer XLIST. */
|
||||||
@ -1183,7 +1184,7 @@ static int feed_process_token (hcl_t* hcl)
|
|||||||
LIST_FLAG_SET_CONCODE (frd->flagv, HCL_CONCODE_ARRAY);
|
LIST_FLAG_SET_CONCODE (frd->flagv, HCL_CONCODE_ARRAY);
|
||||||
goto start_list;
|
goto start_list;
|
||||||
|
|
||||||
case HCL_TOK_BAPAREN: /* #[ */
|
case HCL_TOK_BAPAREN: /* #b[ */
|
||||||
if (auto_forge_xlist_if_at_block_beginning(hcl, frd) <= -1) goto oops;
|
if (auto_forge_xlist_if_at_block_beginning(hcl, frd) <= -1) goto oops;
|
||||||
|
|
||||||
frd->flagv = DATA_LIST;
|
frd->flagv = DATA_LIST;
|
||||||
@ -2019,15 +2020,15 @@ static int flx_hmarked_token (hcl_t* hcl, hcl_ooci_t c)
|
|||||||
goto consumed;
|
goto consumed;
|
||||||
|
|
||||||
/* --------------------------- */
|
/* --------------------------- */
|
||||||
case '[':
|
case '[': /* #[ */
|
||||||
FEED_WRAP_UP_WITH_CHAR (hcl, c, HCL_TOK_BAPAREN);
|
FEED_WRAP_UP_WITH_CHAR (hcl, c, HCL_TOK_APAREN);
|
||||||
goto consumed;
|
goto consumed;
|
||||||
|
|
||||||
case '(':
|
case '(': /* #( */
|
||||||
FEED_WRAP_UP_WITH_CHAR (hcl, c, HCL_TOK_QLPAREN);
|
FEED_WRAP_UP_WITH_CHAR (hcl, c, HCL_TOK_QLPAREN);
|
||||||
goto consumed;
|
goto consumed;
|
||||||
|
|
||||||
case '{':
|
case '{': /* #{ */
|
||||||
FEED_WRAP_UP_WITH_CHAR (hcl, c, HCL_TOK_DLPAREN);
|
FEED_WRAP_UP_WITH_CHAR (hcl, c, HCL_TOK_DLPAREN);
|
||||||
goto consumed;
|
goto consumed;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user