Este repositório contém o código-fonte do Cube Studio Script Compiler, um interpretador/compilador dedicado à linguagem de script proprietária CSScript. O objetivo principal é fornecer a lógica de back-end (Lexer, Parser e Interpretador) para o ambiente de desenvolvimento de jogos 2D do Cube Studio.
O compilador está sendo desenvolvido em C# (usando o Visual Studio) para garantir modularidade e performance.
A CSScript é uma linguagem de tipagem dinâmica e sintaxe inspirada em linguagens como Lua e JavaScript, focada em simplicidade e controle de objetos de jogo 2D (Sprites, Posições, etc.).
| Uso | Keywords |
|---|---|
| Geral | if, else, return, class |
| Controle | local, function, while, do |
| Valores | true, false |
As propriedades são acessadas via operador de ponto (.) em objetos:
- Gráficos/Estrutura:
.Image,.Parent,.Name - Geometria 2D:
.Pos,.Size - Física:
.Anchored,.Collide
O projeto segue as fases clássicas de um compilador:
-
Lexer.cs (Análise Lexical):
- Transforma o código CSScript em tokens.
- Status: 100% completo, incluindo suporte para operadores de comparação (
==,!=), números, strings e todas as keywords.
-
Ast.cs (Árvore Sintática Abstrata):
- Define os nós que representam a estrutura do código (
IfStatementNode,WhileStatementNode, etc.).
- Define os nós que representam a estrutura do código (
-
Parser.cs (Análise Sintática):
- Verifica a gramática e constrói a AST.
- Status: Suporte completo para:
- Declaração de Variável (
local x = 10;) - Chamada de Função Encadeada (
print.log.Console("msg");) - Estrutura Condicional (
if (true) { ... } else { ... }) - Loop de Repetição (
while (condicao) { ... })
- Declaração de Variável (
-
(Próximos Passos) Semântico/Interpretador:
- Implementação da Tabela de Símbolos e Execução do código.
O projeto é desenvolvido no Visual Studio e utiliza as bibliotecas padrão do .NET. Certifique-se de configurar o repositório com o template .gitignore do Visual Studio.
- Lexer (100%): Concluído.
- Parser (Em Andamento): Estruturas principais de controle concluídas.