Commit Graph

70 Commits

Author SHA1 Message Date
ryanfleury 28ea290661 remove MD_JoinStringListWithSeparator, just have separator argument in MD_JoinStringList; helper for making node references 2021-04-11 21:29:35 -06:00
ryanfleury 1b89d3cc90 docs work; clean up TODO list; add TODOs for a couple of helpers and changes 2021-04-11 21:20:51 -06:00
ryanfleury 6dc8487965 combine StringMatchFlags and NodeMatchFlags into MD_MatchFlags 2021-04-01 22:21:46 -06:00
Allen Webster e1c0656e73 [plugin macros] clean up all usage of context; also document a few more things 2021-03-30 21:23:05 -07:00
Allen Webster cc38ed2c96 [main] fix initializer of MD_Node 2021-03-30 20:52:22 -07:00
Allen Webster c30090c483 [docs] documentation of MD_Node 2021-03-30 19:02:00 -07:00
Allen Webster e38dbca401 [docs] document node kinds and flags; couple random tweaks 2021-03-30 18:19:26 -07:00
Miguel Lechon c38bc6de30 [namespaces] Build namespaces as lists of reference nodes. 2021-03-29 17:51:36 +02:00
Miguel Lechon 230fd4043c Improve location of MD_Error. 2021-03-27 18:14:17 +01:00
Miguel Lechon 6478fb24c1 Error for MD_ParseWholeFile of missing file. 2021-03-27 15:47:54 +01:00
Miguel Lechon 8ab96ecaea Simpler MD_Error.
The catastrophic error flag is now subsumed under MD_MessageKind.
The filename member is accessible through the compulsory node pointer.
2021-03-23 11:44:37 +01:00
Miguel Lechon 20f85761c7 [map] Expose PtrMap on md.h. Remove NodeTable defines. 2021-03-22 15:45:36 +01:00
Allen Webster 560be2c42a [base] remove the wrapper FindLastSubstring 2021-03-21 21:32:22 -07:00
Allen Webster b24b0e0491 [map] fix header signature for StringMap 2021-03-21 20:49:16 -07:00
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