github.com/nevalang/neva@v0.23.1-0.20240507185603-7696a9bb8dda/e2e/add_nums_from_stdin_with_sub_components/main/main.neva (about)

     1  import {
     2  	io
     3   	strconv
     4  }
     5  
     6  component {
     7  	Main(start any) (stop any) {
     8  		nodes { Aux, Println<any> }
     9  
    10  		:start -> aux:sig
    11  		aux:res -> println:data
    12  		aux:err -> println:data
    13  		println:sig -> :stop
    14  	}
    15  	
    16  	Aux(sig any) (res int, err error) {
    17  		nodes {
    18  			reader1 IntReader
    19  			reader2 IntReader
    20  			adder ReducePort<int> { Add<int> }
    21  		}
    22  
    23  		:sig -> reader1:sig
    24  		reader1:num -> [adder:port[0], reader2:sig]
    25  		reader1:err -> :err
    26  		reader2:err -> :err
    27  		reader2:num -> adder:port[1]
    28  		adder:res -> :res
    29  	}
    30  
    31  	IntReader(sig any) (num int, err error) {
    32  		nodes { io.Scanln, strconv.ParseNum<int> }
    33  
    34  		:sig -> scanln:sig
    35  		scanln:data -> parseNum:data
    36  		parseNum:res -> :num
    37  		parseNum:err -> :err
    38  	}
    39  }