jass-lib.

JASS-lib é uma biblioteca para analisar e analisar a linguagem de script jass.
Baixe Agora

jass-lib. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • GPL
  • Preço:
  • FREE
  • Nome do editor:
  • Jeff Pang and Vexorian
  • Site do editor:

jass-lib. Tag


jass-lib. Descrição

jass-lib é uma biblioteca para analisar e analisar a linguagem JASS scripting. jass-lib é uma biblioteca para analisar e analisar a linguagem JASS scripting, que usado para scripting Mapas e arquivos AI no da Blizzard Entertainment Warcraft III.Building: 1) Instale um Kit de Desenvolvimento Java (J2SE). Usuários do Windows podem obter um da Sun Microsystems (http://java.sun.com). usuários de Mac terá um se instalar tools.2 desenvolvedor da Apple) Instale algumas ferramentas básicas UNIX. Os usuários do Mac OS X já vai tê-los disponíveis com ferramentas de desenvolvimento da Apple. Os usuários do Windows são incentivados a usar Cygwin (http://www.cygwin.com). No mínimo você precisa de um shell Bourne (sh), GNU make, sed, cd, ls, mkdir, cp, rm, tar, zip, e possivelmente outros. Perl é necessário para tests.3 execução) Digite o diretório de nível superior JassLib /. Tipo: makethis vai construir todos os arquivos de classe Java em src / 0,4) Para construir a demonstração JASS Syntax Checker, digite: make-demo win32for o Windows versão andmake demo macfor a versão Mac OS X. Isso também irá criar lib / jass.jar, que é um arquivo JAR de todo o Usage classes.API necessário: Se você deseja usar a sintaxe verificação API em seu próprio programa Java, buildjass.jar como descrito acima. Então olha para o classjass.api.SyntaxAnalyzer para saber como usar a API básica. Você pode usejass.demo.DemoChecker como um exemplo. Quando você executar o programa, youneed para incluir jass.jar e jcup.jar nas Notas classpath.Implementation: Se você navegar através do pacote jass.syntax, provavelmente você vai observar que o analisador de sintaxe vai para uma quantidade desnecessária de problemas (e por conseguinte, o código é um pouco inchado). Por exemplo, o aparelho entra estritamente através de três fases distintas: análise léxica (tokenizing), análise (análise de gramática - construção de uma árvore de sintaxe abstrata) e análise semântica (verificação de tipo e analisando a AST). Estas três etapas são geralmente necessários para uma lanuage com uma gramática livre de contexto e referências à frente. Porque eu "engenharia reversa" a linguagem JASS como eu escrevi o analisador, eu não sabia até que eu terminei que referências à frente são ilegais em JASS. Assim, a análise pode realmente ser feito em um pass.If eu fosse começar de novo (ou se você fosse escrever um parser), aqui estão as melhorias no projeto que gostaria de fazer com base nas características da linguagem JASS: · Esqueça escrever uma gramática para todo o fluxo de entrada. Em vez disso, após tokenizing o deleite fluxo de cada linha individualmente (gramáticas que não são de forma livre e delimitado por novas linhas são feios). Todas as linhas são trivialmente verificado por exame manual exceto para expressões. Basta escrever uma gramática para expressões e delegar o fluxo para o analisador quando você precisa verificar uma expressão. Como um bônus, o que lhe permite tornar as mensagens de erro para alguns erros de sintaxe mais significativos. · Fazer análise semântica no mesmo passe que você analisar. Porque não pode haver referências à frente, você não precisa se preocupar com coisas que não tenha sido analisado ainda. Isso é mais rápido e eficiente de memória, pois você não tem que construir uma AST (você pode verificar a árvore de cada expressão na mosca como você analisá-lo). Você ainda precisa manter em torno de uma tabela de símbolos para as variáveis e nomes de função (e uma árvore de tipo para tipos do punho), obviamente. Além disso, desde que você não tem que manter um AST ao redor, gerenciamento de memória é muito mais simples. · Arquivos individuais Parse separadamente. Há uma ordenação estranho de certas declarações globais que tem de ser mantido dentro de cada arquivo, mas não entre todos os arquivos (o que faz sentido uma vez que não é realmente uma "incluir" ou método "importação"). Basta manter em torno da mesa o símbolo eo tipo de árvore depois de analisar os arquivos de biblioteca como common.j. · Não utilize um (ou seja, "estático") tabela de símbolos global. Este hack projeto feio existe no meu código porque eu derivados-lo de um dos modelos de projeto do compilador de graduação da UC Berkeley. Projeto para que você possa facilmente a tabela de símbolos "exportação" e tipo de árvore a um fluxo (por exemplo, um arquivo) e importá-lo de volta - desta forma você pode "pré-compilação" os arquivos de biblioteca como common.j e só tem que carregar a tabela de símbolo e tipo de árvore em vez de ter que re-analisá-lo cada time.Of naturalmente, essas sugestões são para um analisador que é construído para a velocidade; não é muito flexível e seria difícil de se adaptar, se uma grande mudança foram feitas para a linguagem JASS (por exemplo, referências à frente). Obviamente, também escrevê-lo em C ou C ++. Java, Perl, VB, etc. são para prototipagem - este é o protótipo.


jass-lib. Software Relacionado

make_dvd.pl.

make_dvd.pl é uma ferramenta Perl que permite criar suas próprias imagens de DVD ISO. ...

136

Download

Pip.

Pip é uma ferramenta que pode fazer qualquer programa um filtro. ...

165

Download

Mq4cpp.

mq4cpp é uma implementação de código aberto do sistema de mensagens corporativas. ...

263

Download

Agave

A Agave é um aplicativo simples do GNOME para gerar coresChemes. ...

197

Download