Skip to content

A transpiler to transform a new procedural language, SQF++, to the Arma 3 scripting language SQF.

License

Notifications You must be signed in to change notification settings

DavisBrown723/SQF_plusplus_Transpiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SQF_plusplus_Transpiler

A transpiler to transform a new procedural language, SQF++, to the Arma 3 scripting language SQF.

Visit the wiki for more in-depth information: https://github.com/DavisBrown723/SQF_plusplus_Transpiler/wiki

Sample SQF++ Snippet

// privatization built in with variable definitions
var _x;
var _y = 5 + 2;

// stylistic changes
if (_y > 5) {
  _x = (_y * 5) + 2
} else {
  _x = 31 - 22.5;
}

// single statement loops
if (_y > 5)
	_x = _y * 5 + 2;

while (_y > 100) _y *= 2;

// classic for-loop
// += styled assignment operators
for(var _z = _y; _z < 50; _z += 1) {
  _z += 5;
}

// enumeratored foreach loop
for(var _player : allplayers())
	hint(getpos(_player));

// switch
switch (_x) {
	case 0: {
		break;
	}
	case 1: {
		break;
	}
	default: {
		break;
	}
}

// built in object support
// using the sOOP library
_object = new Classname();
_object.property1 = _object.method1("arg1","arg2");

// SQF commands as functions in classic format
setDamage(player(), damage(player()) * 0.50);

// unnamed scopes
{
    var _a = 22;
}
isnil(_a); // true

// named functions
function add(Number,String _a, Number,String _b) {
	return _a + _b;
}

// lambdas
var _x = function() { var _y = 2 + 5 * 6; };

// lambda invokation
_x();

About

A transpiler to transform a new procedural language, SQF++, to the Arma 3 scripting language SQF.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages