From 4c8286def07d6300125888d61a35aec8ee055270 Mon Sep 17 00:00:00 2001 From: Sean O'Connor Date: Thu, 11 Sep 2025 11:27:32 -0400 Subject: [PATCH] Add README, .gitignore, and clean up build artifacts - Added comprehensive README with usage instructions - Added .gitignore to prevent build artifacts from being committed - Removed target/ directories and duplicate WASM files - Cleaned up parser binaries and test files --- .gitignore | 25 +++++++++++++++++++++++++ README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ parser.dylib | Bin 33808 -> 0 bytes 3 files changed, 75 insertions(+) create mode 100644 .gitignore create mode 100644 README.md delete mode 100755 parser.dylib diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..255d670 --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# Build artifacts +target/ +*.wasm +*.dylib +*.so +*.dll +*.dylib +*.a +*.o + +# Node modules +node_modules/ + +# IDE files +.vscode/ +.idea/ +*.swp +*.swo + +# OS files +.DS_Store +Thumbs.db + +# Logs +*.log diff --git a/README.md b/README.md new file mode 100644 index 0000000..5ad9cea --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# tree-sitter-xml + +A [Tree-sitter](https://tree-sitter.github.io/tree-sitter/) grammar for XML files as used in the [nand2tetris](https://www.nand2tetris.org/) course. + +## Supported File Types + +- `.xml` - XML compiler output files + +## Features + +- **Syntax highlighting** for XML elements, attributes, and text content +- **Code navigation** with outline support for XML structure +- **Bracket matching** for XML tags +- **Integration** with Zed editor and other Tree-sitter compatible editors + +## Usage + +This grammar is designed to work with the [nand2tetris-zed](https://github.com/soconnor0919/nand2tetris-zed) extension for Zed editor, providing complete language support for the nand2tetris course. + +## Grammar Details + +- **Language**: XML +- **Scope**: `source.xml` +- **File Types**: `.xml` +- **Node Types**: `element`, `tag_name`, `attribute`, `attribute_name`, `attribute_value`, `text`, `comment` + +## Development + +### Building + +```bash +# Generate parser +tree-sitter generate + +# Build parser +tree-sitter build + +# Test grammar +tree-sitter test +``` + +## License + +MIT License - see [LICENSE](LICENSE) file for details. + +## Related + +- [nand2tetris-zed](https://github.com/soconnor0919/nand2tetris-zed) - Complete Zed extension +- [nand2tetris.org](https://www.nand2tetris.org/) - Course website +- [Tree-sitter](https://tree-sitter.github.io/tree-sitter/) - Parser generator diff --git a/parser.dylib b/parser.dylib deleted file mode 100755 index c405e81338f8fd1dab61118809f18cd66c9b26bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33808 zcmeHQeQ;FO6+dq`n=iiBut@;5Sx}MqwW1+1l;VP*_)$JrP1X9?BoDGRyPN%pd}>!` zXhElyP-nDuYNa?WLF=@XmeG+mR>yIiPDN{BY8{KyaYU;Xk)c2f+uynOzTM4|h(r5F z|2Q`}@7#0lx#ynyyZ3$Vy!Y;F$3H$flE@;YO3)aPzk+Bz`B_EdK^stN+mU%~5v3Zu z2@e*@$Udl<;7TRi&N{2IMgS}Kx5yZ-;z~#?dvsQBD=1eg+IB}WktsSX_xDPTw(hRh zoaI6ON}VAOf0=ALmRMo*<^Edgbis3`+?9=Zif`NQO{|P1I_+3uc@jqD{tg;{%Zvk- zKQBHWhews4xw9j)?Q0e;SgJ=OY#a>3y(nhl0p<}s6}O@N?NKuV6~ekcaziGLYd*-f zZ@PZLjq~PS@6M5&F%KJVWS(1`*uC2X%cDR&pmCs5edy+llg@-PNep))nGVfOcJ#)b zL^cyzlumxb=|INma8|TjIW?4sCOWUkIvB;wrE8qd(28_49*?5(s(5#(2N@@QS?B8R zSUZ}a7NVS*;W^AT$X6P95#%6b9t)0TRgP#hc-wuz4}pz9p6xkt%uF0F+nh-{85txdfWhCswG#$jg^gOx_ zdy++=-b^}#J~J&{oyj`!%jOhOAesz&_S2Ii;$5ZL$lPyE=YmxE{X|cwV3c~;O^|34 z3i}4U_THoR^ZiF|wfYY)^z@%t>+L`BBJ~~iTH8PK()I?*Evbj?uO?mChjs(`UsLMc zDHO4we;CwN89uh(J9ax+SMOcv2|wG_P?R^!qPnIyrKZ4s!>sV;=978<_BCCrnrmtw z3|dWlr&y?8ORKwTi*?vthF{Mg=Isb(W2#$PV;> z8|swDeBgJqm~GtHccNc3{)RQ@{WBlQ-)p7zAIV1!teH?(?Xwm)#VFMQ`3QUs+wNnO z`py`%i~bKBh7b6TLT3Mm(T}ae#GF4wsSW6}i&xFSx8GV-ya^DuNPjc%gRwV+-aI*#S;vhn9}%hjUqzoFEYdhH_%AIo9i1zwK5i#f;Q z#@F$8V0J&Hg5bLgY~5q8tY{rXsj*B>^BRX=A+$V$BE~MSI>{A&tQT&Umhk_ z?r-B5YT_R_u+Dt~?9i`e7DZlV9r8G=Me;`wJL8Kv5jFK97{@~=b&M^@ ze}cR_XG{0-Ee2C=m*ag8cHGv$(ZTyuyBjBby>0v+M*hzxA3&UYP5w>j|A_omhx5~L zTnlV~Z=4eX^P$JFIWQk`EqE6=AMXx;<9aJl4USV{pc-~KZU!#p>`UJzgFu<^eV2=MgUGek6HNhgS=D+s)c?e&Lm!(*~U5h1mLVZnV(1T4>Lr zdR*;lJ6+bStS?s9+OFEzaog-Kgsto2Qj~e%*Y)M0D^SW;6+ZAHdaX)3y-YhpX=j#c zXDMyCOgl$u=MK_Vn24@LSrx9nES$OPupNt-bgVakb9}yn=B86L3kn*qskI0`d{l$2 z9~$jR>w-h*cm&Grnv~9sVhNIO$AK{T@AVx^i>cJV01gE9TWp02y6@gO5utqQvYnDEVNkI!dNBlqgRb) zCHh_sy!75VO6{9|%;q|beE@TM=u`#ua8z1jD4Wvq)8!jrz%+FF;=O2~M(nHOX#$QS z=imzTOVmU`n#eGf{SAL_;!`~y97zq3tAW=F{JE)^Q=_ER>KYq49uzlm)|D-F)nByN zGptnBUJLdfo`LRlIqZzA>ZyTO#Ra{-elN9yro@hb52s>yJaUkY!m{|Tq_kXnEZXat zQk3;gcTv`(==yU}F3NnjQEX5DN>D2EFA1eG-!&Cw%cI-peM;$#to%Udwqtqu*9gdJ z3+~Epy^6AOS9Z%Q%gSBZEw3socV)M{x~$xlO*xboI$c>@tsp?f6gkC#}1MS zdom}t|Lz^0D_a(RBq%8_%oC;M&6iZJ5Dp~H7iGSiEA?OAzP^if+tYWqrS=*RC(%hW zX%@{4QD_!rqbux0H162h zvc^J>65-gQ6LZFre{%|hGr7MXalSP1v4O9P0;-0(?`C*C*aJ%sC8bp)F9-+%f`A|( z2nYg#fFK|U2m*qDARq_`0)l`bAP5Kof`A|(2nYg#fFK|U2m*qDARq_`0)l`bAP5Ko zf`A|(2nYg#fFK|U2m*q@{{#Vk;@f>^L%%gZcz#^Xzzujh{>3 zuU-N0lYZphPr=!&5A$Zov`jho(~k}RgW-D&-*5OG>M80chV*eJ$}Sam?o6txI{H0- zKTTJU-ur2W;WG`t+VDAsFEKn~_$`LF8SWS!H#}|ly@o$v_$I?2HGGTVPZ|E4;jbG0 zj^bzBO{pjd2m*qDARq_`0)l`bAP5Kof`A|(2nYg#fFK|U2m*qDARq_`0)l`bAP5Ko zf`A|(2nYg#fFK|U2m*qDARq_`0)l`bAP5Kof`A|(2nYg#fFK|U2m*qDARq_`0)l`b zAP5Kof`B0Ke}F&`G0Zo_;kfVpbKYGGQLkjD*B7TS*7pl@sZJJ6akHpwXVZ>jXJXl` zleV$+x>}MPe)jNZ1hCa>2lC2uqtTFl-(Rn!H`)WG`n~|x*5q=?`a1(eHyT-gM*!>1 z8(Du(fGA;P{apdVD!977{=NXw4~?w9GeGo|k@fchh+Z(V{>}l>>qa(93ew+L=4BGY zAfyu@mi2cJ^!F0Rpg+8Z9H$_if`gsS*xk-56lCm7JlfrDt3~PUY_y%1zZ*(x$D=*E zWOckf*=@(2Y_v0)jSkWolSDFM1M+w*5$(34-LYtAyM1o?~EM4 zB>6rBpruj(I*hcno;(1Lmvbd@K)g&Vry8RBdx9P;yZ42XZ*T*48@F(vW9_-WJU;U;xBvEmNxxsP&HLoy^S9snet6W+r+(y}eBf)FMOEC-+X#UTk_=(mJd|yd;RshJPX@=`E@(jty%xp?g!^@yyT~+ zEB|=;t|!-Ca8>Ka6Po93vVC3mEMB_3(aODca9(HMm~}_Le!BYqZFywczRmr8{kH|C g?)&Va$sfM>@Xb3{znt5>