-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Delégua] Função que retorna função #623
Comments
Notei que as funções anonimas no corpo estão separadas do Retorna. Elas deveriam estar no valor do Retorna correto? {
declaracoes: [
{
linha: 1,
hashArquivo: -1,
assinaturaMetodo: "<principal>",
simbolo: {
tipo: "IDENTIFICADOR",
lexema: "facaCurrying",
literal: null,
linha: 1,
hashArquivo: -1,
},
funcao: {
linha: 1,
hashArquivo: -1,
parametros: [
{
abrangencia: "padrao",
nome: {
tipo: "IDENTIFICADOR",
lexema: "some",
literal: null,
linha: 1,
hashArquivo: -1,
},
},
],
tipoRetorno: null,
corpo: [
{
linha: 2,
hashArquivo: -1,
assinaturaMetodo: "<principal>",
simboloChave: {
tipo: "RETORNA",
lexema: "retorna",
literal: null,
linha: 2,
hashArquivo: -1,
},
valor: null,
},
{
linha: 2,
hashArquivo: -1,
assinaturaMetodo: "<principal>",
expressao: {
linha: 2,
hashArquivo: -1,
parametros: [
{
abrangencia: "padrao",
nome: {
tipo: "IDENTIFICADOR",
lexema: "a",
literal: null,
linha: 2,
hashArquivo: -1,
},
},
],
tipoRetorno: null,
corpo: [
{
linha: 3,
hashArquivo: -1,
assinaturaMetodo: "<principal>",
simboloChave: {
tipo: "RETORNA",
lexema: "retorna",
literal: null,
linha: 3,
hashArquivo: -1,
},
valor: null,
},
{
linha: 3,
hashArquivo: -1,
assinaturaMetodo: "<principal>",
expressao: {
linha: 3,
hashArquivo: -1,
parametros: [
{
abrangencia: "padrao",
nome: {
tipo: "IDENTIFICADOR",
lexema: "b",
literal: null,
linha: 3,
hashArquivo: -1,
},
},
],
tipoRetorno: null,
corpo: [
{
linha: 4,
hashArquivo: -1,
assinaturaMetodo: "<principal>",
simboloChave: {
tipo: "RETORNA",
lexema: "retorna",
literal: null,
linha: 4,
hashArquivo: -1,
},
valor: {
id: "f12f85f9-c051-4654-96df-d6334f134f26",
linha: 4,
hashArquivo: -1,
entidadeChamada: {
linha: 4,
hashArquivo: -1,
simbolo: {
tipo: "IDENTIFICADOR",
lexema: "some",
literal: null,
linha: 4,
hashArquivo: -1,
},
},
parentese: {
tipo: "PARENTESE_DIREITO",
lexema: "",
literal: null,
linha: 4,
hashArquivo: -1,
},
argumentos: [
{
linha: 4,
hashArquivo: -1,
simbolo: {
tipo: "IDENTIFICADOR",
lexema: "a",
literal: null,
linha: 4,
hashArquivo: -1,
},
},
{
linha: 4,
hashArquivo: -1,
simbolo: {
tipo: "IDENTIFICADOR",
lexema: "b",
literal: null,
linha: 4,
hashArquivo: -1,
},
},
],
},
},
],
},
},
],
},
},
],
},
tipoRetorno: null,
decoradores: [
],
},
{
linha: 8,
hashArquivo: -1,
assinaturaMetodo: "<principal>",
simbolo: {
tipo: "IDENTIFICADOR",
lexema: "some",
literal: null,
linha: 8,
hashArquivo: -1,
},
funcao: {
linha: 8,
hashArquivo: -1,
parametros: [
{
abrangencia: "padrao",
nome: {
tipo: "IDENTIFICADOR",
lexema: "a",
literal: null,
linha: 8,
hashArquivo: -1,
},
},
{
abrangencia: "padrao",
nome: {
tipo: "IDENTIFICADOR",
lexema: "b",
literal: null,
linha: 8,
hashArquivo: -1,
},
},
],
tipoRetorno: null,
corpo: [
{
linha: 9,
hashArquivo: -1,
assinaturaMetodo: "<principal>",
simboloChave: {
tipo: "RETORNA",
lexema: "retorna",
literal: null,
linha: 9,
hashArquivo: -1,
},
valor: {
linha: 9,
hashArquivo: -1,
esquerda: {
linha: 9,
hashArquivo: -1,
simbolo: {
tipo: "IDENTIFICADOR",
lexema: "a",
literal: null,
linha: 9,
hashArquivo: -1,
},
},
operador: {
tipo: "ADICAO",
lexema: "+",
literal: null,
linha: 9,
hashArquivo: -1,
},
direita: {
linha: 9,
hashArquivo: -1,
simbolo: {
tipo: "IDENTIFICADOR",
lexema: "b",
literal: null,
linha: 9,
hashArquivo: -1,
},
},
},
},
],
},
tipoRetorno: null,
decoradores: [
],
},
{
linha: 11,
hashArquivo: -1,
assinaturaMetodo: "<principal>",
simbolo: {
tipo: "IDENTIFICADOR",
lexema: "someViaCurryng",
literal: null,
linha: 11,
hashArquivo: -1,
},
inicializador: {
id: "a2d8147a-5529-4251-9618-c3a4f9ae494e",
linha: 11,
hashArquivo: -1,
entidadeChamada: {
linha: 11,
hashArquivo: -1,
simbolo: {
tipo: "IDENTIFICADOR",
lexema: "facaCurrying",
literal: null,
linha: 11,
hashArquivo: -1,
},
},
parentese: {
tipo: "PARENTESE_DIREITO",
lexema: "",
literal: null,
linha: 11,
hashArquivo: -1,
},
argumentos: [
{
linha: 11,
hashArquivo: -1,
simbolo: {
tipo: "IDENTIFICADOR",
lexema: "some",
literal: null,
linha: 11,
hashArquivo: -1,
},
},
],
},
tipo: null,
referencia: false,
desestruturacao: false,
},
{
linha: 12,
hashArquivo: -1,
assinaturaMetodo: "<principal>",
argumentos: [
{
id: "071210dc-4b74-42c2-a432-46c6abf5a6bf",
linha: 12,
hashArquivo: -1,
entidadeChamada: {
id: "b9c70d41-a7d6-4d3a-961f-53d891f04d03",
linha: 12,
hashArquivo: -1,
entidadeChamada: {
linha: 12,
hashArquivo: -1,
simbolo: {
tipo: "IDENTIFICADOR",
lexema: "someViaCurryng",
literal: null,
linha: 12,
hashArquivo: -1,
},
},
parentese: {
tipo: "PARENTESE_DIREITO",
lexema: "",
literal: null,
linha: 12,
hashArquivo: -1,
},
argumentos: [
{
linha: 12,
hashArquivo: -1,
valor: 1,
},
],
},
parentese: {
tipo: "PARENTESE_DIREITO",
lexema: "",
literal: null,
linha: 12,
hashArquivo: -1,
},
argumentos: [
{
linha: 12,
hashArquivo: -1,
valor: 2,
},
],
},
],
},
],
erros: [
],
} |
Sim, como valor de |
@leonelsanchesdasilva nessa função não deveria ter uma lógica para resolver literal? Atualmente ele resolve bem argumentos de tipo Variável, mas quando passamos literais e esse tipo de tratativas que temos. |
@ItaloCobains Aparentemente o literal já é resolvido na hora de definir o argumento. Qual seria o motivo para não resolver aí? |
Achei estranho o |
O seguinte exemplo é válido sintaticamente, mas sua execução apresenta problemas:
Tradução esperada para JavaScript:
Erros atuais:
The text was updated successfully, but these errors were encountered: