Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
language:expressions [2025/03/06 22:27] – [Bit-width rules] rajit | language:expressions [2025/04/21 17:39] (current) – [Structure references] rajit | ||
---|---|---|---|
Line 185: | Line 185: | ||
} | } | ||
} | } | ||
+ | </ | ||
+ | |||
+ | ===== Structure references ===== | ||
+ | |||
+ | Functions can return [[language: | ||
+ | |||
+ | <code act> | ||
+ | deftype mystruct (int a, b) | ||
+ | { | ||
+ | | ||
+ | function getsum() : int | ||
+ | { | ||
+ | chp { | ||
+ | self := a + b | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | { | ||
+ | chp { | ||
+ | self.a := a + 1; | ||
+ | self.b := b + 1 | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | We can have expressions of the following form: | ||
+ | |||
+ | <code act> | ||
+ | mystruct s; | ||
+ | int a; | ||
+ | ... | ||
+ | chp { | ||
+ | ... | ||
+ | a := s.addone().getsum(); | ||
+ | ... | ||
+ | } | ||
</ | </ | ||