Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/symind/ts-glsl

A GLSL Parser implemented purely in TypeScript type annotations.
https://github.com/symind/ts-glsl

glsl parser typescript

Last synced: 9 days ago
JSON representation

A GLSL Parser implemented purely in TypeScript type annotations.

Awesome Lists containing this project

README

        

# ts-glsl

A GLSL Parser implemented purely in TypeScript type annotations.

In accordance with [GLSL ES Specification 1.0](https://registry.khronos.org/OpenGL/specs/es/2.0/GLSL_ES_Specification_1.00.pdf).

# [See the live demo](https://www.typescriptlang.org/play?ts=4.8.2#code/PTAEGJQVQZwQwOYFMBQaDGB7AdjALqAG5IBOeSAHqALygAGKceeJAlgEYCu5RS6AzKAAOmGKzyscAbhSE4JAJ6tsCXugBMoToRmFMrACagAtnGUAKAJSgA3ilAPQCADYB9AAqjxk7DTUAWcxExCRwAGlAARgA6AAZLGUctQj9g7xxoigUZAF8UBhQ8BSEkUABBAGUAFT93eRgkAB4ikswAM14ySgA+GULi0rLmNi5yGD8AcSQ8dxJMBBI4YyGWDm4kGEbKqu60NGAAKgOUA5pqc4vLq+ub27v7h8e7k5fTpPePz9AAUQA5ABFQAB5ABiPwAGmUALLuAAy3wqEWqZQASjVQaAAJIw+FQv5VMpVTFA36vE5nJ6UqnUmkPE7APYtUpTGZzBZLFYjdabHZ+GqUcjYAzjWbzRbGeyOAD8oBZovZy2GazGmOw5BI2DgzkaVQA2gBydiYAwKfUAXV2SQAXFE0EzZdN5eLOcqNqr1ZrtbzaPyKILhaBdco2qRQIjQNFI8HQyizSgZRVQAKkELxhVlC4kP8+M55EwfJKHAmDUyAIqcLWsNqsUjmpN+lMB-VMVajJD6wvvYv6wwpiTV2tm+v+8b4NgqTtfGUo4eN8a6uNfKe2XUAayQClAyjDBt7aqrNZI5rNNoqJYGFRK6APg7yS8+NrlbOdSrbmxR3Vnqa32BDJFAKKTveXYAV+AY2GuG4-qAY4ZieMGrCod7AShMruKw6Cro0M4AGQruum7bmePYGH2N5Hma8HEUyl58OR5o5BEBHtKBAA+O4kWRA4UZaKHATaEEEdBxF7v2h7Hqe54lLR17cQxQF8aANrYEgxAkAp7zKappAaY+jrPhyr7cthvEOHprJioZrbGR+KACXk-QlKATpLI0ABCxqbsm34ucYHkmrUBl+Z5n60HYSTsIsQo2vqvn6okjhGiaNr+dkKAOfavmpX45gVHgTBIMYfagOxIKcNg6ChNg2bVtg6TYJYC52gMYb5eQRVqjQnbsW5ziYJheUFR1eDdWGrDGEIzhIIN7V9s1TllRVVU1co9WNJ2VQDOWlbcWBo6Iao7F6IYfiwSoJVEPoBhhBtF5XuRe0IeOqi0GdCA3UkvxLKU3kBpipH7rttD-Vxh4fY4dTitMpDjL9Ip5kV6rZuguaLFVC4XcdRi0JD31Izmebo0OR1XeDDjZXDoC9f1q4zYVxW0NTA1tfTaooKFtidpFcDRaA+qLZVPgrXVVXxZ2ZYVs45E2ptJTbVL3EJQ4NH3dxMt3XRiudpqRU2l9RVK8ICPQyQMA2rjiMw4bSUKClnm5PNpQWybyOo-mODrUkstIPLD2U29mNXX4WNk85xvqr7u3+wdgcnbQIe3dJquHo9AevQdof6z9DbfiDgMp8DANiTpHPhY4Es7Ye6ty5L5GG0I4ekJHVdh1DEe11rSQq5rLfezJdfa99evfQ7jmlOmE1TXTw1dUk7Gu4TPjT3NSQgBd3wUEIJAbGIODL2zq9gOxFRIFNgt7yzw2dmv7GYuq7vYPvI2HxdABSnATU-jugAvaNL5fDNRoC2WgTP+OBRqqnEL-JgmASCwlYPgb+wChagIfp7Rwfdk6hmjs9U6GdE4+w7inHBGZY7Y0uoYTO31Hp52Lv+QuoNSChwtuMWgTVS7iw1rJXuXCB5dy2kQ0g1dCGV1IIbHWSBh4G07A3cUZtW5LBgKPe0kC8DQLwLA+B+A-B2Ayi1dMKgprqJ8OghwmCe7YJzgGNOT0Myh29s3SxI5bHnRJnHFxh0KHXU7LQv2Vj9q4LceQgOQT2Y6M4UnCxJBhH907uXARojomgAcYIkghtRLSyxEXAeeinLfAmkUDeW8d7-yGgzWwuTBgwDEAgbAw0inb2qSYzsQISho1ganGO6dnqhxRKwBAAALAglMGklJwH4UZTTwidlhEgNowz-E-E3o03evhaCTNWWEsKnZMBtJgUk1ppB9mGzYIMvANo+lnMNlNeZNpZnzNHmvBoZ8qoITKWzMeWI2hP1MckjYCznEbJ8BjdZyyxnYAXKHAAwjgBoABHTgxVKZM1pgAzqjM+rM3eXgUOZRnAegKo9FFT8yHByulszmEUooGBipib5aK8Biy7v8mW-zDZYFwEgBFfYbQws5dytUhstQEvIDaPFIqkCPLAFgCamBypGHwNi0A2BMDKqQAAdxglgEo39iUMvcp5PwPMFAcKpTzGlfM9XYqZYlTydsTRSq3PfV5irZofPtAAdQGawKe+qqj-IiKlU15cWV-PwNbO1VN7bpSQbAn5qiIj+vwBEKAQgDAFUDSFcJSRVrnKxCLcWoak3P0cJwNNBUbSpvTeQLmkbUoxs+f8TAXqfXTT9QGqNJpg3KyLWy2tyVO1pQcmvAAVh-IQby3UjU+XyiQ2BEUku2Wa3m+pZ3KAXQysWlSqbbzgKipVS7ErUpim5Xd+6p1bu-iiaYnANQ-IposoF4yglksMN20A3MV3XrwLex+m6I0DtSsolq-wEHoHkAYRdlKj3mpiqBmA4GSCQf-Q2telBilTOwN-J9azRpuWUPIBQOHGhvQiMasj2ATWjShIVdgpAcOjSrQVYjRpMBTR5hEUjoBjWmQunygw9UtTEfI9xyjFGqNzyyYw9SkmPJsfgffZwEC1QKaOUpyTII+pMFU4sJTnzfHcUaFnTpuDukZnfZ+i1+oDPiVDhIqRqBt34c1IoYjLS9kaP-CQ86ZmVCh3uQCucSyMOrImWCzDvT+lDMejhsLIWfA3Qs8ey1BHXPhdWTahwuyjmeZtIc9paTOw3LzQFk5UW82XKGcBpyNHjB0ZIG5pIQJ2Ajr4IF78NjSOdlFG0ooNDslAyk-nJhFKy4OEszFWr9WcOZdAJgFrbW8sLcqvXOYvXbbOTW6QIo1XShMfII1iG29qxUEpqx9jayP2YDY0gDj7mcsdO8y9DxuKSAIA-kix96WfBxZWQl0bXNkv6n20gGbq25msAoObY7kPDbZYK3ljzsChVvY+2qMVqPhq7dAPxwTzhDtmP+TF774zQXxemUkPl8LEWdRGSTy7OHcX4tIJqHgdPycM-p4l7NMGV246qkJ+ns2xh5uLey2FXKad5qp5LvsQrmcagreUBXrPJUNvtHJ5wOmtQ6gFCZ0hvmEBJdg5a67WvxBqeFwKVlfpsfum116PXT28HPWNyu+3FvdNW79DbvA2PNOYG057nX-q-T658x4t3VmA9B8U970XApsdVDYMYALOoOa+mcXQUAAASGw0Z-wohyAwJIMpk-jTT7Za0yTHp0AADrYDzwXgCxeNJl5T5X3j1eqh9HtOX4wlW8Dp75LXpvv4Yw5HoJ2dv41B8mU7DLUf+fx+F5yA3kvnwZ8D-K-Pr4Mte8tX78Pn0Ke5-97TzsXYny8VCAGXAOjBBqCjWbPqC6hpX-sX1OgD-fMDA--1O2G-m0P-ggP-gMv-qwP-iOv-quP-s4P-sYP-tgP-pgP-kIP-nCv-keG-jAP-oym-pwP-oQP-uqv-hQP-qaG-gAF4diSb6hlD-5uT-5Qr-7-D-7fD-4gj-4TD-4AAS-+mI-+r8-+AA0v-rCP-lCP-r8P-kCP-u4P-qWP-iiP-hUP-lUP-lAP-gAGr-4er-7gj-4ACa-+AAWh2J8r8B-PVg7qwnzLEP-pEP-uoP-vwP-v4P-gAKz-4ABs-+AA7P-gABz-4ACcFhmU9QTQ3orcDQWUnkw+lMuokY0QzeFQsIi40oYYsIj08RJobem2lkxgjQ6RXejgWkakC+aqlRnykMcRQUqUx+sRSAyCOAwsa0vISRzeIIEQzesY0+oAYIlMrR1UEOIsBYy45+cyQ+H4j0+otBwEMouoIImR945sUReRCgJkj0yRUYK+VMqxfEMobkuRDRnkGkqEgYPREYkYbkhxikZk1ROkDxSkTxMmD4zRT8vwmAvwGqFQ2q0Rn4XR+x4YfR9xm+YYj0X8LxW+necxCxLxRYgYFQ4Jik6xpsSAmx2xSRKRzedxFxDxxxpxRR9aiJixyJEQKR+JZJaxbxBJaJdJLxFRzx-EjJ5RdJny-xPMNmpAbkSACAygdUKgTRmeQWdAY+f4gxOQEpE+G+SJQxiyN+d+D+BRyxEQ-Re+gY8xiahxNoBo+oOp38XJ2APJJA16+AIpS+zemIkQ0py+kpRecpoAMoNpj05gSp9+0wF0VhdWpAthb+rg+olgBRxppp5pMxQJiyQY+xmI6gvR+xGp5JsZ8J9JIEuoNp6pqJS4NoyZT2qZy4uo4pNgNpdpsZxemZ+ZHx6ZkQFZKEepGZAEWZep2pySupWpBprZRp4GJpA2h4TRoZvZvJ-JgpGYOoHe0x6ekZzi0Zkpbk8ZDphxRJlM8xqpLZiZHwKU4eCAqZCY3ZYZ-y2JUZ1p85MYWZy4mIW5lZHwSxRZbkpZ5ZjZV5mkgYc5j5TJL5tZrJ+pn5jx35nZKAa8uoZQAAtKYXAMBVQa4GaEBaBeBZBbEMBaEWaMcJERiaaf2XuYOSQIkUeTGSeYXouViPCRdCkokgUSpJUZqReXmZcemVhY0JiN0D+dmWyY8RRTpABccK6qzHgK4FLNolaJ2NxcNK4CqqJRqq4AhtlkJQynxQggQMJX2KJZgOJeqpJQCfSLUVEU-FokPjEXUW2tit8b8eqv8dljhdOWkfhW+VkYmJTNCRCVMfMoec4iubRSiameiQ0DpfJS5UFrsakSCRkU+QmDkfZQyk1DSc6RSTcdEOkWeayexe8QyUlbpKxa8alZxSgIpWqMpapepdlkpJ2DKiIPKpJbJequIAMgVTqkkGIJPEgOVdippahd5QysZX8QCcfqNAZTCrKvKk-B6lVWZSUOnj1dpeNJNIZVOmNVlSVXKkKE1VOq4JVXgNVVJSUIJUkPCCCFUK4G5CiGUFCt8ABJiBMLwXtQdUdd8DMt8LtftYdcdZOjxXJdoiiGdRdQ9ddS1S1L1ZgP1UKINcNV1TEU5XpVOWKTYDKf+OkTkHaX0a3qXskuOc5aUSmQWVajNQuExTZRuZ8QyrpSUbCBDd+AFWkcFZcekVCRFQldeS+ZiuejxUTTjeuXxMyclSxaldXplYcNlZNVNEtTxUVUkKRCjIvDgILVfEkOhn9hLTlSWg4M8m1j4JLSvI4MHlVKrQfI4GOhNFrSNAcAyK1dNPzdNUzd6ONRicYhfNimNZJgZThj8jsJbd5afMrTbTNc7fbVEXfDlqUp7bxuxAZe-J-H6lfrzTLeCvrcLY4BUN8FCJiFCkCLCCSJ2JHZhmGPHYncnanYbVpRiY7WHXyCjeDVafsd8DkFINDS3k6TKCdcuQiWmfkkIIUvTk-MxdXg7fTnbeyTzccOnaFltY4HAE0rUiJQPRMY4BPeMknVCFCGUNxqPXUkpdPVhnncbcRvpVEWUEvfUt3Z0bhZKWUNZazTKAvezrLVhpMSXX5d+HQGENXY6Tuc0cRrMTiXsZKd8LTSBPXV9hzpFTSUscfbFV-U+dzdpBzXWelZqUBU2elezfsMcCPTUsvblavTHQ4BygJgLm4KvZ2OVIRq4Og8g-0qg7xfDvsovSg+PfTj9U5AZTvdQ32JvRzH9UKHjiwzsc3lCifYRVCsThzqqTw7jc+QZVAC5kRvvSTQGDOaGFALw8-VAAI5fSFc0Yw6Q8NPlvsrfTI83kCAo1FTKECJeVFUjQw7vcw93W-YfaGMA2CWA+SefX-So6Y+SUBRY2qMRvqN0N0NQB2fI+UCzd-VFQg643jVzWE6EzSVEylRA55fA28aAJ2FlSQ2PUpRQ7lp2N8KWFAGULCJ2FCFALCK4JUBUGdaSEkP8JiNoSUxUGUxMBU44FCECP8LU-U40w4GUP8K06U+U52BUFAG5G0309tXdXtb0w052O9edeM3UyM44GUACMM5M0kOCECCiMsx08CBsxM6SOvb9dvR43gFo55iKTfQfVno0I0NQI-YjVkQaFc348xTLOc9I+MHQD4zc-abKauZ8x2azd3q82XZKSCPDQmXc-eDKAqa5X46owaE8yI1A9C0FvqAcP-sAP-gAKT-4ADU-+wF-+OE-+AAev-qxI3TCaBJTEWc3mUGCw6RC6Y2fXMbC2E2mUWaC3nnS-fYi5E9A9E-y7E5RYlXE3NTgNgz4FqEQ-Thg6AH1AKeBm4LAtK4I0kPKxhFK8q+gzkwiESCSPWBzjjjnb8FQxoyvbQ-s-Q1EfzpK-jlI7UFEbCPMBq84ECA1va8CZKbCAY1kWFc4+CgUWDTo+81KLc06cuF3RzsG4GM3t8D64pHXcowG4Y8jRXhOdY1nlaGGw43TeY0w541Y28zG-sXYwmcE4SeUEm5hjm0cYGDazgILlG96z8BEGUEEzW1AxE2y2xXE2yzE4if252721+c2wC73cOz2zUbzeq4q64FqzK0PQ4DO1KxQPO6q44Mu0qyQCq5fds64ECO4HK867O6u9u3g5a07I68e1qG65wyfmm85Rc2KdXUCDkKxKxI-babXc0U6wqze+61G0CEW7I-+Poz+A6eoFmUY1W5spcUGyiOoEW25RWwZb+y6+CLAq-ZEMB83s230fwOW3TX64CrQ2y0sc5oRl4++x2WB8TeqQRx2+O8K2SYOyK8x5zRO8+V268ah9e84BhwB5fbNdO3x64Kezu+CrK5u64OahJ9W2q6J+J+g2sxswe0e3+24LJ+e0bQcxiWh4qwJ3e6m6nhOU+3fdXeCDkMS8S5+4y2hFexp4Z93eCDh-seCCfZBwUeCDB5PZC8Z5Xoh+jShw5y62UEKFh6516yfQxym8R0FgxmRy+alpI1G-qNZx2e56AHRwBDF3y9x++fl2xyybSYV5O8VzxyF4q2FwYCw4gygNJ1pwu52MoCjJwGIMQHO2e6Rxu6J414a4s602py184G16wB12uyoxez+3x9V0Z0G2ZwGDS-sbCDkDhDhLZ9+7xxp7N93cTVw8tx51B1lz5+AnBzfQh0hxS+SQZaqK1+10gLe1Y9h-t5KZiNF4RyBNRf6-J2E+R8l142tx2c24xfRx95qaV2zYKxx+x+D5x+A+x15UgLdyN-d491G87VlcN6N+N114a4u-WHd2N41RN8m+rRVCj0T513J6Ftod8GiInXk-taiATxTzj9TwWFNzd+T9jw94J+Cmcw+6XdS9XZiG+xtwMVz4T8QGj0J4xS96GG9+BzGJ5+eSd1feSfB4Fw3ao13VL7zxF-L-+HG0r4Xrl2SYmxfaT6439xI1Rx2Yr98CzWb6Y6x0K+V0OzDx8RD-24jxvHrzL-zxjxHRQHr1T+g-j31y41PSH6z8T7j7u1CqiN8DUJHwG5z1EX77HwH5hgLyZ4+0W0t5-VZ+L2YxnzHzz9n6so0I74by2ybwBCrxCb-SR+u355r5dzr9veF095F7Y+9zW8y5bz99b0l7b93Wlx2cb226D4x2V5Aw8a79D+7173D0x+V4jzt+j+HUg4teH2nQipWEUOz6d8PbvzK9CO4HTxUAN0mAf1LEf9p-nQ0Jv0J6DUC8L98-+HS+t5-wBF+xL13xq7d022tfUthByO5OMW+UfNvudy16LJkOCbF+nf3EApchOKIZ7p61DDG98OYPLIs33i7dcR+uoCjmllS5EtW2EQR3jPz7ZQ8Pey-Erqv3CaMCMqnHX3sgNbpb86ukuQ-goGP6+B8e28XMDgz4H79a4D-GVtk33aHtBBD8KVng2lrsDeB6DX4N8CkGgAZBwgx-hvUUFzd3+iyQvlgJyDnAS+WRB2joO7o19MBRvQ7gUXwHfgEuGvWAR30pYGVr0Qg21gbysEAR++KbGcEP1g6-dR+lHcfucEn7qkneuApgZ7zd7z8GB0QrjswJ97+dTOBfauhXQACEXzPov-wjYZ9zBUbSwTY2sH18EO39C3t9wCGID2+QXc3s0TcGyC7WUbdAb30Lw+DAhfgiob527Y29ghqXTIWEIAgRDZ+CQ+IQV2YF0DYhS-SYfD3oEVcMS9QnBrVyyoaDbWfA2VjAG9TzIRBSQFYQ21wYysdq4zX4BMHhAwRNhvFeQY4F2Geg1h0zT6osxOEnUNhVYC4YQPUGnwGhaw+EGoOeFbDLhDga4XIJlYTBVBanX4a8MEbp95hHwxYfa3vZ58he+g25tcxMFIlXBMIjwfvVPw74PwLQ7wXzHNAFEOhUAq3kuHs4YkKg5wzwUULDA2DKWdlToSf1qHED-u4-a5v8yRAs1G+LHWgSv1GFr9JhSQ+bqkN-5F5fGqIkCOiPcF7DN62Is5CZDxEogIg8xMoVS0ZHq9EBBlSkS8OpGWUQSdIwBpCX8FdCU2LIsfql18YciwwXIyISMNmETCnyi-GYYKOSH59gWE+RoBKNyHQjpRnoWUbPhxE+Na+SogkR92nBq8B+nxKkT31r6gkEy3IplkaPVHDCkaZo3oUJ31CNArRFQG0SmIFHDCnRRXaYXyPtHslhR7o1fN0C9HXcoiCwzEejzlFDIFRwY5UYSN8ERjEuWo6MU0IwE0i4x4AvMUiQZEkjh+3bVMSQNQH89vG2Y3MWOKiGlieREPMYfyLiELjRG2lbsa-237ZVzhawiPgYAlYdd-hZwl4V8LGZqC4AB47wEeLeHgjbhH1Pamp0vGHjGqWg3Tt5U3GB8M8egrPNXQqA5ArmEo8kR+J1FYiAx8onMXiPDAqiQyHYmsRiTKBXiJAxAXUf5VpYGjEBkAgga30RI9DSBGYq5h2XDDT8G+towsfOOLFz80q3HF5oLwsrPtf+-4nxtWLREbjQJDY8CU2MgmxjWxqo4cdhOgG1sGGSEonqhNJroSShCYyllhPsFvDTRE4rxj4yImttZxeXcYUWMdG8iqJmpYSS+KWG81nx1418U1ySDGBOA+KVgJNA1bITjJOEwyTZLWFwgoAiYMyRZKsngYHJx4+yZT3Qb-BKgvBEwOZIkDuT8wN4yETpytYISRJKEuEa6MRG-jf+dLHFkBLUbRTQcYE7fPKLbZ4iwByvCAXBJgF0SLuNQoSVEShBBTLJUsDyaJJjFeCoQbQ2oVCAKmJi0x+EqcXiwoGgAoQQwmgUuI0nLi1xi-IUT+IYm0scgwFFidFV0lGT-RmUpsdlNAEYSyRlbY0UyNrbVDteKbAyuVLclVTQp6UnsXiPqklDneKbJqatI1HdCghbUnPvqAJadTup1AuceRMh59TVxlEu0R9KGnNEdpwUvaTZP0nHBXJf06yT5JMmloJG2wxwMDMqmgywpu7ZEDOAIaKAoZDgGGSFM8kyt0i-krQJDOPHoz-pYMw1pfxRDHVfgNQZGUoItYRTL2GJX6bDOqkxSt+xdOiQt3ebV0oQOQA4ClO2kVSMZNUqNt1Nr7HS+iUkrIudOTFncipcA1yldz85iNzRaA3sXqMlIBMcBkYpRhdOGF4TJxt0tFhEGOlQAepaklcVMM0lvSWB8Q4aazJFHN5OZwASacBKQD0z+ZTMoTkLLqlLTlwEskcZUPWlOCSpLgqIuI3TH89mhtfNWQmVOmGjNZksucTrK8YYsDZKaY2WOJekOiQmWkz6fE295xT6J5nX-pzMxaTTS+dMvmYTLdn88PZNIkWfGLDFdTmplLDafALlm4TmiIcm6VX3DleDI5DpaOSP1jm+yTR8c66brKr76hsWyc6AKnLnHaTnpWcjOQKwtnOj4mCs0OTnyD7HBKZfA-HsEDwAnZUZWIX4FCjUHbzjx-wb4CfLU5ny3h28jJh0hvnhSn+SADuWPJMRv8bZteHFslNFF2d25issOXiOwFltbBjciErqBBzEYWAiKZUd-Mn7ttF5FEqouWOpbAUJpv-KAIy1LkNBX5xGI2bX2AULln6dggMA4MQEQLy0B2butAqQDKi0F8Cjuv1KYV40UFSI3-q+1zy-zw2EJYxpTFfknNYEnfDErgsLYEL42bckheMDIUtTIF1CkgDAr5j0LKBCCk2WuNh6mzO6GxUQPvMhy1coGBlTwPgBOyAyUAd8pHP+Hx5OSKgnYPyRUF4Kdg3IDwjaJiFhAXy6Ge2CRgIvoR8w8Wb+Alm-nSH-4AAfmLCyp7yD5q9XeSnkIbHjwlkOM8fdSupQoRCyfH8OQGQDx9JOdwy6o9RSVVBOwbQcqOfGwCuBFW6mRwHEooBrD-gQIGoCCExDfBXFrgOOvCChR6stmlStYZiGPlSCZE2iiJTKwvlXz3A7i5ooYp0UUBdBn8j-s3ncA5BdQIvHIGaGzZI1IgoANeFUBaZAhkFI0gubMpyDRBq6oLbhaxLQr0UQQeIxXmCXWVgBNlNS0AIAAx5QAGjKz9L7rLNUbLz2SbyoLKaUjG6gps9Gbuu4AiAg9eWMQnOYkLzlsz6A1dOZd-JLmmCtFRi3RUCrxHArJJ9cw9lrJTbNz3liXChdWgOlCc2gWoBoLAo6nOQWakQW0SvMzmfK55tJKFbbP2JzK0FCK3NkiomXEZ3AaKr2ShzAW1DcVKLVuaaNkVRsSVzgMlYovumUr1S1KwcZbLUXMKB2C89kgYuiWdz35V+Y2pripz5Q1QlpaljQpWX3NNcDuLMTQu8bPMa81LCVQ0BNV01iBZuc1fqDtXtgVFSCzknuTVB6qeYpdeERfmZWvdbSDq6Kq6Upg+kbCweSVSGUwrSZwy0bEDliDjIlDVRuZFuXCwbJjtaS6a5xG9D+VFkSyeeMsjy2zWQ9qyjCvGhWrBWvE-yVQNsnWrjDPz3Qvqg1TEVDI+rYU+q+KWhLwqpqBi3y78AgJAi5zB11iA6M-XTIqZo1DFD1WbJXnPyY8eAVtf6rDDerl1Xav1fnN0Yxkay-apGuGozXLhR1aymiuSWJFilDlXC1Rh2o3W4Bu1ia60imvsYptc1wq7WaqpzWaAz1Y4pYkuvNWFrbSV6ktXOt6nqT3p5s8DYqo5oIMwlGqqmRznx5yA2A9+AWhkm4g+JyZSdX4MiHJmdgQQKdQkNhtw01ANlWyhxUCGTrEaCQeG0ZvdXcBJ8TW6DbJR4EY2jL1V40deVXw-kIjt17zcwGkJyCWBQ1Ts2aXPkd5ALeJoC7FW42N5lraVJYmDc0V1Wbq21n4IOj7U7X3qt1vIDTRiW0LyBWAqGpHvRU3myBDNxm1wOhpTj49MQF88mZiHqV092NURAzShvYBTR0KW9M5dJmE5cU3axS6OrZrBCHDWNKIP4Aa13YsaGN4Wk1krUC2NJeK8tFzRSIC1VQna346ZfoKrAia85GbMUgJt-4V1hN1670Q0FmnV8gx79QKp-VVGSLgsl9ABpqO0ppafA4ZH5PlvEn6j91ho-id+BsAcpqcPKevsI2FQs4lcY0j9fw2RQM0HKv6laYskxpC1Qks81MXSh+TG9hGJE+Taoo+kDS9tyq-bZBtNnfSaJHJXmvFs1qJagtMlbFCtSqo1VSgjSuOs9REqrV1qGlOqhVQe0bVUAUI12i8ja3-IMtLM3jdCoMEw1bSp8e1YxPUB-zdQWohlENTWojUmgFQbDkOC8Ho6pNBZRHdimR0DJUdJRRDpjr7HPqQFtFAbRLgFR5psd3GFXErgqBw7K12c9Rev0DB46p0BOonTsFJ3Tkk1-Y08kd11BU7+UUuU8GRgZ2iovEjEGtbBt5oa0Va8tWVh6l4IuKTqoWmLRFqwb1RTqMzMLRFvlp5UVIalX7TYuMZG73tj20AKrvV1ZdzxWupjTK2i2MbM6CdJOinS2Ygh1m9u+ja7raDKtc00dAPdu2u3K6XdsW17UpTEom7HtKWhoL7TAR-pbaoNCsaABEKT5ctIhOYuqm9RTRW5sJdNgX0K3cMhNoa3Hda3FZrQoU3QPnf5STXCMVR9chHdpXao-FOq5lD8HXtJoC7eGtopYi2l9S21hGOYlnYgtelQbvp2e5cgYFQLP14OQa0MP+Nz2toS95dITVXVK0VsW9FIpHcDXMo5ju9MjXvaGP70c6y+BQ2vTsSTXG8m9H6ptIPrNrDRq+nIgsZ+tZ0L8s5NoaffAJD0irHK53YvUcrL2iichhonfQ0BBCwJVEPyC5UfvnBJr6lh3GlfcwMpQGzSwO-VBd3gOBhEDF6-rSLhtAiYy0hKog5Rll137Z5SxTnTxQ6qmUuqzQnA7qBP04CUDfndA7AcV4ggUQJYf5OaAiDcGDQJBgqPwetEKqFNac9-WzoO1IKjtC6i7d9rWrW78e81Mqkbpj0SUzddVU2vrXj1P6+w3OkGqFBdpIA+qpVQGm3pMo87A6nxU2hlrq6qHFq6hlSrHt+2ytQtSSk6ixs8O3VElj1J4bJX4oEBvD-hvQ2YYWrIYjK7e+g+ZR42Bra8UNRiXDVy1Bscxgc01bNv1TY0WdepGg8NEJqH7r9VlU-ZOqW3P7R9NaiQ9Brq4h6rNIsG7dLXpy6GRaqCTWslv+0tFoDIsEHU-m9oF026YdEw9bWT0B0ajyrMPQyllY66qouyAgHHXd3GtiqVemYy3Td3Z1PdkWtPjTOaLoH2tRdH0GnqhSV1ctEB0w8sZ8CzHGgNepgw3t4nC7I2aAq-UkRv197J1NgQgzjgiDCHpdFdMffmOkNVE+6KAaYxcdWMqHzja004IVBbqbhjgHR+tiqhbq594jm0+5vKjGJIBrooYqoqcYRPp4bj3DO40Ixx2KaHDEJ-gWnTeGFLnAzgXgTACwQGBXAKiezUSCc0zhsmuTHIrmiM1SwqCOkeE+Se6p9HID5k2k7EhrAGBvYPdBwHpvK1SM6uutIQA0ccAco50iKa2GehOQ3oNQWpn9BqE2OYZDYAmBDBBhkAdGQ6QgHozarYXN5X4xxrfUiSDavwkOqp9dO2CEY4A1T+htUDkbznOm5ikUW7LAVKNnp26lRssTfX9PLlt4ep5AnC2-S-owzO2lhZGaQ7GnEMf+P5fBgzNJmyJCTUUnsv2J2nOFCNE5dFSdNIcYzv6f-acrlNNDJNPWxAfVukWUtdQCZu9PqioHhmINchw7fmKyqi03YbRyY-j0HPi0sMKAMc0ntlaFKloKtLeJgA0T2h5j6x1OjmnqNTn9kr1OY1nQ92p1r4ty8jUkHcDhaoUmIMpvq2KTXhVkrgZAbtCZCSUsE27MSlebWN7m9m2xgysMatOsKEpaRBlPab6L-I-5aBopVVFFBLmBgJRBlEWwh5OzVE6iTRL5SfiwWoNMoC2bkc01QJWjSFi0ihfVL-I4GpxkYhBcXNQX8LAEQi4CdFa81ZzgWhc5Bacj486LmtTc55j12fVHdehki3MEYuAkR8My-YqCxK2lmABGJEYohewr9458FyvEf8BJOOr5LcuhJkCZYsq02LHSZi2BZVoDJbspEDmmpYlq6XLxpAe7UodkR4wYY3F7S20RwtSXWGUREYrwT0ukAxynE8GniN4LiLwxqJumgFMpg2B7M9fX4BEG7jcIhE9fcMBXAVgtxm8pYZCH5xF1BWQroAMK5kiisJIYrEV0sBEAsvGB5EWMCg22L7OPFQLc5nAM7HVA8hGxHl6i1O2OCGWSlxl-S2Zeqp5WTY4wLS+VaasuX-w7V9UK4DYtdDGrrgZq6Zat39WYYRrOegvUmvbshr4CDoyRcbimwmiBila8Mb43FtJS6Kl9VkQX214H6DpkCJEDSoI6FL1RrKiNbGsWKClopukwyaZMtQ7N+IRzQ0pnCa62NS1my9gGcsmX7LDrcS-dfFOYmpT0KpNVUG8vWnnE7x3hGrEiuhXMrmSOKwlZAj4HFuiytfQyzLPYKTNvm6SzvkYqXKLrlOoK4rzSvw2MrNcRJDaHit-HZDJV6o-IeOBzXBrrRn7PjwfN3mU4rN7m6GFZsaWOavN1JEbDbimXBbESRqnzb6srXbzIt1mw+fpNRIblySI8xUtlvS3Rbll7dorafMq27l2yjo5VdICbXvNDQUillYBteCqgOVxs+WdLAmMIS61sWyQEcTYVOtO6na7bb2vyyHbzuFbcFwxLG2SAklx9SyqUs+2257gQEAFYpsRXm8VQcMEFeby-BUbOKvreOuegKqZQTu5xL8tW2oGNr7Nj2DbYiDuBbbidiIL8FA3zz6VE+jRYzfH1N3STOkjYitbdtbWk15d8RRGz9uLIQkXiSMc7e1uh2Pb84WZRHYp2BDo7j0WG5Elkjx39ild5VEPGCtp3Ahidx2wXZzv9ZpM4h8BcHc2shxnIFd8MNXfpvdt05S8qDb2dcZX2Gb4K5mygGFuJJZWBwaE0UGOBJBulLSKAPku-u-AgQf9lLdrbduzxHAn+ZQI3U-xypGUz+ZQLA4iLvjMS7d1JIaptP7F4rJZ8Ft+z7vOJg7bt1UrbbLV6lj7rNUh6TH-K80Bbdl2VrreVsvWHNbJtAC-ANuS3HzDDlk29bp6+6clR1PJaAEG3dr7x+upJXkr0OH27La1qIuYnCtW2+xUNjOwEgzAFEbu9FMe9tYV492ISY68YPne31z3poqsCK0ndXui8L7VRgE1Y-7MK6Nzdl7c+sIzAC0FrE51h2rYcBB7BbDj2evPSxBcPmH658QGzbFoFZvHQIGa349etsneHX1ZJakqEd+qRHn1MR8n2a52OQnW5oI9Nd8eMPWT71n4DkzyY-hvAlYPk+pA6MIW7LhNM2ybUMRZhi72APzXzTqfBOhzHNu6zSYesWJGTTIDp7SY4fhWenz1-x+9ZYeOAyNNSvp108GdPWnIuT7hx9fPEpOagCTtBs7ofGxPxHSQak-06VszPmTUT-JxyaKfcnSn5XbpdoVRCYhFmNQeZ8w46MGJMwpthy0Dc6cg3JTUF8GwnahsHXfLIEAs+BApuxXut0V5G5g-Xt00lHHiVRng6CwD2sYkYx50YgaclEIgttrGGUUfuf6MLUPWibxo0cQ6sQWCxyrPaBeL3JSVNkRJbZtAo2b1W9tubC46wxwA7I-JF-U4ydVRUXoAW24xTf113LHjd-4zY4av3WBnN4IZ0xfYd7PyI7DzW-Q7kfWW3nDJsGy8-NtI3DMXzzB1DcZeZ2VHZWpALI-Ihh2KX2jx1YY5BtJJKXbt2m7LuTNM2PiBlQ1xq6gmmuQIUL-Na2fNdPmJdqV9Vy3EKsWOhXPZ4V8-dlvyvpYUrp85G+VseHcl8T1TRCKi0bPlnEjla0677Kp7qWCy3-kceWXHWnZK64jDXtr6FuucJQqi8uHDLpHHVpbjnBfdO2sDmi6b1y2ZtWeJvJO4J9hpoOpnPza3W4vwECfDe7R8e2hIEHZvw2Eb-7jgbpVO4cBQAZ3FG5Op2Fp5Qp1Ay7y+fwHXdQp-ADild2u6SBuQV3m7g9yu53ff293PiI95e8vlnvHAUAC90kHvcbvOwT77dwU0JD7ummhIY91+6qC3uHA89KoOoHBCfuAPH78ED+7A9AfwQ-7rqd+5A-vuqg-ACD4h+Q+wfAP-gBD0kAw8ofsPhITD7B+v44g6e6gf4P0wv7wgUQ-AMj0kCI9wg6eUKQZjdVo8UeSP-wOxV0yBAepyPxH0mUx4481LuPLH3j6R9RCHUjCPH+jwhz8kohxPAnrjz4jo+UfSPin1j1R5o-TulPDHpj6p5E8yfxPL7rT9J8M9qfqPJn3j4x7cjMe73Rn0T7J7KASevt8iyqGK4w1ewjCl-VwL8GhA3UOjzbgGwGpSFp7-x2D7GwMV1DhhyHTK4L8S6RIReSbIbrm6knx7UbOwhIKoO9Tch-3rPDgS5yiCMLdKJgmGvL9c-JmgA8vBX44S+9+COb1mUIUZRbYei9GIHDgL-F2ugeteWwXIcgB175jIalAKgXrz2GwDIajNnUfrxmCG-lQqwsCRAt-Edd+uW3GeNPW7cz2ijgL37INm7aQ7KBRvfqgvZRe0SCXJS2hNb6Jalm8btCSHCb4N7hbDe9v43wjJN8DcMqWK8Hf5Nd6e+3fWz93izY98UDPfsTt958lt9SRFtGvbntxqD8SQs0K3yqxfMd9DDxWyzhe5yqWHB+LePpSxLbzjRgnN2qJV1n62zdqi66ur9F3i2RaciOHGTzh-Kmbu+vdX2inLmpzxcXOU-+LXgkELtanvyksViyQK6vZTuI357YLyUsvdBfw2E7ttvK-In2WBsdXyj1xIPbg7uuJ1lLXOz8qwpD3ciRdjl8CmJjK-p7legGpEanR0GidGjpNa+UjuJcTiM2mmHNtW1-qfrTP9+afartl3A0NdyQ-y8FdYvFxN9oN-Opbv5igAA)

You can install `ts-glsl` in your own project with `npm install ts-glsl`.

```typescript
import { Parse } from 'ts-glsl';

const vertex = `
attribute vec3 position;
varying vec2 uv;
void main() {
gl_Position = vec4(position, 1.0);
uv = position.xy;
}
`

type AST = Parse;
```

# License

[MIT](https://github.com/SyMind/ts-glsl/blob/main/LICENSE)