Quick actions

cmd+k|ctrl+k

Navigation

Languages

Untitled

Snippet info

Language

Raku

Visibility

unlisted

Author

legacy-anonymous

Created

2020-07-11T14:27:26Z

Updated

2020-07-11T14:27:26Z

#! /usr/bin/env rakudo


grammar Calculator {
    rule TOP {
        <number> ',' <number> ',' <letter>
    }

    token number {
        \d+
    }

    token letter {
        \w
    }
}

class CalculatorActions {
    method TOP($/) {
        $/.make($/.chunks.grep({.value ~~ Match}).map(*.value.made).join: "\n");
    }

    method number($/) {
        $/.make("number: " ~ +$/);
    }

    method letter($/) {
        $/.make("letter: " ~ $/.Str);
    }
}

Calculator.parse('3, 4, x',
                 :actions(CalculatorActions)).made.say;
INFO