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