MAIN не выполняется фактором в командной строке - PullRequest
1 голос
/ 18 августа 2011

Я не вижу выходных данных из моей программы Hello World.

$ cat hello.factor 
USE: io
IN: hello

: hello ( -- ) "Hello World!" print ;

MAIN: hello

$ factor hello.factor
$

(без вывода)

$ factor -run=hello
Vocabulary does not exist
name "hello"

$ factor -run=hello hello.factor 
$

(без вывода)

Ответы [ 2 ]

2 голосов
/ 18 августа 2011

MAIN: определяет точку входа для словаря, когда словарь передается в run, не обязательно, когда он «загружается» из командной строки, как вы делали выше. Самый простой способ сделать это - просто набрать "hello" run из слушателя пользовательского интерфейса.

Чтобы фактически вызвать слово hello как скрипт, просто поместите вызов на верхний уровень, например так:

USE: io
IN: hello

: hello ( -- ) "Hello World!" print ;

! This is the important part
hello

Кроме того, вы можете загрузить и запустить словарь из командной строки с аргументом -run=vocab командной строки. Например, factor -run=hello.

Более подробная информация об этом содержится в документах. Попробуйте запустить "command-line" about в слушателе.

1 голос
/ 19 августа 2011

Factor теперь выполняет функцию MAIN для сценариев командной строки, в которых она указана. (См. GitHub )

...