Meme Script
● Type System
● If, while etc
● Dates, times, strings
Meme Script Example
var x = 10;
var y = 20;
var z : Integer;
z = x + y;
notify(z);
Meme IDE Function Editor
Primitive Types
● Integer 10, -234
● Decimal 1.23
● String “ABC”
● Boolean true, false
Declaring Integer Variables
● Local variables within functions
var x : Integer;
var x2 = 1;
Declaring Decimal Variables
var d : Decimal(2);
var d2 = 1.23;
Declaring Boolean Variables
var b : Boolean;
var b2 = true;
Declaring Strings
var s : String;
var s = “abc”;
Default Initializations
● String - empty string “”
● Integer and Decimal – 0
● Boolean – false
Pre-defined Complex Types
● Date – day, month, year
● Time – hour, minute, second
● Duration – hour, minute, second
● Timestamp
IF
var a = 15;
if (a > 10)
{
notify(“A is big”);
}
IF / ELSE
var a = 15;
if (a > 10)
{
notify(“A is big”);
}
else
{
notify(“A is small”);
}
IF / ELSIF / ELSE notify(“A is small”);
}
notify(“A is big”);
}
elsif (a > 5)
{
notify(“A is medium sized”);
}
else
{
notify(“A is small”);
}
WHILE
var x = 0;
while (x < 10)
{
x++;
// do other things
}
FOR
var names : String[];
append(names, "Jack");
append(names, "Jill");
append(names, "Jane");
for (name in names)
{
notify(name);
}
Arithmetic
var c = 20;
f = c * (9.0 / 5.0) + 32;
notify(f);
Logical Operators
var x = 10;
if ((x > 10) and not (x > 20))
{
notify(“x is middle sized”);
}
Dataspace
Defining a 'Person' Record
Adding Attributes to the 'Person' Record
Naming Conventions
Record Type Names● bumpy case with initial uppercase, ● - E.g. Person or EmployeeDetails
Attribute names in records● - bumpy case with initial lowercase● - E.g. name or firstName
Defining an Address Record
Adding List of Addresses to Person
Creating a Person Record
var p : Person;
var a : Address;
a.line1 = "12 Hight St";
a.zip = "PA 12345";
p.name = "Simon";
p.tel = "1234567";
append(p.addresses, a);
'Dot' Notation
notify(p.addresses[0].line1);
p.addresses[0].line1 = "13 High St"
String Concatenation
var s1 = "The Start"
var s2 = "The Middle"
var s3 = "The End"
var result = s1 + ", " + s2 + ", " + s3 + ". " + 3 + " parts.";
The Start, The Middle, The End. 3 parts.
String Comparison
var s1 = "String 1";
var s2 = "String ONE";
if (s1 == s2)
{
notify("Yes");
}
String Utilities
● Boolean startsWith(sourceString, matchString)
● Boolean endsWith(sourceString, matchString)
● String subString(sourceString, startPos, length)
● Integer size(sourceString)
● String toLower(sourceString)
● String toUpper(sourceString)
● String trim(sourceString)
● String replaceAll(sourceString, matchString, replacementString)
● String replaceFirst(sourceString, matchString, replacementString)
● String replaceLast(sourceString, matchString, replacementString)
Collections
var people : Person[];
var names : String[];
append(names, "Fred");
append(names, "Jane");
INSERT
var people : Person[];
var names : String[];
append(names, "Fred");
append(names, "Jane");
insert(names, "Joe", 0);
Collections and []
var people : Person[];
var fred : Person[];
fred.name = "Fred";
fred.tel = "12345";
people.append(fred);
var jane : Person[];
jane.name = "Fred";
jane.tel = "12345";
people.append(jane);
people.remove(fred);
Removing from a Collection
var people : Person[];
var fred : Person[];
fred.name = "Fred";
fred.tel = "12345";
people.append(fred);
remove(people, fred);
notify(people[1].name);
Date and Time Types
● Date - day, month, year
● Time - hour, minute, second
● Duration - hour, minute, second
● Timestamp
Date and Time Arithmetic
var t : Time;
t = timeNow();
var dt : Duration;
dt.hour = 1;
t = addTime(t, dt);
Date and Time Utilities
● dateNow()
● timeNow()
● setDate(Date, year, month, day)
● setTime(Time, hour, min, sec)
● addDays(Date, days)
● dayOfWeek(Date)
● monthOfYear(Date)
● formatDate(Date, formatString)
● formatTime(Time, formatString)
● formatTimestamp(Timestamp, String)
Date FormattingCode Description Example
Resultd Day of the month without leading zero “1”dd Day of the month with leading zero “01”ddd The localised name for the day of the week “Sunday”m Month of the year without leading zero “1”mm Month of the year with leading zero “01”mmm The localised short (3 letter) name for the month “Jan”mmmm The localised full name for the month “January”yy The year as two digits “10”yyyy The year as four digits “2010”
var today : Date;today = dateNow();formatDate(today, “mmm d, yyyy”);
“January 1, 2011”
Time FormattingCode Description Example resultHHH Hour in 24 hour format with leading zero 19HH Hour in 24 hour format with leading zero 08H Hour in 12 hour format without leading zeros 8MM Minute with leading zero 05M Minute without leading zero 5SS Seconds with leading zero 09S Seconds without leading zero 9PP am / pm indicator am
var t : Time;t = timeNow();formatTime(t, “HH:MM:SS PP”);
“12:34:10 am”
Questions?
Top Related