-
Notifications
You must be signed in to change notification settings - Fork 0
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 |
Copyright 2020, 2021, 2022, 2023, 2025 © Leon Starr under MIT Open Source License
- Why they are problematic
- Instance attribute creation values
- Boolean values
- Special values
- Enumerated values
- Action block
- Statement
- Single line action
- Multiple dependent actions on a single line
- An action spread across multiple lines
- A conditional group of single line actions
- Comments
- Finding instances
- Attribute access
- Creation and deletion
- Subclass migration
- Creating a table from a class
- Creating a table with a definition
- Converting a table into a class
- Set operations on tables
- Set comparisons on tables
- Join
- Rename
- Extend
- Aggregation
- Rank
- Image
- Input values
- Signatures and name doubling
- Output values
- Execution order
- Sequential execution
- Conditional execution
- Signals
- Scrall has no for_each action
- Iteration