Bem sinceramente não entendi bem a tua pergunta, mas se for no sentido de como diferenciar uma nova instância da classe de apenas uma chamada a uma class estática é assim:
java.lang.String() -> Nova intância
java.lang.System -> Classe estática
A difernaça é nos ( )…
Depois para chamar por exemplo o String.replaceAll(CharSequence, CharSequence) em vez do String.replaceAll(String, String):
$java.lang
str = String("...teste123").replaceAll(caju.cast("teste", "java.lang.CharSequence"), caju.cast("testando", "java.lang.CharSequence"))
Usando o caju.cast( OBJECT, "CLASS" ) para chamar um método ou contrutor especifico que tenha múltiplas definições.
Não sei se isto responte a tua pergunta, mas se tiver um exemplozinho da situação específica agradecia :roll:
[/quote]
Ativação -> chamada de um método.
Instanciação -> criar um novo objeto.
Contexto implícito -> o this é métodos é um exemplo disso.
Queria saber se existe algum contexto implicito e, se existir, como diferencia String() ser ativação ou instanciação.[/quote]
Ok acho q agora chegamos lá
Não há contexto implícito, há apenas um contexto q é o contexto global da execução do script, variáveis definidas dentro de funções como fora estão no mesmo contexto, ou seja dentro de uma função pode se usar uma variavel de fora e uma variavel criada dentro de uma função fica acessível para fora, ou sejá só existe o contexto global, por enquanto!
CajuScript não é orientado a objeto, por enquanto.
Ao criar uma String(" ") será feita uma nova instanciação e se for como valor de uma variável, esta nova instancia passa a ser o valor desta variável:
str = String(“xpto”)
Isto é equivalente em Java:
String str = new String(“xpto”)
Esta variável “str” estará disponível para ser usada no código que segue, podendo a seguir fazer:
str.replaceAll(“o”, “o…”)
Ser fizer:
str = String
Isto não faz nada! Classes estáticas teem que ser usadas assim:
System.out.println(“xpto…”)
Tem que executar alguma coisa, só System não faz nada, é preciso um caminho completo para uma variável publica, ou construtor ou método, para usar isto como valor de uma variável.
Claro que quero melhorar isto, passando a ser uma linguagem OO também, mas isto no momento não, isto esta pendente para as versões futuras.
O objetivo agora foi fazer uma linguagem simples para usar classes Javas e trocar Objetos entre Java e CajuScript, suportando tudo que é preciso para programar, ifs, while, arrays, funções, cast e variaveis, isto é o básico e tentei fazer da maneira mais simples e facíl de usar, agora o próximo passo é melhorar o que já existe e começar a evoluir a linguagem para o suporte de Classes e tudo mais.
Os objetivos do CajuScript é ter o core pequeno, ter fácil aprendizagem, e fácil de usar no dia-a-dia.
Se tem algo que não agrada e tem idéia de como melhorar, e se tem algum recurso que acha que faz falta e quer que seja implementado, é só dizer que vamos trabalhar para isto.
E quem quiser participar no desenvolvimento do projeto será bem vindo.