Commit Graph

56 Commits

Author SHA1 Message Date
Allen Webster 369ebd7a62 [docs] catch up to new map integration; change function forward declarations for map 2021-03-21 20:40:43 -07:00
Miguel Lechon 7a06b11f49 Remove catastrophic from MD_Error and add MD_MessageKind to it. 2021-03-18 18:24:41 +01:00
Miguel Lechon eef82b0554 Pipe error location through error->node. 2021-03-18 17:40:06 +01:00
Miguel Lechon f4965c782d Multi-line string escaping. 2021-03-18 12:28:16 +01:00
Miguel Lechon 6026c3639d Remove MD_Map aliases. 2021-03-16 19:15:48 +01:00
Miguel Lechon 541a5443b6 Test and avoid MD_StringMap collisions. 2021-03-16 19:05:48 +01:00
Miguel Lechon 55943b79fc Move map into md.h asn md_impl.c. 2021-03-16 11:28:41 +01:00
Miguel Lechon fed011fc52 Switch to map_proposal. 2021-03-16 11:11:13 +01:00
Miguel Lechon d5ab0e88df Rename MD_TokenKind_NonASCII to MD_TokenKind_BadCharacter. 2021-03-16 09:46:53 +01:00
Miguel Lechon eb0cf0c9bf MD_Node->at fix.
node->at now points to the first relevant character in the source .md file.
For namespaces and tags that is the first character of the identifier
(not the '#'/'@' symbols).
For labels it's the first character in node->whole_string if non-empty.
For unlabeled sets it's the opening '(', '[' or '{' character.
2021-03-16 09:19:02 +01:00
Allen Webster 52fdfdbc38 fixup docs to match this version of the code 2021-03-14 18:43:23 -07:00
Allen Webster b72a53e84c copy over docs from the wrong repo; take out error/warning wrappers 2021-03-14 17:54:04 -07:00
Allen Webster a0ef78a49a trim -> skip/chop 2021-03-14 17:40:57 -07:00
Allen Webster 9fe3c0f09a string split cleanup 2021-03-14 17:37:30 -07:00
Allen Webster 30b8466a12 string -> integer implementation 2021-03-14 17:35:12 -07:00
Miguel Lechon 084d55d55d Report and skip non-ASCII characters. 2021-03-14 12:12:30 +01:00
Miguel Lechon e3357f0759 Syntax error sanity tests. 2021-03-14 11:24:26 +01:00
Miguel Lechon e4fbe7a81d More parsing errors.
Invalid hash directives.
Invalid tag token.
Reserved characters.
2021-03-13 10:01:08 +01:00
Miguel Lechon 2829d0923b Report parse errors preceding catastrophic error. 2021-03-12 16:12:00 +01:00
Miguel Lechon 34c48c84ff Parsing error for "label:@tag{children}". 2021-03-11 21:08:38 +01:00
Miguel Lechon e25c5a66c2 Parsing errors for unterminated C-Style comments. 2021-03-11 17:13:02 +01:00
Miguel Lechon e2cefabe5c Finetune error locations. 2021-03-11 16:08:13 +01:00
Miguel Lechon 701b77e118 Parsing errors for unbalanced sets and text literals. 2021-03-10 18:32:29 +01:00
Miguel Lechon bf9bfae929 comment_after fix. 2021-03-05 10:35:40 +01:00
Miguel Lechon b72890d44e before_comment fix.
When two or more comments are followed by a node, use the closest
comment as the before_comment. Prior to the fix, this combination
left node unbefore_commented:
// comment1 \n // comment2 \n node
2021-03-04 15:18:42 +01:00
Miguel Lechon e7dfe525c5 Radix for MD_I64FromString. 2021-03-03 13:14:56 +01:00
Miguel Lechon 0c6df62acd Hash map proposal. 2021-03-01 18:35:02 +01:00
Miguel Lechon 4a4f4db91a Make , and ; behave like \n as unscoped set delimiters. 2021-02-25 20:03:22 +01:00
Miguel Lechon 37fefae283 Treat the inside of a file as the content of a set. 2021-02-24 12:18:47 +01:00
Miguel Lechon 1304086266 Escape `` strings. Allow leading underscores in identifiers. 2021-02-22 14:53:23 +01:00
Miguel Lechon ee4989f6e3 Enforce lack of whitespace between a tag and its arguments.
This makes constructs such as "@a (1, 2)" behave like "@a {1, 2}",
where @a tags the set (1, 2).
2021-02-21 18:58:33 +01:00
Miguel Lechon 5d5b4e730c Don't consume implicit newline delimiters.
Newlines should act as implicit delimiters for more than one nested set
in the absence of explicit delimiters.
For instance in "A:B:C\nD" the newline makes D a sibling of A.
2021-02-21 18:36:59 +01:00
ryanfleury 2e2ff1c42f use strtoll instead of atoll 2021-02-16 13:49:27 -07:00
Miguel Lechon a0df1e32d2 Minimal escaping rules for character and string literals. 2021-02-13 18:50:09 +01:00
Miguel Lechon 4e8bfbee03 MD_ZERO_STRUCT instead of {0}. 2021-02-11 11:49:49 +01:00
ryanfleury 192b43770b do not leave spare carriage-return characters in node comments 2021-02-09 18:56:29 -07:00
Miguel Lechon aeb3f6e224 Avoid misinterpreting closing symbols inside literals. 2021-02-09 18:37:50 +01:00
ryanfleury 710c76192a node comment bugfixes and tests 2021-02-09 08:56:22 -07:00
ryanfleury ba6286f379 pre- and post- comment parsing for nodes 2021-02-09 08:50:06 -07:00
ryanfleury 47fe753411 write out initial basic namespace parsing, without affecting anything 2021-02-09 08:27:24 -07:00
ryanfleury 9253bd0de8 remove MD_NodeKind_UnnamedSet; simplify to MD_NodeKind_Label with zero-string 2021-02-09 08:11:07 -07:00
ryanfleury 8847aebca2 Require TokenKind_Symbol to begin an unnamed set 2021-02-06 20:35:18 -07:00
ryanfleury fbe34cd2b8 require token kind to be passed in MD_Parse_Require, to avoid detecting strings that are in string constants 2021-02-06 20:26:39 -07:00
ryanfleury 9da8264116 add const and volatile to type exprs; fix tag list parsing bug, restrict '@'s to symbol tokens 2021-02-06 20:23:29 -07:00
Miguel Lechon d96d76f167 Linux-specific directory listing. 2021-01-31 09:09:53 +01:00
ryanfleury 289b9af732 adjust error/warning output to match MSVC/Clang/etc. format; fix infinite loop bug in index calculation 2021-01-29 12:18:56 -07:00
ryanfleury e8af78ed4c MD_NodeTable_Insert preserve order 2021-01-29 12:18:56 -07:00
Miguel Lechon 8a09a5c315 Avoid fopen newline processing. 2021-01-26 07:23:26 +01:00
ryanfleury 5e48bf8693 C code generation sample, array expressions 2021-01-22 14:58:33 -07:00
ryanfleury 1a2a47e88d Move all ExprKind metadata into a single table 2021-01-22 14:03:16 -07:00