All Projects → tauqeernasir → tssg-syntax-parser

tauqeernasir / tssg-syntax-parser

Licence: other
Parser to generate AST from TSSG Syntax

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to tssg-syntax-parser

openapi-schemas
JSON Schemas for every version of the OpenAPI Specification
Stars: ✭ 22 (+29.41%)
Mutual labels:  swagger, openapi
fastify-openapi-glue
A plugin for Fastify to autogenerate a configuration based on a OpenApi(v2/v3) specification.
Stars: ✭ 94 (+452.94%)
Mutual labels:  swagger, openapi
Api
The Up Banking API Specification
Stars: ✭ 248 (+1358.82%)
Mutual labels:  swagger, openapi
Mockoon
Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, open source.
Stars: ✭ 3,448 (+20182.35%)
Mutual labels:  swagger, openapi
openapi-generator-for-spring
Open API v3 Generator for Spring Boot applications
Stars: ✭ 54 (+217.65%)
Mutual labels:  swagger, openapi
Grpc Swagger
Debugging gRPC application with swagger-ui.
Stars: ✭ 242 (+1323.53%)
Mutual labels:  swagger, openapi
Php Crud Api
Single file PHP script that adds a REST API to a SQL database
Stars: ✭ 2,904 (+16982.35%)
Mutual labels:  swagger, openapi
Openapi Codegen
OpenAPI 3.0 CodeGen plus Node.js minus the Java and emojis
Stars: ✭ 224 (+1217.65%)
Mutual labels:  swagger, openapi
shipengine-openapi
The official OpenAPI 3.0 definitions for ShipEngine™
Stars: ✭ 13 (-23.53%)
Mutual labels:  swagger, openapi
api
🚀 Automatic SDK generation from an OpenAPI definition
Stars: ✭ 127 (+647.06%)
Mutual labels:  swagger, openapi
openapi-assert
Asserting data against OpenAPI docs.
Stars: ✭ 17 (+0%)
Mutual labels:  swagger, openapi
openapi-schema-validator
OpenAPI schema validator for Python
Stars: ✭ 35 (+105.88%)
Mutual labels:  swagger, openapi
Spot
Spot is a concise, developer-friendly way to describe your API contract.
Stars: ✭ 230 (+1252.94%)
Mutual labels:  swagger, openapi
Full Stack Fastapi Couchbase
Full stack, modern web application generator. Using FastAPI, Couchbase as database, Docker, automatic HTTPS and more.
Stars: ✭ 243 (+1329.41%)
Mutual labels:  swagger, openapi
Flasgger
Easy OpenAPI specs and Swagger UI for your Flask API
Stars: ✭ 2,825 (+16517.65%)
Mutual labels:  swagger, openapi
Shins
Shins development continues at
Stars: ✭ 250 (+1370.59%)
Mutual labels:  swagger, openapi
Openapi Backend
Build, Validate, Route, Authenticate and Mock using OpenAPI
Stars: ✭ 216 (+1170.59%)
Mutual labels:  swagger, openapi
Openapi Comment Parser
⚓️ JSDoc Comments for the OpenAPI Specification
Stars: ✭ 221 (+1200%)
Mutual labels:  swagger, openapi
fhir-fuel.github.io
Place to prepare proposal to FHIR about JSON, JSON-Schema, Swagger/OpenAPI, JSON native databases and other JSON-frendly formats (yaml, edn, avro, protobuf etc) and technologies
Stars: ✭ 20 (+17.65%)
Mutual labels:  swagger, openapi
kompendium
Ktor OpenAPI Spec Generator
Stars: ✭ 46 (+170.59%)
Mutual labels:  swagger, openapi

TSSG Syntax Parser

Parser that generates AST for given TSSG Syntax

Current Version Current Version Current Version

This is the complete rewrite of the TSSG Parser, which is now able to build the AST for TSSG Syntax V0.0.1.

Please note that this project is work-in-progress and will support other advance features soon.

Added Support

Parser supports following expressoins:

  • Schemas Block Expression
    • Schema Expression
    • Extendable Schema Expression
  • Request Bodies Block Expression
    • RequestBody Expression
    • Extendable RequestBody Expression
  • Parameters Block Expression
    • Parameter Expression

Parser support following data types:

  • Literal
  • Identifier
  • Boolean
  • Object
  • Array
  • Function Calls

Note: Complex data types like Array of String, Array of Object is also supported.

Parser also supports miscellaneous features:

  • Whitespaces
  • Multiline Comments

Schema Block Expression

Schemas block can be written as follow:

Schemas {

    BaseUser {
        name: string,
        email: string
    }

    Employee extends BaseUser {
        salary: number,
        department: string
    }

}

Notice how we can extend schemas.

RequestBodies Block Expression

RequestBodies block can be written as Schemas block:

RequestBodies {

    BaseListParams {
        page: number,
        limit: number,
        totalPages: number
    }

    ListUsers extends BaseListParams {
        filters: {
            ids: string[]
        }
    }

}

Parameters Block Expression

Similarly parameters block can be written as:

Parameters {

    GetUser {
        id: string
    }

}

Data Types

Data types can be used as follow:

    User {
        name: string,
        age: integer,
        address: {
            city: string,
            country: string,
            zip: number
        },
        isVerified: boolean,
        profileImages: {
            size: {
                width: number,
                height: number
            }
            url: string
        }[]
    }

Notice address which is an Object with 3 properties. And profileImages which is an Array of Objects with 2 properties.

Syntax Draft Proposal

Read our Proposal Draft.

Hey there! Want to contribute?

  1. Update parser code and run yarn build:prod to generate the parser.
  2. Update transformer code and again run yarn build:prod generate transformer.
  3. Update tests and create PR.

Read our Contribution Guidline.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].