Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

76
LINES

< > BotCompany Repo | #1023737 // "My Day" [v2, parse into fields]

JavaX source code (Dynamic Module) [tags: use-pretranspiled] - run with: Stefan's OS

Uses 911K of libraries. Click here for Pure Java version (4272L/23K).

!7

// Text + questions from https://lingua.com/english/reading/my-day/

cmodule MyDay > DynPrintLog {
  transient new L<Question> questions;
  transient S text;
  transient LS textSentences;
  
  sclass Question {
    S question;
    LS answers; // 1 to 4
  }
  
  start-thread {
    LS paragraphs = pnlStruct(paragraphsTokC([[
    
      Text
      ----
      
      First, I wake up. Then, I get dressed. I walk to school. I do not ride a bike. I do not ride the bus. I like to go to school. It rains. I do not like rain. I eat lunch. I eat a sandwich and an apple.
      
      I play outside. I like to play. I read a book. I like to read books. I walk home. I do not like walking home. My mother cooks soup for dinner. The soup is hot. Then, I go to bed. I do not like to go bed.
      
      
      Question 1:
      What happens first?
      1 Get dressed	2 Wake up
      3 Eat lunch	4 Walk to school
      
      Question 2:
      What do I like?
      1 Books	2 Rain
      3 Walking home	4 Going to bed
      
      Question 3:
      How do I go to school?
      1 I ride a bike.	2 I walk.
      3 I ride the bus.	4 I drive a car.
      
      Question 4:
      What do I eat for dinner?
      1 Sandwich	2 Pie
      3 Soup	4 Apple
      
      Question 5:
      What do I not like?
      1 Going to school	2 Going to bed
      3 Playing	4 Soup
      
    ]]));
    
    L<Bool> isQ = print(map(rcurry_swic("Question"), paragraphs));
    int idx = print(falsesFollowedByTrues_changeIndex_assertNotNull(isQ));
    LS textPart = takeFirst(paragraphs, idx);
    LS questionsPart = sublist(paragraphs, idx);
    assertTrue(isPreciseMultiDashesHeading(first(textPart)));
    text = joinWithEmptyLines(dropFirst(textPart));
    textSentences = pnl(sentences(text));
    
    for (S s : questionsPart) {
      LS lines = tlft(s);
      assertEquals(4, l(lines));
      assertStartsWith(first(lines), "Question ");
      S q = second(lines);
      LS answersOnLine = regexpGroups("^1(.+)2(.+)$", third(lines));
      assertNempty(answersOnLine);
      LS answersOnLine2 = regexpGroups("^3(.+)4(.+)$", last(lines));
      assertNempty(answersOnLine2);
      LS answers = trimAll(concatLists(answersOnLine, answersOnLine2));
      add(questions, nu Question(question := q, +answers));
      print(q);
      printStruct(answers);
    }
  }
}

Author comment

Began life as a copy of #1023735

download  show line numbers  debug dex  old transpilations   

Travelled to 6 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1023737
Snippet name: "My Day" [v2, parse into fields]
Eternal ID of this version: #1023737/1
Text MD5: 0ac399a6a69ddd819e22fdbcaa0e81f5
Transpilation MD5: 5b9c15a73cd8fe434a405b7f5f981b4f
Author: stefan
Category: javax
Type: JavaX source code (Dynamic Module)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2019-07-07 21:57:53
Source code size: 2415 bytes / 76 lines
Pitched / IR pitched: No / No
Views / Downloads: 343 / 22704
Referenced in: #1023740 - "My Day" [v3, parser in include]