prolog-blockly 1.0.13 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef3c9caefa2689a699cbb66594519b077360d5ff7f490ce27b9247ea2dfdbee9
4
- data.tar.gz: ef17cc5ca934e0f8517dd100efb1c5d62025bba880378e95590414bddd749124
3
+ metadata.gz: f2844a64863dbc7b2ae9ed79348d67e4727b32853a9e8f7a2a981546abd5d462
4
+ data.tar.gz: 748de21db30187284247da28485c898b31f386e2de32ee968bf8e0176d8b2949
5
5
  SHA512:
6
- metadata.gz: 8b1f0850497c197a816f72deebbe1dc3721ab5c5d0bd5c96e705fd4b9cb0d3e770c3c145c08e6e3f2b0c21a48c790a7ddc35eac2f476b97f4919037b819f4592
7
- data.tar.gz: 6a768f798871b75a221b99800486e8a22b7ebb34e66bbf1c39399220d985f1d225919cf186fa29131c81bf5d6c30dff17a783d154c18933637d1744a5b91169e
6
+ metadata.gz: b70e5148ba641a39a3922e2f73b8463232c7508e5b6e04a8a4ac10b21fcff1f20ccda274542cbe9b20cb50100bb3570fda2735a47cdd2ab0b05fac5e6002a182
7
+ data.tar.gz: deb2c258e1e4a7613af5f5a46a37c3a99ea00f9eda6eb2774ea90c680363b6d3e674c4da3d0e4205d56cd89c06e293031d57700e67ee17bc9382db19d11ac07a
@@ -39,14 +39,17 @@ Example:
39
39
  </category>
40
40
  <category name="Comandos">
41
41
  <block type="forall"></block>
42
+ <block type="not"></block>
42
43
  </category>
43
- <category name="Individuos y Variables">
44
+ <category name="Individuos">
44
45
  <block type="IndividuoSelector"></block>
46
+ </category>
47
+ <category name="Variables">
45
48
  <block type="VariableSelector"></block>
46
49
  </category>
47
- <category name="Mis predicados" custom="PROCEDURE_CALLS">
50
+ <category name="Mis condiciones" custom="PROCEDURE_CALLS">
48
51
  </category>
49
- <category name="Predicados">
52
+ <category name="Condiciones">
50
53
  <block type="procedures_defnoreturn"></block>
51
54
  </category>
52
55
  <category name="Asignación">
@@ -4328,7 +4331,7 @@ Blockly.CUSTOM_COLORS.variable = Blockly.MUMUKI_COLORS.blue;
4328
4331
  Blockly.CUSTOM_COLORS.parameter = Blockly.MUMUKI_COLORS.blue;
4329
4332
  Blockly.CUSTOM_COLORS.primitiveFunction = Blockly.MUMUKI_COLORS.blue;
4330
4333
  Blockly.CUSTOM_COLORS.function_call = Blockly.MUMUKI_COLORS.blue;
4331
-
4334
+
4332
4335
  /**
4333
4336
  * Create the svg representation of a block and render
4334
4337
  * @name {!string} name of the parameter.
@@ -4847,7 +4850,7 @@ Blockly.Blocks.fact1 = {
4847
4850
  type: "field_input",
4848
4851
  name: 'Nombre',
4849
4852
  text: 'Nombre'
4850
- },
4853
+ },
4851
4854
  {
4852
4855
  type: 'input_value',
4853
4856
  name: 'PrimerIndividuo'
@@ -4871,8 +4874,8 @@ Blockly.Blocks.fact2 = {
4871
4874
  {
4872
4875
  type: "field_input",
4873
4876
  name: 'Nombre',
4874
- text: 'Nombre'
4875
- },
4877
+ text: 'Nombre'
4878
+ },
4876
4879
  {
4877
4880
  type: 'input_value',
4878
4881
  name: 'PrimerIndividuo'
@@ -4901,7 +4904,7 @@ Blockly.Blocks.fact3 = {
4901
4904
  type: "field_input",
4902
4905
  name: 'Nombre',
4903
4906
  text: 'Nombre'
4904
- },
4907
+ },
4905
4908
  {
4906
4909
  type: 'input_value',
4907
4910
  name: 'PrimerIndividuo'
@@ -4922,6 +4925,26 @@ Blockly.Blocks.fact3 = {
4922
4925
  }
4923
4926
  };
4924
4927
 
4928
+ Blockly.Blocks.not = {
4929
+ init: function () {
4930
+ this.jsonInit({
4931
+ message0: 'No %1',
4932
+ type: "Statement",
4933
+ previousStatement: "Statement",
4934
+ nextStatement: "Statement",
4935
+ args0: [
4936
+ {
4937
+ type: 'input_statement',
4938
+ name: 'PrimeraCondicion'
4939
+ }
4940
+ ],
4941
+ colour: Blockly.CUSTOM_COLORS.Not || Blockly.CUSTOM_COLORS.primitiveCommand,
4942
+ tooltip: 'Niega la condición',
4943
+ inputsInline: true
4944
+ });
4945
+ }
4946
+ };
4947
+
4925
4948
  Blockly.Blocks.forall = {
4926
4949
  init: function () {
4927
4950
  this.jsonInit({
@@ -5364,7 +5387,6 @@ Blockly.Blocks.variables_get = {
5364
5387
  }
5365
5388
  };
5366
5389
 
5367
- Blockly.Blocks.not = createSingleParameterExpressionBlock('no','Bool');
5368
5390
  Blockly.Blocks.siguiente = createSingleParameterExpressionBlock('siguiente','*');
5369
5391
  Blockly.Blocks.previo = createSingleParameterExpressionBlock('previo','*');
5370
5392
  Blockly.Blocks.opuesto = createSingleParameterExpressionBlock('opuesto','*');
@@ -5470,7 +5492,7 @@ function callGenerator(name, args = [], newLine, order) {
5470
5492
 
5471
5493
  function uncapitalize(text) {
5472
5494
  if(!text || typeof text !== "string") {
5473
- return '';
5495
+ return '';
5474
5496
  }
5475
5497
  return text.charAt(0).toLowerCase() + text.substr(1);
5476
5498
  }
@@ -5514,6 +5536,27 @@ function forallBlockCodeGenerator(procName, args, newLine) {
5514
5536
  }
5515
5537
  window.forallBlockCodeGenerator = forallBlockCodeGenerator;
5516
5538
 
5539
+ function notBlockCodeGenerator(procName, args, newLine) {
5540
+ return function (block) {
5541
+ var code = "\n" + procName + '(';
5542
+ var sep = '';
5543
+ debugger;
5544
+ args.forEach(function (arg) {
5545
+ var statementCode = Blockly.PrologLanguage.statementToCode(block, arg, false);
5546
+ if(statementCode.split("\n").length > 2) {
5547
+ code += sep + "(" + Blockly.PrologLanguage.statementToCode(block, arg, false).replace(/\n/g, "").replace(". ", ",") + ")";
5548
+ } else {
5549
+ code += sep + statementCode.replace("\n", "");
5550
+ }
5551
+ sep = ', ';
5552
+ });
5553
+ code += newLine ? ').\n' : ').';
5554
+ code = code.replace(/\.,/g, ',').replace(/\.\)/g, ')');
5555
+ return code;
5556
+ };
5557
+ // return callGenerator(procName, args, true);
5558
+ }
5559
+ window.forallBlockCodeGenerator = forallBlockCodeGenerator;
5517
5560
  /**
5518
5561
  * Retorna la funcion que genera el codigo para un bloque tipo function(arg1, arg2, ...)
5519
5562
  */
@@ -5751,6 +5794,7 @@ Blockly.PrologLanguage.fact1 = factBlockCodeGenerator('fact', ['PrimerIndividuo'
5751
5794
  Blockly.PrologLanguage.fact2 = factBlockCodeGenerator('fact', ['PrimerIndividuo', 'SegundoIndividuo']);
5752
5795
  Blockly.PrologLanguage.fact3 = factBlockCodeGenerator('fact', ['PrimerIndividuo', 'SegundoIndividuo', 'TercerIndividuo']);
5753
5796
  Blockly.PrologLanguage.forall = forallBlockCodeGenerator('forall', ['PrimeraCondicion', 'SegundaCondicion']);
5797
+ Blockly.PrologLanguage.not = notBlockCodeGenerator('not', ['PrimeraCondicion']);
5754
5798
 
5755
5799
  Blockly.PrologLanguage.ComandoCompletar = b => 'BOOM("El programa todavía no está completo")\n';
5756
5800
  Blockly.PrologLanguage.ExpresionCompletar = b => ['boom("El programa todavía no está completo")',Blockly.PrologLanguage.ORDER_FUNCTION_CALL];
@@ -5809,7 +5853,6 @@ Blockly.PrologLanguage.OperadorLogico = function(block) {
5809
5853
  return [code, order];
5810
5854
  };
5811
5855
 
5812
- Blockly.PrologLanguage.not = exprParamsBlockCodeGenerator('not',['VALUE']);
5813
5856
  Blockly.PrologLanguage.siguiente = exprParamsBlockCodeGenerator('siguiente',['VALUE']);
5814
5857
  Blockly.PrologLanguage.previo = exprParamsBlockCodeGenerator('previo',['VALUE']);
5815
5858
  Blockly.PrologLanguage.opuesto = exprParamsBlockCodeGenerator('opuesto',['VALUE']);
@@ -5939,7 +5982,7 @@ Blockly.PrologLanguage.procedures_defnoreturn = function (block) {
5939
5982
  var body2 = body_lines.split("\n").slice(1).join(",\n") + '.';
5940
5983
  var body_final = body2.replace(/\.\./g, ".").replace(/\.,/g, ",");
5941
5984
 
5942
- var code = name + '(' + makeParameterList(block) + ')' + ':- \n' + body_final + '\n';
5985
+ var code = name + '(' + makeParameterList(block) + ')' + ':- \n' + body_final + '\n';
5943
5986
 
5944
5987
  code = Blockly.PrologLanguage.scrub_(block, code);
5945
5988
  Blockly.PrologLanguage.definitions_[procName] = code;
@@ -5949,7 +5992,7 @@ Blockly.PrologLanguage.procedures_defnoreturn = function (block) {
5949
5992
 
5950
5993
  Blockly.PrologLanguage.procedures_defnoreturn_nobody = function (block) {
5951
5994
  var name = formatCallName(block.getFieldValue('NAME'),false);
5952
- var code = name + '(' + makeParameterList(block) + ').';
5995
+ var code = name + '(' + makeParameterList(block) + ').';
5953
5996
  code = Blockly.PrologLanguage.scrub_(block, code);
5954
5997
  Blockly.PrologLanguage.definitions_[name] = code;
5955
5998
  return null;
@@ -7054,4 +7097,5 @@ Blockly.ErrorInforming.CssContent = [
7054
7097
  }
7055
7098
  });
7056
7099
  </script>
7057
- </dom-module></body></html>
7100
+ </dom-module>
7101
+ </body></html>
@@ -1,5 +1,5 @@
1
1
  module Prolog
2
2
  module Blockly
3
- VERSION = "1.0.13"
3
+ VERSION = "1.0.14"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prolog-blockly
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.13
4
+ version: 1.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Pina
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-25 00:00:00.000000000 Z
11
+ date: 2018-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler