UserAgent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.8) 
Gecko/20050511 Firefox/1.0.4
IP: 198.54.202.218
URI: http://wesnoth.slack.it/?PreprocessorRef
 - - - - -
Index: PreprocessorRef
===================================================================
RCS file: /home/wesnoth/cvsroot/wikiroot/PreprocessorRef,v
retrieving revision 1.18
diff -u -r1.18 PreprocessorRef
--- PreprocessorRef     2 Jul 2005 17:24:29 -0000       1.18
+++ PreprocessorRef     3 Jul 2005 16:00:16 -0000
@@ -1,16 +1,17 @@
-||the WML preprocessor||
+||The WML preprocessor||
 
 Wesnoth loads just one configuration file directly: ||data/game.cfg||.
 However the WML preprocessor allows game.cfg to load in more files.
-Whenever a WML file is read by Wesnoth, it is passed through a preprocessor.
+Whenever a WML file is read by Wesnoth, it is passed through the preprocessor.
 
-The preprocessor is applied recursively, i.e included files will be parsed for 
macros,
-and macro expansion will be reparsed for macros, etc.
-As a result, you should not write a recursive macro,
-because it will cause an infinite loop and crash Wesnoth.
+The preprocessor is applied recursively, so included files will
+be parsed for macros, and after macro expansion will be parsed for macros
+again, and so on.  As a result, you should not write a recursive macro,
+because it will cause an infinite loop.
 <a href="http://www.wesnoth.org/forum/viewtopic.php?t=5838";>Changes to the 
preprocessor in 0.9.2</a>
-allow recursively nested #ifdefs, but recursively nested macro definitions 
('#define')
-will still cause errors (but not necessarily error messages).
+allow recursively nested #ifdefs, but recursively nested
+macro definitions ('#define') will still cause errors
+(but not necessarily error messages).
 
 The following directives are used to create and use //macros//,
 i.e. shortcuts which reduce repetition of information.
@@ -18,46 +19,58 @@
 * ||#define //symbol// [//parameters//]  //newline// //substitution// #enddef||
 all subsequent occurences of ||{//symbol// [//arguments//]}|| (see below)
 will be replaced by //substitution// with all occurences of any parameter
-{//parameter//} within //substitution// replaced by the parameter's 
corresponding value in //arguments//.
+{//parameter//} within //substitution// replaced by the parameter's
+corresponding value in //arguments//.
 For example, the UNIT macro used below would be defined:
 
- #define UNIT TYPE X Y## the ordering is important here; since WML does not 
distinguish data into different types,
-                      ## only the ordering is used to determine which 
arguments apply to which parameters.
+ #define UNIT TYPE X Y## the ordering is important here; since WML
+                      ## does not distinguish data into different types,
+                      ## only the ordering is used to determine which
+                      ## arguments apply to which parameters.
  [unit]
- type={TYPE}## the unit will be of type TYPE, so different instantiations of 
this macro can create different units.
+ type={TYPE}## the unit will be of type TYPE, so different instantiations
+            ## of this macro can create different units.
  x={X}
  y={Y}
- side=2## the unit will be an enemy, regardless of the parameter values. This 
reduces "repetition of information",
-       ## since it is no longer necessary to specify each created unit as 
enemy.
+ side=2## the unit will be an enemy, regardless of the parameter values.
+       ## This reduces "repetition of information", since it is no longer
+       ## necessary to specify each created unit as an enemy.
  [/unit]
  #enddef
-
 (See SingleUnitWML for information on creating units using WML.)
-* ||{//symbol// [//arguments//]}|| if //symbol// is defined,
-the preprocessor will replace this instruction by the expression //symbol// is 
defined as,
-using //arguments// as parameters.
-You can create multiple words arguments by using parentheses to restrain the 
argument.
-For example, while ||{UNIT Wolf Rider 18 24}|| will attempt to create a "Wolf" 
at (Rider,18), causing Wesnoth to crash,
-the macro ||{UNIT (Wolf Rider) 18 24}|| will create a "Wolf Rider" at (18,24) 
as it should.
-(||UNIT|| is defined above).
-See the //#define// preprocessor instruction above for information on defining 
symbols,
-including symbols with arguments.
-Several symbols are defined in the normal game code; for reference they are 
listed in UtilWML.
-
-Unlike the other preprocessor directives, #ifdef is not used for convenience.
-It is necessary to distinguish between differen modes of play.
+* ||{//symbol// [//arguments//]}||
+<br/>if //symbol// is defined, the preprocessor will replace this
+instruction by the expression //symbol// is defined as,
+using //arguments// as parameters.  You can create multiple word
+arguments by using parentheses to restrain the argument.
+For example, while ||{UNIT Wolf Rider 18 24}|| will attempt to create
+a "Wolf" at (Rider,18), causing Wesnoth to crash,
+the macro ||{UNIT (Wolf Rider) 18 24}|| will create a "Wolf Rider"
+at (18,24) as it should. (||UNIT|| is defined above).
+See the //#define// preprocessor instruction above for information
+on defining symbols, including symbols with arguments.
+Several symbols are defined in the normal game code;
+for reference they are listed in UtilWML.
+
+Unlike the other preprocessor directives, #ifdef is not
+used for convenience.
+It is necessary to distinguish between different modes of play.
 * ||#ifdef //symbol// //substitution-if-stored//  [#else 
//substitution-if-not-stored//] #endif||
-if //symbol// has been stored, the whole block will be replaced by 
//substitution-if-stored//.
-if not, it will be replaced by //substitution-if-not-stored// if it is 
available.
-Each campaign stores both a difficulty level (usually ||EASY||, ||NORMAL||, or 
||HARD||),
-and a campaign ID. See CampaignWML for information on how and why to store 
symbols.
+<br/>If //symbol// has been stored, the whole block will be replaced by
+//substitution-if-stored//.
+If not, it will be replaced by //substitution-if-not-stored//
+if it is available.
+Each campaign stores both a difficulty level
+(usually ||EASY||, ||NORMAL||, or ||HARD||), and a campaign ID.
+See CampaignWML for information on how and why to store symbols.
 
 These directives expand a file by including other files:
 * ||{//filename//}|| if //filename// isn't a predefined symbol (see above),
-Wesnoth will assume it's a path to a file in the main data/
+Wesnoth will assume it's a path to a file in the main ||data/||
 subdirectory of Wesnoth and include the file it points to here "as is".
-Forward slashes('||/||') should be used to separate directories from their 
elements,
-even if your platform uses a different symbol such as arrow('||>||') or 
backslash('||\||').
+Forward slashes('||/||') should be used to separate directories from
+their elements, even if your platform uses a different symbol
+such as colon ('||:||') or backslash ('||\||').
 If //filename// points to a directory,
 the preprocessor will include all files in the directory //filename//,
 non-recursively and in alphabetical order.
@@ -65,21 +78,21 @@
 that the filename is relative to the user data directory.
 The //user data directory// varies depending on platform:
 
- Platform| User Data Directory
- -----------------------------
- UNIX    | ~/.wesnoth/data/
- Mac OSX | user home folder>Library>Preferences>Wesnoth
- Windows | main Wesnoth directory/userdata/
+ Platform | User Data Directory
+ ------------------------------
+ UNIX     | ~/.wesnoth/data/
+ Mac OS X | ~/Library/Preferences/Wesnoth or ~/.wesnoth/data
+ Windows  | "main Wesnoth folder"\userdata\
 * ||{@//filename//}|| is a convenient way
-to make Wesnoth look for a file by that name in both the main and the user 
data directory.
+to make Wesnoth look for a file by that name in both the main and
+the user data directory.
 It is equivalent to writing ||{//filename//}{~//filename//}||.
-* ||{./<i>filename</i>}|| similar to the ||{//filename//}|| directive,
-but is assumed to be relative to the directory which contains the file which 
contains it.
-For example, if used in game.cfg, it is equivalent to ||{//filename//}||.
+* ||{./<i>filename</i>}|| is similar to the ||{//filename//}|| directive,
+but is assumed to be relative to the directory which contains the file
+in which this appears. For example, if used in game.cfg, it is equivalent to
+||{//filename//}||.
 
 
 ||See Also||
-
 * SyntaxWML
 * ReferenceWML
-




_______________________________________________
Wesnoth-wiki-changes mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/wesnoth-wiki-changes

Reply via email to