!747 !multi-line strings m { !include #1001509 // rules & statements static class MentalNode { S id = "?" + makeRandomID(8); new L names; // first name is normally used new L isA; S getName() { ret names.isEmpty() ? id : names.get(0); } } static S anonymous() { ret "?" + makeRandomID(6); } static new L nodes; p { MentalNode computer = newNode("computer", "computer (the concept)"); MentalNode notebook = newNode("teubizvjbppd", "my notebook"); notebook.isA.add(computer); MentalNode server = newNode("onxytkatvevr", "my server"); server.isA.add(computer); print("Nodes:"); print(indent(2, structureList(nodes))); } // show structure of a list in multiple lines static S structureList(L l) { new L bla; for (O x : l) bla.add(structure(x)); ret fromLines(bla); } static MentalNode newNode(S... names) { new MentalNode n; n.names.addAll(asList(names)); nodes.add(n); ret n; } }