2.0.16 ā€¢ Published 2 years ago

tinyml-core v2.0.16

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

TinyML Core

TinyML Core is a little, faster and lightweight module that will help you to parse the source code of TinyML.

āŒ Please don't use until we delete this message, this lib is under construction šŸš«

Installation

npm install tinyml-core

Concept

The structure pattern is similar to HTML, you will get tags, content, params and comments.

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>The page title</title>
    </head>
    <body>
        <!-- This is a comment -->
        <hr/>
        <div class="container">
            <h1>My first title</h1>
            <p>
                Lorem ipsum dolor sit<br>
                amet, consectetur
            <p>
        </div>
    </body>
</html>
{!DOCTYPE html}
html(lang="en") {
    head {
        title {The page title}
    }
    body {
        [ This is a comment ]
        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:
import { Core } from 'tinyml-core/common';

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.

Core.Code

This data type defines the content between unnamed { and } characters.

Does not contain new methods or members by itself.

namedBlock {
    content of named block
}
{
    content of unnamed block
}
2.0.16

2 years ago

2.0.14

2 years ago

2.0.10

2 years ago

2.0.9

2 years ago

2.0.8

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.5

2 years ago

2.0.3

2 years ago