Skip to content

Symbols

Leon Starr edited this page Jan 16, 2026 · 14 revisions

I created this table early on in Scrall's development and have not updated it much. Not all of these have been implemented, some might be removed, and there could be additional items in the final grammar.

Please see the actual grammar file for the definitive set of symbols and keywords

Symbol Context Usage
* *<Class> create instance
restriction select all instances
projection select all attributes
*I<n> projection project all identifer attrs
computation type specific op (multiply)
= all scalar value assignment
#= all table value assignment
` =`
.= all assign at most one instance
..= all assign 0, 1 or many instances
0 restriction select no instances
1 restriction select at most one instance
*In projection project all In attributes
-attr projection select all but attr
~ path repeated hopping
-> all send signal
@ all time of signal delivery
=> all asynch bridge
: restriction equals, matches
: projection rank delimiter
; table definition row delimiter
!=, ==, <, >, <=, >= all comparison
<name> after action same line set sequence token
<name> before action same line token enables action
<>, |<>|, <>|, |<> all between inclusive/exclusive compare
<, <_, _>, > between table values set comparison
// all comment
& &R<num> relate instances
& before assoc class initialize assoc class attrs
!& all unrelate
! (!boolean scalar) not
! scalar1!scalar2 = assign true and false
; all separates actions and indicates no flow dependency between them on one line
/ all hop across relationship
^+, ^- before item in restriction greatest, least
^+, ^- after : in projection rank ascending, descending
^>, <^, _>, <_ all next greater, next lesser
^, +, *, - -- all set operation on table value
+=, -= all combine assignment
## join
#!! all image operation (see c.j. date)
^, +, - between table values set operations
#[ ] #= assignment table constructor
{ } all action block
( ) rhs boolean assignment boolean expression
( ) in computation math precedence
( ) after class name restriction
( ) after data type selector
( ) .( ) projection
( ) signal action, method, bridge parameter list
[] after class or table name rename,extend expression
. class.attribute, table.attribute attribute access
. .enumvalue enumerated element value
. type.operation operation on a type
:: variable::data type declare data type
?? before instance set or table variable cardinality
>> [ a >> b ] rename attribute
>> [ >>c.(formula) ] extend table
>> migration migrate instance
+ +<attr><exp> in projection extend operator
=>> in non-state activity return value
? after boolean expr if-then
? after enum value switch
? suffix in output expression output boolean value

Introduction

Model semantics

Flows (as Variables)

Constants and literals

Structure of an activity

Accessing the class model

Data flow


Grammar and parsing notes

Components

Clone this wiki locally