mais...
para saber quais linhas de comando usar para usar uma rotina que esta em *.FAS ou *.VLX você pode fazer o seguinte:
1º) grave numa lista tudo o q esta em atoms-family:
(setq lista1 (atoms-family 1))
2º) agora carregue as rotinas *.FAS ou *.VLX:
(load "arquivo.fas")
3º) grave numa lista tudo o que está em atoms-family DEPOIS do passo 2:
(setq lista2 (atoms-family 1))
4º) compare as duas listas e filtre as novas strings que apareceram:
(setq lista3 (vl-remove nil
(mapcar '(lambda (x) (if (not (member x lista1)) x))
lista2)))
5º) agora lista3 contém apenas os novos "atoms" que foram criados ao carregar as suas rotinas *.FAS ou *.VLX, com isso é so ver quais delas são executáveis na linha de comando:
(setq lista4
(mapcar '(lambda (x) (list x (type (eval (read x)))))
lista3))
percebe que extraí a informação do tipo de elemento cada string representa?
neste ponto a variável lista4 contém algo parecido com isso:
(("LISTA2" LIST) ("LISTA1" LIST) ("C:MLAY" USUBR) ("C:EXPORTATT" USUBR))
vejam a lista acima... temos o nome do "atom" numa string e seu tipo, certo?
todos os tipos SUBR (rotinas internas e compiladas), EXRXSUBR (rotinas de ARX), ou USUBR (user-defined) são executáveis de alguma forma... é só escolher!!! e pra ajudar, os "atoms" que começam com "C:" são executáveis na linha de comando e são ESTAS que você não deveria ter esquecido, hehehe
1º) grave numa lista tudo o q esta em atoms-family:
(setq lista1 (atoms-family 1))
2º) agora carregue as rotinas *.FAS ou *.VLX:
(load "arquivo.fas")
3º) grave numa lista tudo o que está em atoms-family DEPOIS do passo 2:
(setq lista2 (atoms-family 1))
4º) compare as duas listas e filtre as novas strings que apareceram:
(setq lista3 (vl-remove nil
(mapcar '(lambda (x) (if (not (member x lista1)) x))
lista2)))
5º) agora lista3 contém apenas os novos "atoms" que foram criados ao carregar as suas rotinas *.FAS ou *.VLX, com isso é so ver quais delas são executáveis na linha de comando:
(setq lista4
(mapcar '(lambda (x) (list x (type (eval (read x)))))
lista3))
percebe que extraí a informação do tipo de elemento cada string representa?
neste ponto a variável lista4 contém algo parecido com isso:
(("LISTA2" LIST) ("LISTA1" LIST) ("C:MLAY" USUBR) ("C:EXPORTATT" USUBR))
vejam a lista acima... temos o nome do "atom" numa string e seu tipo, certo?
todos os tipos SUBR (rotinas internas e compiladas), EXRXSUBR (rotinas de ARX), ou USUBR (user-defined) são executáveis de alguma forma... é só escolher!!! e pra ajudar, os "atoms" que começam com "C:" são executáveis na linha de comando e são ESTAS que você não deveria ter esquecido, hehehe
experimente também:
ResponderExcluir(vl-list-exported-functions)