SQF Syntax: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
m (Mentioned SQF meaning Status Quo Function)
(7 intermediate revisions by 5 users not shown)
Line 1: Line 1:
'''SQF syntax''' was introduced in [[Operation Flashpoint: Resistance]] and is the common [[Syntax|syntax]] since [[Armed Assault]]. An alternative syntax is the [[SQS syntax]] (deprecated since Armed Assault).
[[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 32: Line 32:




If a file is loaded with [[preprocessFile]], you may also define C-like comments:
If a file is loaded with [[preprocessFile]], [[execVM]] or [[spawn]], you may also define C-like comments (does not work for [[loadFile]]):


; Line comment
; Line comment
Line 58: Line 58:
* [[SQS syntax]]
* [[SQS syntax]]
* [[Function]]
* [[Function]]
* [[Statement]]
* [[Block]]
* [[Missions#Locations_of_Mission_Files|Location of script files]]
* [[SQS to SQF conversion]]


[[Category: Scripting_Topics]]
[[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.

See also