Skip to content

Commit

Permalink
feat(examples): return example with subcomponents for add real numbers
Browse files Browse the repository at this point in the history
  • Loading branch information
emil14 committed Jan 27, 2024
1 parent 0ab8b45 commit ee0c8e8
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 22 deletions.
2 changes: 1 addition & 1 deletion examples/1_echo/main.neva
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
components {
Main(enter any) (exit any) {
nodes {
read io.Reader
reader io.Reader
printer Printer<string>
}
net {
Expand Down
9 changes: 0 additions & 9 deletions examples/2_hello_world/z_with_literal_sender/main.neva.tmp

This file was deleted.

6 changes: 1 addition & 5 deletions examples/5_add_real_numbers/naive/main.neva
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// Program that adds two numbers typed by user and prints the result.
// Here we learn strconv package and why error handling is important.

import {
Expand All @@ -10,15 +9,12 @@ components {
Main(enter any) (exit any) {
nodes {
reader1 io.Reader
parser1 strconv.NumParser<int>

reader2 io.Reader
parser1 strconv.NumParser<int>
parser2 strconv.NumParser<int>

adder PortBridge { handler Adder<int> }
printer Printer<int>
}

net {
in:enter -> reader1:sig
reader1:s -> parser1:s
Expand Down
9 changes: 2 additions & 7 deletions examples/5_add_real_numbers/with_error_handling/main.neva
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,12 @@ components {
Main(enter any) (exit any) {
nodes {
reader1 io.Reader
parser1 strconv.NumParser

reader2 io.Reader
parser2 strconv.NumParser

parser1 strconv.NumParser<int>
parser2 strconv.NumParser<int>
adder PortBridge { handler Adder<int> }
printer Printer<any>
}

net {
in:enter -> reader1:sig
reader1:s -> parser1:s
Expand All @@ -26,11 +23,9 @@ components {
adder:p[0]
reader2:sig
}

reader2:s -> parser2:s
parser2:err -> printer:msg
parser2:res -> adder:p[1]

add:res -> printer:msg
printer:msg -> out:exit
}
Expand Down
42 changes: 42 additions & 0 deletions examples/5_add_real_numbers/with_sub_components/main.neva
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
// Here we learn how to handle errors by fixing this simple program

import {
std/io
std/strconv
}

components {
Main(enter any) (exit any) {
nodes {
reader1 IntReader
reader2 IntReader
adder PortBridge { handler Adder<int> }
printer Printer<any>
}
net {
in:enter -> reader1.sig
reader1:num -> {
adder:seq[0]
reader2:sig
}
reader1:err -> printer:msg
reader2.num -> adder.seq[1]
reader2.err -> printer:msg
adder.res -> printer:msg
printer:msg -> out:exit
}
}

IntReader(sig any) (num int, err error) {
nodes {
reader io.Reader
parser strconv.NumParser<int>
}
net {
in:sig -> reader:sig
reader:s -> parser:s
parser:num -> out:num
parser:err -> out:err
}
}
}

0 comments on commit ee0c8e8

Please sign in to comment.