From 0bba4d066171962d098e16641c3b316ec8b59cdf Mon Sep 17 00:00:00 2001 From: Iuriiiii Date: Sun, 16 Oct 2022 13:36:35 -0300 Subject: [PATCH] +readme --- README.md | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..f1fd2ed --- /dev/null +++ b/README.md @@ -0,0 +1,143 @@ +# TinyML Core + +TinyML Core is a little, faster and lightweight module that will help you to parse the source code of TinyML. + +## Concept + +The structure pattern is similar to HTML, you will get tags, content, params and comments. + + + + + + + + + + +
HTMLTinyML
+ +```html + + + + The page title + + + +
+
+

My first title

+

+ Lorem ipsum dolor sit
+ amet, consectetur +

+

+ +``` + +
+ +``` +[This is just a comment] +html(lang="en") { + head { + title {The page title} + } + body { + hr; + div(class="container") { + h1 {My first title} + p { + Lorem ipsum dolor sit\n + amet, consectetur + } + } + } +} +``` + +
+ +## Functions + +### From `Core` + +#### parse + +❕ This method will help you to parse synchronically a TinyML-syntax source. + +##### Return + +✅ An array with the data +❌ Throw an error. + +##### Params: + +🔹 source: string - The source code to parse. + +##### Example: + +```js +import { Core } from 'tinyml-core'; + +try { + var parsed = Core.parse(` + thisIsATag(param1) { + This is a raw content + tag{This is raw content too} + [This is a commentary] + } Raw content again +`); +} catch (e) { + console.error(e); +} +``` + +## Data description + +`Core.parse` returns an array of the following kind of elements if succedes: + +* Core.Element +* Core.Raw +* Core.Comment +* Core.Code + +### Global methods & members + +The following members & methods will be inherited by `Core.Raw`, `Core.Element`, `Core.Comment` and `Core.Code` + +🔹 tokens: Token[] - All tokens catched for the instance. +🔹 isRaw(): boolean - Checks if the instance is a `Core.Raw` instance. +🔹 isElement(): boolean - Checks if the instance is a `Core.Element` instance. +🔹 isComment(): boolean - Checks if the instance is a `Core.Comment` instance. +🔹 isCode(): boolean - Checks if the instance is a `Core.Code` instance. +🔹 toString(): string - A string representation of all tokens contained in the instance. + +### The `Token` data type + +This data type contains information about an element of the source code. It has the following members: + +🔹 text: string - The string of the token. +🔹 pos: TokenPosition /* {x: number, y: number} */ - The location of the token in the source code. +🔹 text: TokenType - The token type. + +### Core.Element + +This data type defines an element. It is composed by the following members. + +🔹 tag: Token - The token that contain the tag name and location. The type ever will be `TokenType.identifier`. +🔹 params: Token[] - All tokens that compounds the parameters. +🔹 children: (Core.Element | Core.Raw | Core.Comment | Core.Code)[] | undefined - The content inside of. An array of TinyML elements or undefined. + +### Core.Raw + +This data type different to `Core.Element` element, generally the content of this last one. + +> Does not contain new methods or members by itself. + +### Core.Comment + +This data type defines the content between `[` and `]` characters. + +> Does not contain new methods or members by itself. \ No newline at end of file