Skip to content

Commit

Permalink
fixed uppercase and lowercase letters in tags
Browse files Browse the repository at this point in the history
Himujjal committed Apr 18, 2021

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent 6e9ff3a commit 84d1a6a
Showing 4 changed files with 169 additions and 131 deletions.
8 changes: 4 additions & 4 deletions src/scanner.c
Original file line number Diff line number Diff line change
@@ -91,7 +91,7 @@ ekstring scan_tag_name(Scanner *scanner, TSLexer *lexer) {
ekstring tag_name = NaS(scanner->A);
while (iswalnum(lexer->lookahead) || lexer->lookahead == '-' ||
lexer->lookahead == ':') {
tag_name = concat_string_char(tag_name, towupper(lexer->lookahead));
tag_name = concat_string_char(tag_name, (lexer->lookahead));
lexer->advance(lexer, false);
}
return tag_name;
@@ -134,13 +134,13 @@ bool scan_raw_text(Scanner *scanner, TSLexer *lexer) {

Tag *lastTag = (Tag *)vc_vector_back(scanner->tags);
const ekstring end_delimiter =
lastTag->type == SCRIPT ? init_string_str(scanner->A, "</SCRIPT", 8)
: init_string_str(scanner->A, "</STYLE", 7);
lastTag->type == SCRIPT ? init_string_str(scanner->A, "</script", 8)
: init_string_str(scanner->A, "</style", 7);

unsigned delimiter_index = 0;

while (lexer->lookahead) {
if ((char)towupper(lexer->lookahead) ==
if ((char)(lexer->lookahead) ==
end_delimiter.buf[delimiter_index]) {
delimiter_index++;
if (delimiter_index == end_delimiter.length)
252 changes: 126 additions & 126 deletions src/uthash.h
Original file line number Diff line number Diff line change
@@ -582,132 +582,132 @@ const struct hashmap_s *get_tag_map(za_Allocator *AA) {
int res = hashmap_create(AA, 1024, data);

if (res == 0) {
#define TAG(name) hashmap_put(data, #name, strlen(#name), (name))
TAG(AREA);
TAG(BASE);
TAG(BASEFONT);
TAG(BGSOUND);
TAG(BR);
TAG(COL);
TAG(COMMAND);
TAG(EMBED);
TAG(FRAME);
TAG(HR);
TAG(IMAGE);
TAG(IMG);
TAG(INPUT);
TAG(ISINDEX);
TAG(KEYGEN);
TAG(LINK);
TAG(MENUITEM);
TAG(META);
TAG(NEXTID);
TAG(PARAM);
TAG(SOURCE);
TAG(TRACK);
TAG(WBR);
TAG(A);
TAG(ABBR);
TAG(ADDRESS);
TAG(ARTICLE);
TAG(ASIDE);
TAG(AUDIO);
TAG(B);
TAG(BDI);
TAG(BDO);
TAG(BLOCKQUOTE);
TAG(BODY);
TAG(BUTTON);
TAG(CANVAS);
TAG(CAPTION);
TAG(CITE);
TAG(CODE);
TAG(COLGROUP);
TAG(DATA);
TAG(DATALIST);
TAG(DD);
TAG(DEL);
TAG(DETAILS);
TAG(DFN);
TAG(DIALOG);
TAG(DIV);
TAG(DL);
TAG(DT);
TAG(EM);
TAG(FIELDSET);
TAG(FIGCAPTION);
TAG(FIGURE);
TAG(FOOTER);
TAG(FORM);
TAG(H1);
TAG(H2);
TAG(H3);
TAG(H4);
TAG(H5);
TAG(H6);
TAG(HEAD);
TAG(HEADER);
TAG(HGROUP);
TAG(HTML);
TAG(I);
TAG(IFRAME);
TAG(INS);
TAG(KBD);
TAG(LABEL);
TAG(LEGEND);
TAG(LI);
TAG(MAIN);
TAG(MAP);
TAG(MARK);
TAG(MATH);
TAG(MENU);
TAG(METER);
TAG(NAV);
TAG(NOSCRIPT);
TAG(OBJECT);
TAG(OL);
TAG(OPTGROUP);
TAG(OPTION);
TAG(OUTPUT);
TAG(P);
TAG(PICTURE);
TAG(PRE);
TAG(PROGRESS);
TAG(Q);
TAG(RB);
TAG(RP);
TAG(RT);
TAG(RTC);
TAG(RUBY);
TAG(S);
TAG(SAMP);
TAG(SCRIPT);
TAG(SECTION);
TAG(SELECT);
TAG(SLOT);
TAG(SMALL);
TAG(SPAN);
TAG(STRONG);
TAG(STYLE);
TAG(SUB);
TAG(SUMMARY);
TAG(SUP);
TAG(SVG);
TAG(TABLE);
TAG(TBODY);
TAG(TD);
TAG(TEMPLATE);
TAG(TEXTAREA);
TAG(TFOOT);
TAG(TH);
TAG(THEAD);
TAG(TIME);
TAG(TITLE);
TAG(TR);
TAG(U);
TAG(UL);
TAG(VAR);
TAG(VIDEO);
#define TAG(name, str) hashmap_put(data, str, strlen(str), (name))
TAG(AREA, "area");
TAG(BASE, "base");
TAG(BASEFONT, "basefont");
TAG(BGSOUND, "bgsound");
TAG(BR, "br");
TAG(COL, "col");
TAG(COMMAND, "command");
TAG(EMBED, "embed");
TAG(FRAME, "frame");
TAG(HR, "hr");
TAG(IMAGE, "image");
TAG(IMG, "img");
TAG(INPUT, "input");
TAG(ISINDEX, "isindex");
TAG(KEYGEN, "keygen");
TAG(LINK, "link");
TAG(MENUITEM, "menuitem");
TAG(META, "meta");
TAG(NEXTID, "nextid");
TAG(PARAM, "param");
TAG(SOURCE, "source");
TAG(TRACK, "track");
TAG(WBR, "wbr");
TAG(A, "a");
TAG(ABBR, "bbr");
TAG(ADDRESS, "address");
TAG(ARTICLE, "article");
TAG(ASIDE, "aside");
TAG(AUDIO, "audio");
TAG(B, "b");
TAG(BDI, "di");
TAG(BDO, "bdo");
TAG(BLOCKQUOTE, "blockquote");
TAG(BODY, "body");
TAG(BUTTON, "button");
TAG(CANVAS, "canvas");
TAG(CAPTION, "caption");
TAG(CITE, "cite");
TAG(CODE, "code");
TAG(COLGROUP, "colgroup");
TAG(DATA, "data");
TAG(DATALIST, "datalist");
TAG(DD, "dd");
TAG(DEL, "del");
TAG(DETAILS, "details");
TAG(DFN, "dfn");
TAG(DIALOG, "dialog");
TAG(DIV, "div");
TAG(DL, "dl");
TAG(DT, "dt");
TAG(EM, "em");
TAG(FIELDSET, "fieldset");
TAG(FIGCAPTION, "figcaption");
TAG(FIGURE, "figure");
TAG(FOOTER, "footer");
TAG(FORM, "form");
TAG(H1, "h1");
TAG(H2, "h2");
TAG(H3, "h3");
TAG(H4, "h4");
TAG(H5, "h5");
TAG(H6, "h6");
TAG(HEAD, "head");
TAG(HEADER, "header");
TAG(HGROUP, "hgroup");
TAG(HTML, "html");
TAG(I, "i");
TAG(IFRAME, "frame");
TAG(INS, "ins");
TAG(KBD, "kbd");
TAG(LABEL, "label");
TAG(LEGEND, "legend");
TAG(LI, "li");
TAG(MAIN, "main");
TAG(MAP, "map");
TAG(MARK, "mark");
TAG(MATH, "math");
TAG(MENU, "menu");
TAG(METER, "meter");
TAG(NAV, "nav");
TAG(NOSCRIPT, "noscript");
TAG(OBJECT, "object");
TAG(OL, "ol");
TAG(OPTGROUP, "optgroup");
TAG(OPTION, "option");
TAG(OUTPUT, "output");
TAG(P, "p");
TAG(PICTURE, "picture");
TAG(PRE, "pre");
TAG(PROGRESS, "progress");
TAG(Q, "q");
TAG(RB, "rb");
TAG(RP, "RP");
TAG(RT, "rt");
TAG(RTC, "rtc");
TAG(RUBY, "ruby");
TAG(S, "s");
TAG(SAMP, "samp");
TAG(SCRIPT, "script");
TAG(SECTION, "section");
TAG(SELECT, "select");
TAG(SLOT, "slot");
TAG(SMALL, "small");
TAG(SPAN, "span");
TAG(STRONG, "strong");
TAG(STYLE, "style");
TAG(SUB, "sub");
TAG(SUMMARY, "summary");
TAG(SUP, "sup");
TAG(SVG, "svg");
TAG(TABLE, "table");
TAG(TBODY, "tbody");
TAG(TD, "td");
TAG(TEMPLATE, "template");
TAG(TEXTAREA, "textarea");
TAG(TFOOT, "tfoot");
TAG(TH, "th");
TAG(THEAD, "thead");
TAG(TIME, "time");
TAG(TITLE, "title");
TAG(TR, "tr");
TAG(U, "u");
TAG(UL, "ul");
TAG(VAR, "var");
TAG(VIDEO, "video");
// TAG(CUSTOM);
#undef TAG
}
2 changes: 1 addition & 1 deletion test/corpus/html.txt
Original file line number Diff line number Diff line change
@@ -138,7 +138,7 @@ Raw text elements
</style>

<script>
</SCRIPT>
</script>
---

(document
38 changes: 38 additions & 0 deletions test/corpus/svelte.txt
Original file line number Diff line number Diff line change
@@ -247,3 +247,41 @@ key statement
(text)
(key_end_expr
(special_block_keyword))))

=====================
testing
=====================
<Div>
<span>bar</span>
</Div>

<Input>
<span>bar</span>
</Input>
---------------------
(document
(element
(start_tag (tag_name))
(text)
(element
(start_tag (tag_name))
(text)
(end_tag (tag_name))
)
(text)
(end_tag (tag_name))
)
(text)
(element
(start_tag (tag_name))
(text)
(element
(start_tag (tag_name))
(text)
(end_tag (tag_name))
)
(text)
(end_tag (tag_name))
)
)

0 comments on commit 84d1a6a

Please sign in to comment.