2009-02-12 5 views
2

Скажем, у меня есть сценарий REBOL в другом файле (imported.r), который выглядит следующим образом:Как получить доступ к заголовку REBOL?

REBOL [ 
    author: {Greg} 
    title: {Awesome REBOL Code} 
] 
x: 3 

Как я могу импортировать этот файл в другой сценарий, и получить доступ к содержимому заголовка REBOL? Я знаю load/header, но я не могу ничего с этим поделать.

imported: context load/header %imported.r

Что мне делать сейчас, чтобы получить доступ к заголовку imported.r как object!?

ответ

4

LOAD/HEADER дает вам блок кода, как вы можете видеть по PROBEING, что он возвращает. Он содержит необоснованный источник для создания объекта заголовка, за которым следует остальная часть скрипта.

СДЕЛАТЬ ОБЪЕКТ! из этого кода заголовка, один из способов является

>> set [header script] do/next load/header %imported.r 
>> header/title 
== "Some script title" 

или, если вам нужно только объект заголовка, просто

>> header: first do/next load/header %imported.r 
>> header/title 
== "Some script title" 

Это дает вам объект доступа через HEADER и код скриптов в блоке SCRIPT, поскольку DO/NEXT оценивает только первое выражение и возвращает результат выражения и позицию в блоке кода после этой оценки.

+0

Вы также можете сделать - скрипт: load/header% import.r header: взять скрипт – rgchris