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

51
LINES

< > BotCompany Repo | #1004474 // A point contains...

JavaX source code [tags: use-pretranspiled] - run with: x30.jar

Libraryless. Click here for Pure Java version (2043L/14K/47K).

!752

static S inputText = [[
  a point contains an "x coordinate"
  a point contains an "y coordinate"
  p is a point
  
  A is a B
  a B contains a C
    -> A contains a C
]];

static new L<S> statements;
static new L<Rule> rules;

p {
  inputText = anToA(inputText);
  L<S> log = toLinesTrim2(inputText);
  L<Int> emptyLines = concatLists(ll(-1), indexesOf(log, ""), ll(l(log)));
  for (int ii = 0; ii+1 < l(emptyLines); ii++) {
    int i = emptyLines.get(ii), j = emptyLines.get(ii+1);
    L<S> l = subList(log, i+1, j);
    continue if empty(l);
    L<Int> arrows = indexesOfLinesStartingWith(l, "->");
    if (empty(arrows))
      statements.addAll(l);
  }
  
  rules = parseRules(inputText);
  
  print("Rules:");
  pslIndent(rules);
  
  print("Statements:");
  printIndented(nlPrettyPrint(statements));
  
  L<S> newStatements = inferStuff();
  print("New statements:");
  printIndented(nlPrettyPrint(newStatements));
}

static L<S> inferStuff() {
  genLog_set(new L(statements));
  for (Rule rule : rules) {
    L<SS> matches = asList(gSatAnd(rule.in));
    for (S out : rule.out)
      for (SS match : matches)
        gAdd(replaceVars_autoQuote(out, match));
  }
  ret new L(subList(gLog(), l(statements)));
}

download  show line numbers  debug dex  old transpilations   

Travelled to 15 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, ddnzoavkxhuk, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt

No comments. add comment

-
Snippet ID: #1004474
Snippet name: A point contains...
Eternal ID of this version: #1004474/1
Text MD5: 9d4c6c68eda47a714afb8d299782a10e
Transpilation MD5: ea35cfcbbeeb2ce4d6114014c133014b
Author: stefan
Category: javax / talking robots
Type: JavaX source code
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2016-08-18 20:41:59
Source code size: 1268 bytes / 51 lines
Pitched / IR pitched: No / No
Views / Downloads: 589 / 712
Referenced in: