SQF Syntax: Difference between revisions
m (→Rules) |
SilentSpike (talk | contribs) m (Mentioned SQF meaning Status Quo Function) |
||
(19 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[[SQF syntax]] (where SQF stands for Status Quo Function) was introduced in [[Operation Flashpoint: Resistance Version History|OFP: Resistance]] and is the common [[Syntax|syntax]] since [[Armed Assault]]. An alternative syntax is the [[SQS syntax]] (deprecated since Armed Assault). | |||
== Rules == | == Rules == | ||
Line 7: | Line 5: | ||
Binding rules: | Binding rules: | ||
* Curled braces group code to '''blocks''' | * Curled braces ({ }) group code to '''[[Block|blocks]]''' | ||
* | * [[Statement|Statements]] (thus also blocks) are followed by '''semicolons''' (;) | ||
The latter rule tells the game engine where one | The latter rule tells the game engine where one statement ends and the next starts. | ||
Example: | Example: | ||
STATEMENT 1; | |||
STATEMENT 2; | |||
BLOCK | |||
{ | { | ||
STATEMENT 3; | |||
STATEMENT 4; | |||
}; | }; | ||
== | While [[SQS syntax]] is line based, SQF syntax is based on structured expressions. End-of-line has no special meaning - it is considered to be equivalent to space or tab, and is therefore not required, even when ending a statement. | ||
== Comments == | |||
A comment is any free text which is ignored by the game engine. In SQF syntax you can write comments using the command [[comment]]. | |||
Example: | |||
comment "This is a comment"; | |||
If a file is loaded with [[preprocessFile]], [[execVM]] or [[spawn]], you may also define C-like comments (does not work for [[loadFile]]): | |||
; Line comment | |||
: A line comment starts with <tt>//</tt> and makes the rest of the line a comment. | |||
; Block comment | |||
: A block comment starts with <tt>/*</tt> and ends with <tt>*/</tt>. All text in between is considered a comment. | |||
Examples: | |||
// This is a line comment | |||
/* | |||
This is | |||
a very long | |||
block comment | |||
*/ | |||
== Language Constructs == | |||
Read the article [[Control Structures]] for information about the control structures available in SQF syntax. | |||
==See also== | == See also == | ||
[[Function]] | * [[SQS syntax]] | ||
* [[Function]] | |||
* [[Statement]] | |||
* [[Block]] | |||
* [[Missions#Locations_of_Mission_Files|Location of script files]] | |||
* [[SQS to SQF conversion]] | |||
[[Category: | [[Category: Syntax]] | ||
[[Category:Scripting Topics]] |
Revision as of 19:21, 29 April 2015
SQF syntax (where SQF stands for Status Quo Function) was introduced in OFP: Resistance and is the common syntax since Armed Assault. An alternative syntax is the SQS syntax (deprecated since Armed Assault).
Rules
Binding rules:
- Curled braces ({ }) group code to blocks
- Statements (thus also blocks) are followed by semicolons (;)
The latter rule tells the game engine where one statement ends and the next starts.
Example:
STATEMENT 1; STATEMENT 2; BLOCK { STATEMENT 3; STATEMENT 4; };
While SQS syntax is line based, SQF syntax is based on structured expressions. End-of-line has no special meaning - it is considered to be equivalent to space or tab, and is therefore not required, even when ending a statement.
Comments
A comment is any free text which is ignored by the game engine. In SQF syntax you can write comments using the command comment.
Example:
comment "This is a comment";
If a file is loaded with preprocessFile, execVM or spawn, you may also define C-like comments (does not work for loadFile):
- Line comment
- A line comment starts with // and makes the rest of the line a comment.
- Block comment
- A block comment starts with /* and ends with */. All text in between is considered a comment.
Examples:
// This is a line comment /* This is a very long block comment */
Language Constructs
Read the article Control Structures for information about the control structures available in SQF syntax.