This shows you the differences between two versions of the page.
— |
expando_substitution [2007/08/06 21:25] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ======Expando substitutions====== | ||
+ | Before a string can be used, it must be "expanded" whereby the expandos (things | ||
+ | that start with $) in the string are removed and replaced with their values, | ||
+ | and backslashes (\\) are dequoted. However, stuff inside of parenthesis | ||
+ | "(...)" or curly braces "{...}" is considered literal text and is not | ||
+ | expanded. The stuff inside parenthesis and curly braces is usually | ||
+ | expanded later by someone else. | ||
+ | |||
+ | ======Places where expandos are substituted====== | ||
+ | The following strings are expanded each time they are used: | ||
+ | - Command statements before they are executed, as in "//echo $ooga//" | ||
+ | - The argument list to any function call, as in $foo(//$ooga//) | ||
+ | - Any expression [[lval]]ue, as in "@//$ooga// += 3" | ||
+ | - The contents of a [...] or "..." expression operand, as in "@foo = [//$ooga//]" | ||
+ | - The default value of an arglist variable, as in "alias off (var1 default "//$ooga//") | ||
+ | - The width modifier in an expando (see below), as in "$[//$ooga//]foo" | ||
+ | - The inside of the $(...) expando, as in $(//$ooga//) | ||
+ | - The BX compatable form of $cparse(), as in $cparse("one two" //buckle my $1 shoes $ooga//) | ||
+ | - The wildcard pattern of a flexible hook, as in /on msg '//$ooga// *' {...} | ||
+ | - The word list to [[fe]] or [[fec]], as in /fe (//$ooga//) {...} | ||
+ | - The word list to [[for|for var in]], as in /for i in (//$ooga//) {...} | ||
+ | - The control value in [[switch]], as in /switch (//$ooga//) {...} | ||
+ | - The matching pattern in [[switch]], as in /switch ($*) {(//$ooga//) {...}} | ||
+ | - Ach, there are so many more... | ||
+ | |||
+ | =====Modifiers applicable to any expando===== | ||
+ | |||
+ | =====All forms===== | ||
+ | |||
+ | =====Protection from expansion===== | ||
+ | |||
+ | =====Expandos and expression mode===== | ||
+ | |||
+ | =====Special expandos===== | ||