Criar linguagem de Programação

gostaria de criar uma mini linguagem de programação com os simples comandos

title - para dar titulo a janela
echo - para mostrar textos assim como o print
msg - para criar uma caixa de mensagem com um texto configurado
pause - pausa a janela
exit - fecha a janela

tanto faz se e via prompt o funcionamento ou visual com uma janela.
Gostaria que todos os arquivos no computador de quem esta usando o interpretador seja um icone que eu possa escolher a imagem para a extensão .dop e também que interajise com um programa meu que eu fiz base visual basic que o usuário escolhe o diretório do arquivo clica em executar e o arquivo abre gostaria que ao clicar na extensão .dop abrisse meu programa em visual basic

caso tenha que fazer ligação a onde fica o diretório :

TextBox1 - onde fica o diretório no meu programa

Desde já agradeço um grande abraço e fiquem com Deus.

Olá

Comece separando as palavras reservadas e os valores

Supondo um arquivo .dop assim

title Teste
msg Boa tarde
echo Programa Teste
pause
exit

Cada linha é um comando, então para cada linha:

String linha;
String value;

if (linha.startsWith("title")) {
    // Title
    value = linha.substring("title".length());
    // Title title = new Title(value);
    // list.add(title);
}
1 curtida

como farei para os outros comandos lembrando da parte de capturar o diretório do arquivo no meu programa em Visual Basic da caixa TextBox1 que e onde fica o diretório e pronto isso vai me ajudar muito.

a parte do .dop esta correta

um grande abraço e fique com Deus.

Não é fácil criar um interpretador, recomendo q vc leia sobre compiladores

Lá tem as fases da compilação, a primeira coisa a fazer é a análise léxica.

Se o .dop está num diretório, memória ou num servidor remoto, não importa agora, use String de teste.

Com os outros seriam a mesma coisa, o primeiro objetivo é separar os comandos e textos do arquivo.

Vc deverá fazer a interface Token e as classes Title, Echo, MSG Pause e Exit.

2 curtidas

ok, mais “interpretador” não e bem um interpretador mais teria como ao abrir um arquivo . dop ele abrir meu programa Visual Basic? tipo ao clicar num arquivo dop ele abre meu programa cujo nome e myapp.exe e no “interpretador” ele pegar o diretório do meu que esta na TextBox1 e executar esse arquivo especifico ? obrigado

Desde já agradeço.

Também se possível colocar completo o código para eu pode dar um javac nome do arquivo.java

para nao ter que escrever a parte do String args static void main essa estruturação básica.
obrigado.

Sim, é possível, mas não sei como fazer, eu teria q pesquisar e não faço isso aqui no guj.

Não tenho código completo, nem pretendo fazer, sorry.

1 curtida

Ok obrigado por ser sincero pois tem uns que diz que vai fazer e acaba que não faz mais se puder ajudar só mais um pouco poderia colocar a estrutura básica aqui como resposta

public}string args etc … e como farei com a parte do exit e pause o echo e msg eu me viro pois não sei se oque você postou vai pausar o programa e nem fechar.

obs : se possível fazer a mesma janela que no caso seria o"interpretador" quando tiver aberta eu puder arrastar arquivos .dop em cima e mudar de titulo e fechar e pausar e mostrar msg pois com a parte do meu app eu me viro obrigado caso não intendeu leia de novo ou pergunte a parte que não intendeu.

desde já agradeço fique com Deus e até a próxima.

Diego12 esse seu código não funciona ou pelo menos não aqui pois executei no meu programa e bugou o código então botei de comentário vê já :

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class dop{
	
	public dop(){
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(700,420);
		frame.setVisible(true);
		frame.setTitle("Dop-interpretador");
		
	}

	

public static void main(String args[]){
	
	new dop();
	  JOptionPane.showMessageDialog(null,"Você está utilizando interpretador!\n Dop, Versão 1.0 CMD!");
	  
/*	
String linha = null;
String value;

if (linha.startsWith("title")) {
    // Title
    value = linha.substring("title".length());
    // Title title = new Title(value);
    // list.add(title);
          }
*/
	
}
}