Computer and Information Engineering Student at UFRJ. (Mar 2016 - Currently)
Programer at MinervaBots. (Feb 2017 - Feb 2019)
Software/Firmware Developer Intern at PRODEC Technology (Aug 2018 - Aug 2019)
Researcher and Developer at LAMCSO. (Jul 2017 - Currently)
compiler's Introduction
compiler's People
compiler's Issues
Avaliação de curto-circuito
Usar emiter no REPL
Implementar diagnósticos de avisos
Alguns diagnósticos não precisam necessariamente impedir a emissão/avaliação
Parâmetros opcionais em funções
Coisas faltando
Operadores
- %
- ++
- --
- +=
- -=
- /=
- *=
Sintaxe
- Trivia/comentários
- Usar tipos do .NET?
- Structs
- Classes
- Enums
- Namespaces
- Importar referências do .NET
Adiciona suporte para valores default
Permitir declaração de variáveis das seguintes formas:
var i : int // Valor default 0
var s : string // Valor default ""
var b : bool // Valor default false
var i : int = default // Valor default 0
var s : string = default // Valor default ""
var b : bool = default // Valor default false
Isso é necessário para a declaração de structs (#24) e classes
Suporte para overload de funções
Mover testes relativos ao binder para uma nova classe
Integração com a IDE
Implementar o servidor de linguagem para a integração com compilador com a IDE.
https://www.nuget.org/packages/OmniSharp.Extensions.LanguageServer/
Adiciona suporte para new keyword
Permitir for loop inverso
Um loop for no formato
for i = 100 to 0 step -1
{
// ....
}
Não é executado devido a forma como acontece a checagem de bounds
Funções locais
Suporte para debugging
Suporte para null
Gerar aviso de código inalcançável
Constant folding elimina expressões com efeitos colaterais
Uma expressão tipo
var x = 10
function foo() : bool
{
x = 1000
return false
}
var r = foo() && false
É colapsada para false e a chamada foo é eliminada, assim x continua com o valor incial de 10.
Classificação de for quando há step não funciona corretamente
Enums
Structs
- Declaração
- Construtores
- Acesso de campos
- Acesso de propriedades
- Atribuição de campos
- Atribuição de propriedades
- Passar por referencia
- Passar como readonly
BoundNodes precisam de acesso ao SyntaxNode de origem
Refatorar o ControlFlowGraph
Inicialização lazy do dicionário de símbolos de BoundScope
Corrigir coverage
Refatorar Emitter
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.