62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Factor
		
	
	
|  | ! Copyright (C) 2008 Joe Groff. | ||
|  | ! See http://factorcode.org/license.txt for BSD license. | ||
|  | USING: help.markup help.syntax kernel multiline ;
 | ||
|  | IN: literals | ||
|  | 
 | ||
|  | HELP: $ | ||
|  | { $syntax "$ word" } | ||
|  | { $description "Executes " { $snippet "word" } " at parse time and adds the result(s) to the parser accumulator." } | ||
|  | { $notes { $snippet "word" } "'s definition is looked up and " { $link call } "ed at parse time, so words that reference words in the current compilation unit cannot be used with " { $snippet "$" } "." } | ||
|  | { $examples | ||
|  | 
 | ||
|  |     { $example <" | ||
|  | USING: kernel literals prettyprint ;
 | ||
|  | IN: scratchpad | ||
|  | 
 | ||
|  | CONSTANT: five 5
 | ||
|  | { $ five } .
 | ||
|  |     "> "{ 5 }" } | ||
|  | 
 | ||
|  |     { $example <" | ||
|  | USING: kernel literals prettyprint ;
 | ||
|  | IN: scratchpad | ||
|  | 
 | ||
|  | << : seven-eleven ( -- a b ) 7 11 ; >> | ||
|  | { $ seven-eleven } .
 | ||
|  |     "> "{ 7 11 }" } | ||
|  | 
 | ||
|  | } ;
 | ||
|  | 
 | ||
|  | HELP: $[ | ||
|  | { $syntax "$[ code ]" } | ||
|  | { $description "Calls " { $snippet "code" } " at parse time and adds the result(s) to the parser accumulator." } | ||
|  | { $notes "Since " { $snippet "code" } " is " { $link call } "ed at parse time, it cannot reference any words defined in the same compilation unit." } | ||
|  | { $examples | ||
|  | 
 | ||
|  |     { $example <" | ||
|  | USING: kernel literals math prettyprint ;
 | ||
|  | IN: scratchpad | ||
|  | 
 | ||
|  | << CONSTANT: five 5 >> | ||
|  | { $[ five dup 1+ dup 2 + ] } .
 | ||
|  |     "> "{ 5 6 8 }" } | ||
|  | 
 | ||
|  | } ;
 | ||
|  | 
 | ||
|  | { POSTPONE: $ POSTPONE: $[ } related-words | ||
|  | 
 | ||
|  | ARTICLE: "literals" "Interpolating code results into literal values" | ||
|  | "The " { $vocab-link "literals" } " vocabulary contains words to run code at parse time and insert the results into more complex literal values." | ||
|  | { $example <" | ||
|  | USING: kernel literals math prettyprint ;
 | ||
|  | IN: scratchpad | ||
|  | 
 | ||
|  | << CONSTANT: five 5 >> | ||
|  | { $ five $[ five dup 1+ dup 2 + ] } .
 | ||
|  |     "> "{ 5 5 6 8 }" } | ||
|  | { $subsection POSTPONE: $ } | ||
|  | { $subsection POSTPONE: $[ } | ||
|  | ;
 | ||
|  | 
 | ||
|  | ABOUT: "literals" |