prolog-blockly 1.0.13 → 1.0.14

Sign up to get free protection for your applications and to get access to all the features.
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