Add `ConstructorExp` to abstract of Math

abstract Math = {

  cat
    Declaration; Name; Exp; Definition;
    CaseList; Annotation; TypList; Case; Id;
    Arg;

  fun

    TypeDefinition : Definition -> Declaration;
    FnDefinition   : (Name -> Exp) -> Exp;

    -- FUNCTIONS

    Var : Arg -> Exp;
    OneArgFunDef : (Arg -> Exp) -> Exp;
    TwoArgFunDef : (Arg -> Arg -> Exp) -> Exp;
    TwoCasePatMatch : Exp -> Exp -> Exp -> Exp -> Exp -> Exp;
    App : Exp -> Exp -> Exp;
    ConstructorExp : Id -> Exp;
    AnArg : Arg;

    -- Type Definitions

    TypApp : Id -> Id -> Exp;

    TrivialConstructor : String -> Id -> Case;
    OneArgumentConstructor : Id -> Id -> (Id -> Id -> Exp) -> Case;

    Inductive  : (Id -> CaseList) -> Definition;
    Empty      : CaseList;
    Cons       : Case -> CaseList -> CaseList;
}

abstract Math = {

  cat
    Declaration; Name; Exp; Definition;
    CaseList; Annotation; TypList; Case; Id;
    Arg;

  fun

    TypeDefinition : Definition -> Declaration;
    FnDefinition   : (Name -> Exp) -> Exp;

    -- FUNCTIONS

    Var : Arg -> Exp;
    OneArgFunDef : (Arg -> Exp) -> Exp;
    TwoArgFunDef : (Arg -> Arg -> Exp) -> Exp;
    TwoCasePatMatch : Exp -> Exp -> Exp -> Exp -> Exp -> Exp;
    App : Exp -> Exp -> Exp;
    AnArg : Arg;

    -- Type Definitions

    TypApp : Id -> Id -> Exp;

    TrivialConstructor : String -> Id -> Case;
    OneArgumentConstructor : Id -> Id -> (Id -> Id -> Exp) -> Case;

    Inductive  : (Id -> CaseList) -> Definition;
    Empty      : CaseList;
    Cons       : Case -> CaseList -> CaseList;
}


Added a concrete word not inserted by a leaf to grammar

concrete ABC of ABCAbs = open Prelude in {
  lincat
    A,B,C,D,E,F,G = SS ;
  lin
    a b = b ;
    aa = ss "a" ;
    b = ss "b" ;
    c d e f = cc2 ( cc2 e d ) f ;
    d = ss "d" ;
    e = ss "e" ;
    f = ss "f" ;
    g a c = cc2 a (cc2 (ss "g") c) ;
}

concrete ABC of ABCAbs = open Prelude in {
  lincat
    A,B,C,D,E,F,G = SS ;
  lin
    a b = b ;
    aa = ss "a" ;
    b = ss "b" ;
    c d e f = cc2 ( cc2 e d ) f ;
    d = ss "d" ;
    e = ss "e" ;
    f = ss "f" ;
    g a c = cc2 a c ;
}


Update intro.gf

Update intro.gf

I was created simple query of javascript code. You can easy write code of Javascript and you can easy to do DOM (Document Object Model).

If you familiar with jQuery, gQuery can be used with jQuery.

Garuda Query has an identical symbol with underscore in front of function name ( No Conflict ), So you can also use this library with another framework javascript like VUE.js, REACT.js, ANGULAR.js, and more.

Everything has been tested and support much browser like Chrome, Firefox, Opera , Safari & Internet Explorer.

	You can create a professional front end website with gQuery, and then you might use jQuery for make the perfect front end ( I use jQuery for open the modal, create animation & document ready function ).

	 You can also modify the source code and you can use for distribution or production.

	 Garuda Query Javascript is -VERY BASIC-

	 " There isn't about the CAR, it's about the DRIVER "

	  Special Thanks To BULMA CSS

07:00 AM - 20 Agustus 2017

		Open These Page In Desktop Mode ( Mobile Phone isn't RECOMMENDED )

	If javascript doesnt work in documentation, refresh to HOME PAGE, and back to the PART of Documentation that you want to VISIT

		Quick ShortCut

	  <button class="delete"></button>
	    Press Home for open the Home Page

	   	Press F2 for open the Getting Started

	   	Press F4 for open the All Of Function

   		Press CTRL for open the Documentation (Part 1, Part 2, ... )

	 Fork

I was created simple query of javascript code. You can easy write code of Javascript and you can easy to do DOM (Document Object Model).

If you familiar with jQuery, gQuery can be used with jQuery.

Garuda Query has an identical symbol with underscore in front of function name ( No Conflict ), So you can also use this library with another framework javascript like VUE.js, REACT.js, ANGULAR.js, and more.

Everything has been tested and support much browser like Chrome, Firefox, Opera , Safari & Internet Explorer.

	You can create a professional front end website with gQuery, and then you might use jQuery for make the perfect front end ( I use jQuery for open the modal, create animation & document ready function ).

	 You can also modify the source code and you can use for distribution or production.

	 Garuda Query Javascript is -VERY BASIC-

	 " There isn't about the CAR, it's about the DRIVER "

07:00 AM - 20 Agustus 2017

		Open These Page In Desktop Mode ( Mobile Phone isn't RECOMMENDED )

	If javascript doesnt work in documentation, refresh to HOME PAGE, and back to the PART of Documentation that you want to VISIT

		Quick ShortCut

	  <button class="delete"></button>
	    Press Home for open the Home Page

	   	Press F2 for open the Getting Started

	   	Press F4 for open the All Of Function

   		Press CTRL for open the Documentation (Part 1, Part 2, ... )

	 Fork


Changed gender for climber in swedish.

Changed gender for climber in swedish.

--# -path=.:present:alltenses

concrete MountaineeringSwe of Mountaineering =
    PhrasebookSwe -
      [
        ABusinessman,
        ACook,
        ADoctor,
        AEngineer,
        ALawyer,
        AProfessor,
        AStudent,
        ATeacher
      ] **
    MountaineeringI with
      (Syntax = SyntaxSwe),
      (Symbolic = SymbolicSwe),
      (Lexicon = LexiconSwe) **
	open
	  SyntaxSwe,
	  ParadigmsSwe,
	  (L = LexiconSwe),
	  IrregSwe,
	  ExtraSwe,
	  Prelude in {
  lin
    HoldToPlaceKind x = mkCNPlace x (mkPrep "vid") to_Prep;

    IsAProfession p pro = mkProfession pro p;

-- Words
  lin
    BelayStation = mkPlace (mkN "standplats") "p";
    Cliff = mkPlace (mkN "klippa") "p";
    ClimbingGym = mkPlace (mkN "klttergym" neutrum) "p";
    Glacier = mkPlace (mkN "glacir") "p";
    Mountain = mkPlace L.mountain_N "p";
    Overhang = mkPlace (mkN "verhng" neutrum) "i";
    Summit = mkPlace (mkN "topp") "p";

    VAbseil, VRappel = mkVP (regV "fira");
    VBelay = mkVP (regV "skra");
    VBoulder = mkVP (regV "bouldra");
    VClimb = mkVP (regV "klttra");
    VFall = mkVP (regV "falla");
    VLead = mkVP (regV "leda");
    VStem = mkVP (regV "stmma");

    GBelayOn = mkGreeting "skring klar";
    GBelow, GRock = mkGreeting "sten";
    GClimbing = mkGreeting "jag klttrar";
    GFalling = mkGreeting "faller";
    GOffBelay, GSafe = mkGreeting "lgg av";
    GRope = mkGreeting "rep";
    GSlack = mkGreeting "rep";
    GUpRope = mkGreeting "tag hem";

    Ascender = mkCN (mkN "repklmma");
    Bolt = mkCN (mkN "bult");
    Carabiner = mkCN (mkN "karbinhake" "karbinhakar");
    Chalk = mkCN (mkN "krita");
    ChestHarness = mkCN (mkN "brstsele" "brstselar");
    ClimbingShoe = mkCN (mkN "klttersko" "kltterskor");
    Cord = mkCN (mkN "snre" neutrum);
    Crampon = mkCN (mkN "stegjrn" neutrum);
    ExpansionBolt = mkCN (mkN "borrbult");
    Harness = mkCN (mkN "sele" "selar");
    Helmet = mkCN (mkN "hjlm");
    IceAxe = mkCN (mkN "isyxa");
    Jumar = mkCN (mkN "jumar" "jumars");
    LockingCarabiner = mkCN (mkN "lskarbin" "lskarbiner");
    Nut = mkCN (mkN "kil");
    Piton = mkCN (mkN "kil");
    Rack = mkCN (mkN "utrustning");
    Ring = mkCN (mkN "ring");
    Rope = mkCN (mkN "rep" neutrum);
    Runner, Sling = mkCN (mkN "slinga");
    Webbing = mkCN (mkN "nylonband" neutrum);

    Bucket, Jug = mkCN (mkN "brevlda");
    Crack = mkCN (mkN "spricka");
    Hold = mkCN (mkN "grepp" neutrum);
    Pocket = mkCN (mkN "pocket" "pocketen" "pockets" "pocketsarna");
    Sloper = mkCN (mkN "slope" "slopen" "slopes" "slopsen");

    Bowline = mkCN (mkN "plstek");
    ButterflyKnot = mkCN (mkN "fjrilsstek");
    DoubleFisherman = mkCN (mkN "dubbel fiskarknop" "dubbla fiskarknopen" "dubbla fiskarknopar" "dubbla fiskarknoparna");
    FigureOfEightKnot = mkCN (mkN "tta");
    FishermansKnot = mkCN (mkN "fiskarknop");
    Knot = mkCN (mkN "knop");
    OverhandBend = mkCN (mkN "dubbel verhandsknop" "dubbla verhandsknopen" "dubbla verhandsknopar" "dubbla verhandsknoparna");
    OverhandKnot = mkCN (mkN "verhandsknop");
    PrusikKnot = mkCN (mkN "prusik");
    WaterKnot = mkCN (mkN "vattenknop");

    ProBelayerMale, ProBelayerFemale = mkN "skringsman" "skringsmannen" "skringsmn" "skringsmnnen";
    ProClimberMale, ProClimberFemale = mkN "klttrare" utrum;
    ProLeaderMale, ProLeaderFemale = mkN "frsteman" "frstemannen" "frstemn" "frstemnnen";
    ProSecondMale, ProSecondFemale = mkN "andreman" "andremannen" "andremn" "andremnnen";
}

--# -path=.:present:alltenses

concrete MountaineeringSwe of Mountaineering =
    PhrasebookSwe -
      [
        ABusinessman,
        ACook,
        ADoctor,
        AEngineer,
        ALawyer,
        AProfessor,
        AStudent,
        ATeacher
      ] **
    MountaineeringI with
      (Syntax = SyntaxSwe),
      (Symbolic = SymbolicSwe),
      (Lexicon = LexiconSwe) **
	open
	  SyntaxSwe,
	  ParadigmsSwe,
	  (L = LexiconSwe),
	  IrregSwe,
	  ExtraSwe,
	  Prelude in {
  lin
    HoldToPlaceKind x = mkCNPlace x (mkPrep "vid") to_Prep;

    IsAProfession p pro = mkProfession pro p;

-- Words
  lin
    BelayStation = mkPlace (mkN "standplats") "p";
    Cliff = mkPlace (mkN "klippa") "p";
    ClimbingGym = mkPlace (mkN "klttergym" neutrum) "p";
    Glacier = mkPlace (mkN "glacir") "p";
    Mountain = mkPlace L.mountain_N "p";
    Overhang = mkPlace (mkN "verhng" neutrum) "i";
    Summit = mkPlace (mkN "topp") "p";

    VAbseil, VRappel = mkVP (regV "fira");
    VBelay = mkVP (regV "skra");
    VBoulder = mkVP (regV "bouldra");
    VClimb = mkVP (regV "klttra");
    VFall = mkVP (regV "falla");
    VLead = mkVP (regV "leda");
    VStem = mkVP (regV "stmma");

    GBelayOn = mkGreeting "skring klar";
    GBelow, GRock = mkGreeting "sten";
    GClimbing = mkGreeting "jag klttrar";
    GFalling = mkGreeting "faller";
    GOffBelay, GSafe = mkGreeting "lgg av";
    GRope = mkGreeting "rep";
    GSlack = mkGreeting "rep";
    GUpRope = mkGreeting "tag hem";

    Ascender = mkCN (mkN "repklmma");
    Bolt = mkCN (mkN "bult");
    Carabiner = mkCN (mkN "karbinhake" "karbinhakar");
    Chalk = mkCN (mkN "krita");
    ChestHarness = mkCN (mkN "brstsele" "brstselar");
    ClimbingShoe = mkCN (mkN "klttersko" "kltterskor");
    Cord = mkCN (mkN "snre" neutrum);
    Crampon = mkCN (mkN "stegjrn" neutrum);
    ExpansionBolt = mkCN (mkN "borrbult");
    Harness = mkCN (mkN "sele" "selar");
    Helmet = mkCN (mkN "hjlm");
    IceAxe = mkCN (mkN "isyxa");
    Jumar = mkCN (mkN "jumar" "jumars");
    LockingCarabiner = mkCN (mkN "lskarbin" "lskarbiner");
    Nut = mkCN (mkN "kil");
    Piton = mkCN (mkN "kil");
    Rack = mkCN (mkN "utrustning");
    Ring = mkCN (mkN "ring");
    Rope = mkCN (mkN "rep" neutrum);
    Runner, Sling = mkCN (mkN "slinga");
    Webbing = mkCN (mkN "nylonband" neutrum);

    Bucket, Jug = mkCN (mkN "brevlda");
    Crack = mkCN (mkN "spricka");
    Hold = mkCN (mkN "grepp" neutrum);
    Pocket = mkCN (mkN "pocket" "pocketen" "pockets" "pocketsarna");
    Sloper = mkCN (mkN "slope" "slopen" "slopes" "slopsen");

    Bowline = mkCN (mkN "plstek");
    ButterflyKnot = mkCN (mkN "fjrilsstek");
    DoubleFisherman = mkCN (mkN "dubbel fiskarknop" "dubbla fiskarknopen" "dubbla fiskarknopar" "dubbla fiskarknoparna");
    FigureOfEightKnot = mkCN (mkN "tta");
    FishermansKnot = mkCN (mkN "fiskarknop");
    Knot = mkCN (mkN "knop");
    OverhandBend = mkCN (mkN "dubbel verhandsknop" "dubbla verhandsknopen" "dubbla verhandsknopar" "dubbla verhandsknoparna");
    OverhandKnot = mkCN (mkN "verhandsknop");
    PrusikKnot = mkCN (mkN "prusik");
    WaterKnot = mkCN (mkN "vattenknop");

    ProBelayerMale, ProBelayerFemale = mkN "skringsman" "skringsmannen" "skringsmn" "skringsmnnen";
    ProClimberMale, ProClimberFemale = mkN "klttrare";
    ProLeaderMale, ProLeaderFemale = mkN "frsteman" "frstemannen" "frstemn" "frstemnnen";
    ProSecondMale, ProSecondFemale = mkN "andreman" "andremannen" "andremn" "andremnnen";
}


Update intro.gf

Update intro.gf

I was created simple query of javascript code. You can easy write code of Javascript and you can easy to do DOM (Document Object Model).

If you familiar with jQuery, gQuery can be used with jQuery.

Garuda Query has an identical symbol with underscore in front of function name ( No Conflict ), So you can also use this library with another framework javascript like VUE.js, REACT.js, ANGULAR.js, and more.

Everything has been tested and support much browser like Chrome, Firefox, Opera , Safari & Internet Explorer.

	You can create a professional front end website with gQuery, and then you might use jQuery for make the perfect front end ( I use jQuery for animation & document ready function ).

	 You can also modify the source code and you can use for distribution or production.

07:00 AM - 20 Agustus 2017

	Open These Page In Desktop Mode ( Mobile Phone isn't RECOMMENDED )

	If javascript doesnt work in documentation, refresh to HOME PAGE, and back to the PART of Documentation that you want to VISIT

		Quick ShortCut

	  <button class="delete"></button>
	    Press Home for open the Home Page

	   	Press F2 for open the Getting Started

	   	Press F4 for open the All Of Function

   		Press CTRL for open the Documentation (Part 1, Part 2, ... )

	 Fork

I was created simple query of javascript code. You can easy write code of Javascript and you can easy to do DOM (Document Object Model).

If you familiar with jQuery, gQuery can be used with jQuery.

Garuda Query has an identical symbol with underscore in front of function name ( No Conflict ), So you can also use this library with another framework javascript like VUE.js, REACT.js, ANGULAR.js, and more.

Everything has been tested and support much browser like Chrome, Firefox, Opera , Safari & Internet Explorer.

	You can create a professional front end website with gQuery, and then you might use jQuery for make the perfect front end (I use jQuery for animation).

	 You can also modify the source code and you can use for distribution or production.

07:00 AM - 20 Agustus 2017

	Open These Page In Desktop Mode ( Mobile Phone isn't RECOMMENDED )

	If javascript doesnt work in documentation, refresh to HOME PAGE, and back to the PART of Documentation that you want to VISIT

		Quick ShortCut

	  <button class="delete"></button>
	    Press Home for open the Home Page

	   	Press F2 for open the Getting Started

	   	Press F4 for open the All Of Function

   		Press CTRL for open the Documentation (Part 1, Part 2, ... )

	 Fork


Start adding some boolean functions

Start adding some boolean functions

linearize
  (SeqTypeDeclaration
    (\bool ->
      (PairInductive
        (Inductive bool
          (Cons (TrivialConstructor "true" bool)
            (Cons (TrivialConstructor "false" bool)
              Empty)))
        (SeqFunDeclaration
          (\not ->
            (PairExp
              (OneArgFunDef
                (\x -> (TwoCasePatMatch (Var x)
                                        (FreeConstructor "true")
                                        (FreeConstructor "false")
                                        (FreeConstructor "false")
                                        (FreeConstructor "true")))))
        (SeqFunDeclaration
          (\and ->
            (PairExp
              (TwoArgFunDef
                (\x -> \y -> (TwoCasePatMatch
                               (Var x)
                               (FreeConstructor "true")
                               (TwoCasePatMatch
                                  (Var y)
                                  (FreeConstructor "true")
                                  (FreeConstructor "true")
                                  (FreeConstructor "false")
                                  (FreeConstructor "false"))
                               (FreeConstructor "false")
                               (FreeConstructor "false")))))
              EmptyDeclaration)))))))

linearize
  (SeqTypeDeclaration
    (\bool ->
      (PairInductive
        (Inductive bool
          (Cons (TrivialConstructor "true" bool)
            (Cons (TrivialConstructor "false" bool)
              Empty)))
        EmptyDeclaration)))


Get the days example working

Get the days example working

linearize
  (SeqDeclaration (\day ->
    (TypeDeclaration day
      (Inductive day
        (Cons (TrivialConstructor "monday" day)
           (Cons (TrivialConstructor "tuesday" day)
              (Cons (TrivialConstructor "wednesday" day)
                (Cons (TrivialConstructor "thursday" day)
                  (Cons (TrivialConstructor "friday" day)
                    (Cons (TrivialConstructor "saturday" day)
                      (Cons (TrivialConstructor "sunday" day)
                      Empty))))))))))
      EmptyDeclaration)

linearize
  (TypeDeclaration
      (Inductive (\day ->
          Cons (TrivialConstructor "monday" day)
           (Cons (TrivialConstructor "tuesday" day)
              (Cons (TrivialConstructor "wednesday" day)
                (Cons (TrivialConstructor "thursday" day)
                  (Cons (TrivialConstructor "friday" day)
                    (Cons (TrivialConstructor "saturday" day)
                      (Cons (TrivialConstructor "sunday" day)
                      Empty)))))))))


#update doccccc

#update doccccc

I was created simple query of javascript code. You can easy write code of Javascript and you can easy to do DOM (document object manipulation).

If you familiar with jQuery, gQuery can be used with jQuery. You can modify the source code.

Garuda Query has an identical symbol with underscore in front of function name, So you can also use this library with another framework javascript.

Everything has been tested and support much browser like Chrome, Firefox, Opera , Safari & Internet Explorer.

gQuery is not kaleng-kaleng library . You can create a professional web with gQuery.

07:00 AM - 20 Agustus 2017

	Open These Page In Desktop Mode (Mobile Phone isn't recommended)

	If javascript doesnt work in documentation, refresh to HOME PAGE, and back to the PART that you want to visit

	 Fork

I was created simple query of javascript code. You can easy write code of Javascript and you can easy to do DOM (document object manipulation).

If you familiar with jQuery, gQuery can be used with jQuery. You can modify the source code.

Garuda Query has an identical symbol with underscore in front of function name, So you can also use this library with another framework javascript.

Everything has been tested and support much browser like Chrome, Firefox, Opera , Safari & Internet Explorer.

gQuery is not kaleng-kaleng library . You can create a professional web with gQuery.

07:00 AM - 20 Agustus 2017

	Open These Page In Desktop

	If javascript doesnt work in documentation, refresh to HOME PAGE, and back to the PART that you want to visit

	 Fork


Update intro.gf

Update intro.gf

I was created simple query of javascript code. You can easy write code of Javascript and you can easy to do DOM (Document Object Model).

If you familiar with jQuery, gQuery can be used with jQuery. Garuda Javascript was designed for client side, and also you can use this library
with Node.JS as server side.

Garuda Query has an identical symbol with underscore in front of function name ( No Conflict ), So you can also use this library with another framework javascript like VUE.js, REACT.js, ANGULAR.js, and more.

Everything has been tested and support much browser like Chrome, Firefox, Opera , Safari & Internet Explorer.

	You can create a professional front end website with gQuery, and then you might use jQuery for make the perfect front end ( I use jQuery for open the modal, create animation & document ready function ).

	 You can also modify the source code and you can use for distribution or production.

	 Garuda Query Javascript is -VERY BASIC-

	 " There isn't about the CAR, it's about the DRIVER "

	  Special Thanks To BULMA CSS

07:00 AM - 20 Agustus 2017

		Open These Page In Desktop Mode ( Mobile Phone isn't RECOMMENDED )

	If javascript doesnt work in documentation, refresh to HOME PAGE, and back to the PART of Documentation that you want to VISIT

		Quick ShortCut

	  <button class="delete"></button>
	    Press Home for open the Home Page

	   	Press F2 for open the Getting Started

	   	Press F4 for open the All Of Function

   		Press CTRL for open the Documentation (Part 1, Part 2, ... )

	 Fork

I was created simple query of javascript code. You can easy write code of Javascript and you can easy to do DOM (Document Object Model).

If you familiar with jQuery, gQuery can be used with jQuery.

Garuda Query has an identical symbol with underscore in front of function name ( No Conflict ), So you can also use this library with another framework javascript like VUE.js, REACT.js, ANGULAR.js, and more.

Everything has been tested and support much browser like Chrome, Firefox, Opera , Safari & Internet Explorer.

	You can create a professional front end website with gQuery, and then you might use jQuery for make the perfect front end ( I use jQuery for open the modal, create animation & document ready function ).

	 You can also modify the source code and you can use for distribution or production.

	 Garuda Query Javascript is -VERY BASIC-

	 " There isn't about the CAR, it's about the DRIVER "

	  Special Thanks To BULMA CSS

07:00 AM - 20 Agustus 2017

		Open These Page In Desktop Mode ( Mobile Phone isn't RECOMMENDED )

	If javascript doesnt work in documentation, refresh to HOME PAGE, and back to the PART of Documentation that you want to VISIT

		Quick ShortCut

	  <button class="delete"></button>
	    Press Home for open the Home Page

	   	Press F2 for open the Getting Started

	   	Press F4 for open the All Of Function

   		Press CTRL for open the Documentation (Part 1, Part 2, ... )

	 Fork


Fixed the inflection for some swedish nouns.

--# -path=.:present:alltenses

concrete MountaineeringSwe of Mountaineering = PhrasebookSwe **
    MountaineeringI with
      (Syntax = SyntaxSwe),
      (Symbolic = SymbolicSwe),
      (Lexicon = LexiconSwe) **
	open
	  SyntaxSwe,
	  ParadigmsSwe,
	  (L = LexiconSwe),
	  IrregSwe,
	  ExtraSwe,
	  Prelude in {
  lin
    HoldToPlaceKind x = mkCNPlace x (mkPrep "vid") to_Prep;

-- Words
  lin
    BelayStation = mkPlace (mkN "standplats") "p";
    Cliff = mkPlace (mkN "klippa") "p";
    ClimbingGym = mkPlace (mkN "klttergym" neutrum) "p";
    Glacier = mkPlace (mkN "glacir") "p";
    Mountain = mkPlace L.mountain_N "p";
    Overhang = mkPlace (mkN "verhng" neutrum) "i";
    Summit = mkPlace (mkN "topp") "p";

    VAbseil, VRappel = mkVP (regV "fira");
    VBelay = mkVP (regV "skra");
    VBoulder = mkVP (regV "bouldra");
    VClimb = mkVP (regV "klttra");
    VFall = mkVP (regV "falla");
    VLead = mkVP (regV "leda");
    VStem = mkVP (regV "stmma");

    GBelayOn = mkGreeting "skring klar";
    GBelow, GRock = mkGreeting "sten";
    GClimbing = mkGreeting "jag klttrar";
    GFalling = mkGreeting "faller";
    GOffBelay, GSafe = mkGreeting "lgg av";
    GRope = mkGreeting "rep";
    GSlack = mkGreeting "rep";
    GUpRope = mkGreeting "tag hem";

    Ascender = mkCN (mkN "repklmma");
    Bolt = mkCN (mkN "bult");
    Carabiner = mkCN (mkN "karbinhake" "karbinhakar");
    Chalk = mkCN (mkN "krita");
    ChestHarness = mkCN (mkN "brstsele" "brstselar");
    ClimbingShoe = mkCN (mkN "klttersko" "kltterskor");
    Cord = mkCN (mkN "snre" neutrum);
    Crampon = mkCN (mkN "stegjrn" neutrum);
    ExpansionBolt = mkCN (mkN "borrbult");
    Harness = mkCN (mkN "sele" "selar");
    Helmet = mkCN (mkN "hjlm");
    IceAxe = mkCN (mkN "isyxa");
    Jumar = mkCN (mkN "jumar" "jumars");
    LockingCarabiner = mkCN (mkN "lskarbin" "lskarbiner");
    Nut = mkCN (mkN "kil");
    Piton = mkCN (mkN "kil");
    Rack = mkCN (mkN "utrustning");
    Ring = mkCN (mkN "ring");
    Rope = mkCN (mkN "rep");
    Runner, Sling = mkCN (mkN "slinga");
    Webbing = mkCN (mkN "nylonband" neutrum);

    Bucket, Jug = mkCN (mkN "brevlda");
    Crack = mkCN (mkN "spricka");
    Hold = mkCN (mkN "grepp" neutrum);
    Pocket = mkCN (mkN "pocket" "pocketen" "pockets" "pocketsarna");
    Sloper = mkCN (mkN "slope" "slopen" "slopes" "slopsen");

    Bowline = mkCN (mkN "plstek");
    ButterflyKnot = mkCN (mkN "fjrilsstek");
    DoubleFisherman = mkCN (mkN "dubbel fiskarknop" "dubbla fiskarknopen" "dubbla fiskarknopar" "dubbla fiskarknoparna");
    FigureOfEightKnot = mkCN (mkN "tta");
    FishermansKnot = mkCN (mkN "fiskarknop");
    Knot = mkCN (mkN "knop");
    OverhandBend = mkCN (mkN "dubbel verhandsknop" "dubbla verhandsknopen" "dubbla verhandsknopar" "dubbla verhandsknoparna");
    OverhandKnot = mkCN (mkN "verhandsknop");
    PrusikKnot = mkCN (mkN "prusik");
    WaterKnot = mkCN (mkN "vattenknop");
}

--# -path=.:present:alltenses

concrete MountaineeringSwe of Mountaineering = PhrasebookSwe **
    MountaineeringI with
      (Syntax = SyntaxSwe),
      (Symbolic = SymbolicSwe),
      (Lexicon = LexiconSwe) **
	open
	  SyntaxSwe,
	  ParadigmsSwe,
	  (L = LexiconSwe),
	  IrregSwe,
	  ExtraSwe,
	  Prelude in {
  lin
    HoldToPlaceKind x = mkCNPlace x (mkPrep "vid") to_Prep;

-- Words
  lin
    BelayStation = mkPlace (mkN "standplats") "p";
    Cliff = mkPlace (mkN "klippa") "p";
    ClimbingGym = mkPlace (mkN "klttergym" neutrum) "p";
    Glacier = mkPlace (mkN "glacir") "p";
    Mountain = mkPlace L.mountain_N "p";
    Overhang = mkPlace (mkN "verhng" neutrum) "i";
    Summit = mkPlace (mkN "topp") "p";

    VAbseil, VRappel = mkVP (regV "fira");
    VBelay = mkVP (regV "skra");
    VBoulder = mkVP (regV "bouldra");
    VClimb = mkVP (regV "klttra");
    VFall = mkVP (regV "falla");
    VLead = mkVP (regV "leda");
    VStem = mkVP (regV "stmma");

    GBelayOn = mkGreeting "skring klar";
    GBelow, GRock = mkGreeting "sten";
    GClimbing = mkGreeting "jag klttrar";
    GFalling = mkGreeting "faller";
    GOffBelay, GSafe = mkGreeting "lgg av";
    GRope = mkGreeting "rep";
    GSlack = mkGreeting "rep";
    GUpRope = mkGreeting "tag hem";

    Ascender = mkCN (mkN "repklmma");
    Bolt = mkCN (mkN "bult");
    Carabiner = mkCN (mkN "karbinhake");
    Chalk = mkCN (mkN "krita");
    ChestHarness = mkCN (mkN "brstsele" "brstselar");
    ClimbingShoe = mkCN (mkN "klttersko" "kltterskor");
    Cord = mkCN (mkN "snre" neutrum);
    Crampon = mkCN (mkN "stegjrn" neutrum);
    ExpansionBolt = mkCN (mkN "borrbult");
    Harness = mkCN (mkN "sele" "selar");
    Helmet = mkCN (mkN "hjlm");
    IceAxe = mkCN (mkN "isyxa");
    Jumar = mkCN (mkN "jumar" "jumars");
    LockingCarabiner = mkCN (mkN "lskarbin" "lskarbiner");
    Nut = mkCN (mkN "kil");
    Piton = mkCN (mkN "kil");
    Rack = mkCN (mkN "utrustning");
    Ring = mkCN (mkN "ring");
    Rope = mkCN (mkN "rep");
    Runner, Sling = mkCN (mkN "slinga");
    Webbing = mkCN (mkN "nylonband" neutrum);

    Bucket, Jug = mkCN (mkN "brevlda");
    Crack = mkCN (mkN "spricka");
    Hold = mkCN (mkN "grepp");
    Pocket = mkCN (mkN "pocket" "pocketen" "pockets" "pocketsarna");
    Sloper = mkCN (mkN "slope" "slopes");

    Bowline = mkCN (mkN "plstek");
    ButterflyKnot = mkCN (mkN "fjrilsstek");
    DoubleFisherman = mkCN (mkN "dubbel fiskarknop" "dubbla fiskarknopen" "dubbla fiskarknopar" "dubbla fiskarknoparna");
    FigureOfEightKnot = mkCN (mkN "tta");
    FishermansKnot = mkCN (mkN "fiskarknop");
    Knot = mkCN (mkN "knop");
    OverhandBend = mkCN (mkN "dubbel verhandsknop" "dubbla verhandsknopen" "dubbla verhandsknopar" "dubbla verhandsknoparna");
    OverhandKnot = mkCN (mkN "verhandsknop");
    PrusikKnot = mkCN (mkN "prusik");
    WaterKnot = mkCN (mkN "vattenknop");
}


Adapt the fn_sample example

Adapt the fn_sample example

linearize
  (SeqDeclaration (\foo ->
    (FnDeclaration foo
        (OneArgFunDef
            (\x ->
                TwoCasePatMatch
                  (App (Var x) (Var x)) (Var x) (Var x) (Var x) (Var x)))))
    (SeqDeclaration (\bool ->
      (TypeDeclaration bool
        (Inductive bool
          (Cons
            (TrivialConstructor "true"  bool)
              (Cons (TrivialConstructor "false" bool)
                Empty)))))
        EmptyDeclaration))

linearize
  (SeqDeclaration (\foo ->
    (FnDeclaration foo (OneArgFunDef (\x -> TwoCasePatMatch (App (Var x) (Var x)) (Var x) (Var x) (Var x) (Var x)))))
    (TypeDeclaration (Inductive (\Bool -> Cons (TrivialConstructor "True" Bool) (Cons (TrivialConstructor "False" Bool) Empty)))))


Line breaks in DefinitionEng

Line breaks in DefinitionEng

concrete DefinitionEng of Definition = open Prelude in {
  flags
    startcat = Declaration;
  lincat
    Annotation, Declaration, CaseList, TypList, Definition = { s : Str };
    Declaration =  { s : Str };
    Case = { s : Str };

  lindef Id = \x -> { s = x };

  lin
    Inductive B = {
      s = ("The type" ++ B.$0 ++ "is defined as follows:" ++ B.s)
    };

    TrivialConstructor name id = {
      s = name.s ++ "is a" ++ id.s
    };

    OneArgumentConstructor id1 id2 B = {
      s = "given a" ++ B.$0 ++ "of type" ++ id1.s ++ B.s ++ "is a" ++ id2.s
    };

    TypApp a b = {
      s = a.s ++ "applied to" ++ b.s
    };

    Empty = { s = "" };
    Cons t cs = { s = ("\n-" ++ t.s ++ cs.s) };

    TypeDeclaration d = { s = "Definition." ++ d.s };
}

concrete DefinitionEng of Definition = open Prelude in {
  flags
    startcat = Declaration;
  lincat
    Annotation, Declaration, CaseList, TypList, Definition = { s : Str };
    Declaration =  { s : Str };
    Case = { s : Str };

  lindef Id = \x -> { s = x };

  lin
    Inductive B = {
      s = ("The type" ++ B.$0 ++ "is defined as follows:" ++ B.s)
    };

    TrivialConstructor name id = {
      s = name.s ++ "is a" ++ id.s
    };

    OneArgumentConstructor id1 id2 B = {
      s = "given a" ++ B.$0 ++ "of type" ++ id1.s ++ B.s ++ "is a" ++ id2.s
    };

    TypApp a b = {
      s = a.s ++ "applied to" ++ b.s
    };

    Empty = { s = "" };
    Cons t cs = { s = ("-" ++ t.s ++ cs.s) };

    TypeDeclaration d = { s = "Definition." ++ d.s };
}


Update intro.gf

Update intro.gf

I was created simple query of javascript code. You can easy write code of Javascript and you can easy to do DOM (document object manipulation).

If you familiar with jQuery, gQuery can be used with jQuery. You can modify the source code.

Garuda Query has an identical symbol with underscore in front of function name, So you can also use this library with another framework javascript.

Everything has been tested and support much browser like Chrome, Firefox, Opera , Safari & Internet Explorer.

gQuery is not kaleng-kaleng library . You can create a professional web with gQuery.

07:00 AM - 20 Agustus 2017

	 Fork


Changed 'at' to 'on' for some english words.

--# -path=.:present:alltenses

concrete MountaineeringEng of Mountaineering = PhrasebookEng **
    open
      SyntaxEng,
      ParadigmsEng,
      (L = LexiconEng),
      (P = ParadigmsEng),
      IrregEng,
      ExtraEng,
      Prelude in {

  lin
    BelayStation = mkPlace "belay station" "at";
    Cliff = mkPlace "cliff" "on";
    ClimbingGym = mkPlace "climbing gym" "at";
    Glacier = mkPlace "glacier" "on";
    Mountain = mkPlace "mountain" "on";
    Overhang = mkPlace "overhang" "in";
    Summit = mkPlace "summit" "at";

    VAbseil = mkVP (regV "abseil");
    VBelay = mkVP (regV "belay");
    VBoulder = mkVP (regV "boulder");
    VClimb = mkVP (regV "climb");
    VFall = mkVP (regV "fall");
    VLead = mkVP (regV "lead");
    VRappel = mkVP (regV "rappel");
    VStem = mkVP (regV "stem");

    GBelayOn = mkGreeting "belay on";
    GBelow = mkGreeting "below";
    GClimbing = mkGreeting "climbing";
    GFalling = mkGreeting "falling";
    GOffBelay = mkGreeting "off belay";
    GRock = mkGreeting "rock";
    GRope = mkGreeting "rope";
    GSafe = mkGreeting "safe";
    GSlack = mkGreeting "slack";
    GUpRope = mkGreeting "up rope";
}

--# -path=.:present:alltenses

concrete MountaineeringEng of Mountaineering = PhrasebookEng **
    open
      SyntaxEng,
      ParadigmsEng,
      (L = LexiconEng),
      (P = ParadigmsEng),
      IrregEng,
      ExtraEng,
      Prelude in {

  lin
    BelayStation = mkPlace "belay station" "at";
    Cliff = mkPlace "cliff" "at";
    ClimbingGym = mkPlace "climbing gym" "at";
    Glacier = mkPlace "glacier" "at";
    Mountain = mkPlace "mountain" "at";
    Overhang = mkPlace "overhang" "in";
    Summit = mkPlace "summit" "at";

    VAbseil = mkVP (regV "abseil");
    VBelay = mkVP (regV "belay");
    VBoulder = mkVP (regV "boulder");
    VClimb = mkVP (regV "climb");
    VFall = mkVP (regV "fall");
    VLead = mkVP (regV "lead");
    VRappel = mkVP (regV "rappel");
    VStem = mkVP (regV "stem");

    GBelayOn = mkGreeting "belay on";
    GBelow = mkGreeting "below";
    GClimbing = mkGreeting "climbing";
    GFalling = mkGreeting "falling";
    GOffBelay = mkGreeting "off belay";
    GRock = mkGreeting "rock";
    GRope = mkGreeting "rope";
    GSafe = mkGreeting "safe";
    GSlack = mkGreeting "slack";
    GUpRope = mkGreeting "up rope";
}


Add comment

Add comment

concrete MathEng of Math = {
  lincat
    Annotation, Declaration, CaseList, TypList, TypeDefinition = { s : Str };
    Declaration = { s : Str };
    Case = { s : Str };
    Arg = { s : Str };

    Exp  = { s : Str };

  lindef
    Id = \x -> { s = x};

  lin

    SeqDeclaration B d2 =
      ss ("Definition." ++ B.$0 ++ B.s ++ ";\n\n" ++ d2.s);

    TypeDeclaration typName d = ss d.s;

    EmptyDeclaration = ss "";

    FnDeclaration fnName e = ss ("is" ++ e.s);

   -----------------------------------------------------------------------------
   -- TYPE DEFINITIONS
   -----------------------------------------------------------------------------

    Inductive typName cs =
      ss ("is a type that is defined as follows:" ++ cs.s);

    TrivialConstructor name id = { s = name.s ++ "is a" ++ id.s };

    OneArgumentConstructor id1 id2 B = {
      s = "given a" ++ B.$0 ++ "of type" ++ id1.s ++ B.s ++ "is a" ++ id2.s
    };

   -----------------------------------------------------------------------------
   -- FUNCTION DEFINITIONS
   -----------------------------------------------------------------------------

    TypApp a b = { s = a.s ++ "applied to" ++ b.s };

    Empty = { s = "" };
    Cons t cs = { s = ("\n-" ++ t.s ++ cs.s) };

    OneArgFunDef B = ss ("a function that maps" ++ B.$0 ++ "to" ++ B.s);

    TwoArgFunDef B = {
      s = "a function that takes" ++ B.$1 ++ "and" ++ B.$0 ++ "returns" ++ B.s;
    };

    TwoCasePatMatch e c1 e1 c2 e2 = {
      s = e1.s ++ "if" ++ e.s ++ "has the form" ++ e1.s ++
          "and" ++ e2.s ++ "if it has the form" ++ c2.s
    };

    AnArg = ss "x1";

    Var x = { s = x.s };

    App f x = ss ("(" ++ f.s ++ x.s ++ ")");

  oper ss : Str -> { s : Str } = \x -> { s = x};
}

concrete MathEng of Math = {
  lincat
    Annotation, Declaration, CaseList, TypList, TypeDefinition = { s : Str };
    Declaration = { s : Str };
    Case = { s : Str };
    Arg = { s : Str };

    Exp  = { s : Str };

  lindef
    Id = \x -> { s = x};

  lin

    SeqDeclaration B d2 =
      ss ("Definition." ++ B.$0 ++ B.s ++ ";\n\n" ++ d2.s);

    TypeDeclaration typName d = ss d.s;

    EmptyDeclaration = ss "";

    FnDeclaration fnName e = ss ("is" ++ e.s);

    Inductive typName cs =
      ss ("is a type that is defined as follows:" ++ cs.s);

    TrivialConstructor name id = { s = name.s ++ "is a" ++ id.s };

    OneArgumentConstructor id1 id2 B = {
      s = "given a" ++ B.$0 ++ "of type" ++ id1.s ++ B.s ++ "is a" ++ id2.s
    };

    TypApp a b = { s = a.s ++ "applied to" ++ b.s };

    Empty = { s = "" };
    Cons t cs = { s = ("\n-" ++ t.s ++ cs.s) };

    OneArgFunDef B = ss ("a function that maps" ++ B.$0 ++ "to" ++ B.s);

    TwoArgFunDef B = {
      s = "a function that takes" ++ B.$1 ++ "and" ++ B.$0 ++ "returns" ++ B.s;
    };

    TwoCasePatMatch e c1 e1 c2 e2 = {
      s = e1.s ++ "if" ++ e.s ++ "has the form" ++ e1.s ++
          "and" ++ e2.s ++ "if it has the form" ++ c2.s
    };

    AnArg = ss "x1";

    Var x = { s = x.s };

    App f x = ss ("(" ++ f.s ++ x.s ++ ")");

  oper ss : Str -> { s : Str } = \x -> { s = x};
}


Fix OneArgumentConstructor in MathCoq

Fix OneArgumentConstructor in MathCoq

concrete MathCoq of Math = {
  lincat
    Annotation, Declaration, CaseList, TypList, Definition = { s : Str };
    Declaration = { s : Str };
    Case = { s : Str };
    Arg = { s : Str };

    Exp  = { s : Str };

  lindef
    Id = \x -> { s = x};

  lin

    TypeDeclaration d = ss ("Inductive" ++ d.s ++ ".");

    FnDeclaration B = {
      s = "Definition" ++ B.$0 ++ ":=" ++ B.s ++ ".";
    };

    SeqDeclaration d1 d2 = ss (d1.s ++ "\n\n" ++ d2.s);

    Inductive B = ss (B.$0 ++ ":=" ++ B.s);

    TrivialConstructor name Id = ss (name.s ++ ":" ++ Id.s);

    OneArgumentConstructor id1 id2 B = {
      s = B.$1 ++ ":" ++ id1.s ++ "->" ++ id2.s
    };

    TypApp a b = ss (a.s ++ b.s);

    Empty = ss "";
    Cons t cs = ss ("|" ++ t.s ++ cs.s);

    OneArgFunDef B = ss ("fun" ++ B.$0 ++ "=>" ++ B.s);

    TwoArgFunDef B = ss ("fun" ++ B.$1 ++ B.$0 ++ "=>" ++ B.s);

    TwoCasePatMatch e c1 e1 c2 e2 = {
      s = "match" ++ e.s ++ "with" ++
          "|" ++ c1.s ++ "=>" ++ e1.s ++
          "|" ++ c2.s ++ "=>" ++ e2.s ++
          "end"
    };

    AnArg = ss "x1";

    Var x = { s = x.s };

    App f x = ss ("(" ++ f.s ++ x.s ++ ")");

  oper ss : Str -> { s : Str } = \x -> { s = x};
}

concrete MathCoq of Math = {
  lincat
    Annotation, Declaration, CaseList, TypList, Definition = { s : Str };
    Declaration = { s : Str };
    Case = { s : Str };
    Arg = { s : Str };

    Exp  = { s : Str };

  lindef
    Id = \x -> { s = x};

  lin

    TypeDeclaration d = ss ("Inductive" ++ d.s ++ ".");

    FnDeclaration B = {
      s = "Definition" ++ B.$0 ++ ":=" ++ B.s ++ ".";
    };

    SeqDeclaration d1 d2 = ss (d1.s ++ "\n\n" ++ d2.s);

    Inductive B = ss (B.$0 ++ ":=" ++ B.s);

    TrivialConstructor name Id = ss (name.s ++ ":" ++ Id.s);

    OneArgumentConstructor id1 id2 B = {
      s = "given a" ++ B.$0 ++ "of type" ++ id1.s ++ B.s ++ "is a" ++ id2.s
    };

    TypApp a b = ss (a.s ++ b.s);

    Empty = ss "";
    Cons t cs = ss ("|" ++ t.s ++ cs.s);

    OneArgFunDef B = ss ("fun" ++ B.$0 ++ "=>" ++ B.s);

    TwoArgFunDef B = ss ("fun" ++ B.$1 ++ B.$0 ++ "=>" ++ B.s);

    TwoCasePatMatch e c1 e1 c2 e2 = {
      s = "match" ++ e.s ++ "with" ++
          "|" ++ c1.s ++ "=>" ++ e1.s ++
          "|" ++ c2.s ++ "=>" ++ e2.s ++
          "end"
    };

    AnArg = ss "x1";

    Var x = { s = x.s };

    App f x = ss ("(" ++ f.s ++ x.s ++ ")");

  oper ss : Str -> { s : Str } = \x -> { s = x};
}


Changed gender for rope in swedish.

Changed gender for rope in swedish.

--# -path=.:present:alltenses

concrete MountaineeringSwe of Mountaineering =
    PhrasebookSwe -
      [
        ABusinessman,
        ACook,
        ADoctor,
        AEngineer,
        ALawyer,
        AProfessor,
        AStudent,
        ATeacher
      ] **
    MountaineeringI with
      (Syntax = SyntaxSwe),
      (Symbolic = SymbolicSwe),
      (Lexicon = LexiconSwe) **
	open
	  SyntaxSwe,
	  ParadigmsSwe,
	  (L = LexiconSwe),
	  IrregSwe,
	  ExtraSwe,
	  Prelude in {
  lin
    HoldToPlaceKind x = mkCNPlace x (mkPrep "vid") to_Prep;

    IsAProfession p pro = mkProfession pro p;

-- Words
  lin
    BelayStation = mkPlace (mkN "standplats") "p";
    Cliff = mkPlace (mkN "klippa") "p";
    ClimbingGym = mkPlace (mkN "klttergym" neutrum) "p";
    Glacier = mkPlace (mkN "glacir") "p";
    Mountain = mkPlace L.mountain_N "p";
    Overhang = mkPlace (mkN "verhng" neutrum) "i";
    Summit = mkPlace (mkN "topp") "p";

    VAbseil, VRappel = mkVP (regV "fira");
    VBelay = mkVP (regV "skra");
    VBoulder = mkVP (regV "bouldra");
    VClimb = mkVP (regV "klttra");
    VFall = mkVP (regV "falla");
    VLead = mkVP (regV "leda");
    VStem = mkVP (regV "stmma");

    GBelayOn = mkGreeting "skring klar";
    GBelow, GRock = mkGreeting "sten";
    GClimbing = mkGreeting "jag klttrar";
    GFalling = mkGreeting "faller";
    GOffBelay, GSafe = mkGreeting "lgg av";
    GRope = mkGreeting "rep";
    GSlack = mkGreeting "rep";
    GUpRope = mkGreeting "tag hem";

    Ascender = mkCN (mkN "repklmma");
    Bolt = mkCN (mkN "bult");
    Carabiner = mkCN (mkN "karbinhake" "karbinhakar");
    Chalk = mkCN (mkN "krita");
    ChestHarness = mkCN (mkN "brstsele" "brstselar");
    ClimbingShoe = mkCN (mkN "klttersko" "kltterskor");
    Cord = mkCN (mkN "snre" neutrum);
    Crampon = mkCN (mkN "stegjrn" neutrum);
    ExpansionBolt = mkCN (mkN "borrbult");
    Harness = mkCN (mkN "sele" "selar");
    Helmet = mkCN (mkN "hjlm");
    IceAxe = mkCN (mkN "isyxa");
    Jumar = mkCN (mkN "jumar" "jumars");
    LockingCarabiner = mkCN (mkN "lskarbin" "lskarbiner");
    Nut = mkCN (mkN "kil");
    Piton = mkCN (mkN "kil");
    Rack = mkCN (mkN "utrustning");
    Ring = mkCN (mkN "ring");
    Rope = mkCN (mkN "rep" neutrum);
    Runner, Sling = mkCN (mkN "slinga");
    Webbing = mkCN (mkN "nylonband" neutrum);

    Bucket, Jug = mkCN (mkN "brevlda");
    Crack = mkCN (mkN "spricka");
    Hold = mkCN (mkN "grepp" neutrum);
    Pocket = mkCN (mkN "pocket" "pocketen" "pockets" "pocketsarna");
    Sloper = mkCN (mkN "slope" "slopen" "slopes" "slopsen");

    Bowline = mkCN (mkN "plstek");
    ButterflyKnot = mkCN (mkN "fjrilsstek");
    DoubleFisherman = mkCN (mkN "dubbel fiskarknop" "dubbla fiskarknopen" "dubbla fiskarknopar" "dubbla fiskarknoparna");
    FigureOfEightKnot = mkCN (mkN "tta");
    FishermansKnot = mkCN (mkN "fiskarknop");
    Knot = mkCN (mkN "knop");
    OverhandBend = mkCN (mkN "dubbel verhandsknop" "dubbla verhandsknopen" "dubbla verhandsknopar" "dubbla verhandsknoparna");
    OverhandKnot = mkCN (mkN "verhandsknop");
    PrusikKnot = mkCN (mkN "prusik");
    WaterKnot = mkCN (mkN "vattenknop");

    ProBelayerMale, ProBelayerFemale = mkN "skringsman" "skringsmannen" "skringsmn" "skringsmnnen";
    ProClimberMale, ProClimberFemale = mkN "klttrare";
    ProLeaderMale, ProLeaderFemale = mkN "frsteman" "frstemannen" "frstemn" "frstemnnen";
    ProSecondMale, ProSecondFemale = mkN "andreman" "andremannen" "andremn" "andremnnen";
}

--# -path=.:present:alltenses

concrete MountaineeringSwe of Mountaineering =
    PhrasebookSwe -
      [
        ABusinessman,
        ACook,
        ADoctor,
        AEngineer,
        ALawyer,
        AProfessor,
        AStudent,
        ATeacher
      ] **
    MountaineeringI with
      (Syntax = SyntaxSwe),
      (Symbolic = SymbolicSwe),
      (Lexicon = LexiconSwe) **
	open
	  SyntaxSwe,
	  ParadigmsSwe,
	  (L = LexiconSwe),
	  IrregSwe,
	  ExtraSwe,
	  Prelude in {
  lin
    HoldToPlaceKind x = mkCNPlace x (mkPrep "vid") to_Prep;

    IsAProfession p pro = mkProfession pro p;

-- Words
  lin
    BelayStation = mkPlace (mkN "standplats") "p";
    Cliff = mkPlace (mkN "klippa") "p";
    ClimbingGym = mkPlace (mkN "klttergym" neutrum) "p";
    Glacier = mkPlace (mkN "glacir") "p";
    Mountain = mkPlace L.mountain_N "p";
    Overhang = mkPlace (mkN "verhng" neutrum) "i";
    Summit = mkPlace (mkN "topp") "p";

    VAbseil, VRappel = mkVP (regV "fira");
    VBelay = mkVP (regV "skra");
    VBoulder = mkVP (regV "bouldra");
    VClimb = mkVP (regV "klttra");
    VFall = mkVP (regV "falla");
    VLead = mkVP (regV "leda");
    VStem = mkVP (regV "stmma");

    GBelayOn = mkGreeting "skring klar";
    GBelow, GRock = mkGreeting "sten";
    GClimbing = mkGreeting "jag klttrar";
    GFalling = mkGreeting "faller";
    GOffBelay, GSafe = mkGreeting "lgg av";
    GRope = mkGreeting "rep";
    GSlack = mkGreeting "rep";
    GUpRope = mkGreeting "tag hem";

    Ascender = mkCN (mkN "repklmma");
    Bolt = mkCN (mkN "bult");
    Carabiner = mkCN (mkN "karbinhake" "karbinhakar");
    Chalk = mkCN (mkN "krita");
    ChestHarness = mkCN (mkN "brstsele" "brstselar");
    ClimbingShoe = mkCN (mkN "klttersko" "kltterskor");
    Cord = mkCN (mkN "snre" neutrum);
    Crampon = mkCN (mkN "stegjrn" neutrum);
    ExpansionBolt = mkCN (mkN "borrbult");
    Harness = mkCN (mkN "sele" "selar");
    Helmet = mkCN (mkN "hjlm");
    IceAxe = mkCN (mkN "isyxa");
    Jumar = mkCN (mkN "jumar" "jumars");
    LockingCarabiner = mkCN (mkN "lskarbin" "lskarbiner");
    Nut = mkCN (mkN "kil");
    Piton = mkCN (mkN "kil");
    Rack = mkCN (mkN "utrustning");
    Ring = mkCN (mkN "ring");
    Rope = mkCN (mkN "rep");
    Runner, Sling = mkCN (mkN "slinga");
    Webbing = mkCN (mkN "nylonband" neutrum);

    Bucket, Jug = mkCN (mkN "brevlda");
    Crack = mkCN (mkN "spricka");
    Hold = mkCN (mkN "grepp" neutrum);
    Pocket = mkCN (mkN "pocket" "pocketen" "pockets" "pocketsarna");
    Sloper = mkCN (mkN "slope" "slopen" "slopes" "slopsen");

    Bowline = mkCN (mkN "plstek");
    ButterflyKnot = mkCN (mkN "fjrilsstek");
    DoubleFisherman = mkCN (mkN "dubbel fiskarknop" "dubbla fiskarknopen" "dubbla fiskarknopar" "dubbla fiskarknoparna");
    FigureOfEightKnot = mkCN (mkN "tta");
    FishermansKnot = mkCN (mkN "fiskarknop");
    Knot = mkCN (mkN "knop");
    OverhandBend = mkCN (mkN "dubbel verhandsknop" "dubbla verhandsknopen" "dubbla verhandsknopar" "dubbla verhandsknoparna");
    OverhandKnot = mkCN (mkN "verhandsknop");
    PrusikKnot = mkCN (mkN "prusik");
    WaterKnot = mkCN (mkN "vattenknop");

    ProBelayerMale, ProBelayerFemale = mkN "skringsman" "skringsmannen" "skringsmn" "skringsmnnen";
    ProClimberMale, ProClimberFemale = mkN "klttrare";
    ProLeaderMale, ProLeaderFemale = mkN "frsteman" "frstemannen" "frstemn" "frstemnnen";
    ProSecondMale, ProSecondFemale = mkN "andreman" "andremannen" "andremn" "andremnnen";
}


added copula as verb to English

added copula as verb to English

concrete PrimaLexEng of PrimaLex = CatEng ** PrimaLexI
  with (Cat=CatEng), (Structural=StructuralEng), (Lexicon=LexiconEng) **
  open ParadigmsEng, (Irreg=IrregEng), (Verb=VerbEng), (Res=ResEng), Prelude in {

-- Note: The English RGL cannot encode the Copula as a regular verb, this is the best we can do:
oper verbBe = mkV "be" "is" "was" "been" "being" ;

lin
  copula_VA = mkVA verbBe ;
  copula_V2 = mkV2 verbBe ;

  imperium_N = mkN "empire" "empires" ;
  Romanus_A = mkA "Roman" ;
  imperator_N = mkN "imperator" ;
  civitas_N = mkN "society" "societies" ;
  externus_A = compoundA (mkA "foreign") ;
  vincere_V2 = mkV2 (mkV "conquer" "conquers" "conquered" "conquered" "conquering") ;
  victus_A = mkA "conquered" ;
  saepe_Adv = mkAdv "often" ;
  provincia_N = mkN "province" "provinces" ;
  devenire_V2 = mkV2 Irreg.become_V ;
  Gallia_PN = mkPN (mkN "Gaul") ;
  Africa_PN = mkPN "Africa" ;
  Germanus_N = mkN "German" ;
  hostis_N = mkN "enemy" "enemies" ;
  dicere_V = Irreg.say_V ;

  Augustus_PN = mkPN (mkN "Augustus") ;
  Caesar_N = mkN "emperor" ;

  laetus_A = mkA "happy" "happier" ;
  anxius_A = mkA "troubled" ;
  felix_A = mkA "lucky" "luckier" ;
  coniux_N = mkN feminine (mkN "wife" "wives") ;
  sapiens_A = mkA "wise" "wiser" ;
  numen_N = mkN "divinity" "divinities" ;
  ingens_A = compoundA (mkA "enormous") ;

}

concrete PrimaLexEng of PrimaLex = CatEng ** PrimaLexI
  with (Cat=CatEng), (Structural=StructuralEng), (Lexicon=LexiconEng) **
  open ParadigmsEng, (Irreg=IrregEng), (Verb=VerbEng), (Res=ResEng), Prelude in {

lin
  imperium_N = mkN "empire" "empires" ;
  Romanus_A = mkA "Roman" ;
  imperator_N = mkN "imperator" ;
  civitas_N = mkN "society" "societies" ;
  externus_A = compoundA (mkA "foreign") ;
  vincere_V2 = mkV2 (mkV "conquer" "conquers" "conquered" "conquered" "conquering") ;
  victus_A = mkA "conquered" ;
  saepe_Adv = mkAdv "often" ;
  provincia_N = mkN "province" "provinces" ;
  devenire_V2 = mkV2 Irreg.become_V ;
  Gallia_PN = mkPN (mkN "Gaul") ;
  Africa_PN = mkPN "Africa" ;
  Germanus_N = mkN "German" ;
  hostis_N = mkN "enemy" "enemies" ;
  dicere_V = Irreg.say_V ;

  Augustus_PN = mkPN (mkN "Augustus") ;
  Caesar_N = mkN "emperor" ;

  laetus_A = mkA "happy" "happier" ;
  anxius_A = mkA "troubled" ;
  felix_A = mkA "lucky" "luckier" ;
  coniux_N = mkN feminine (mkN "wife" "wives") ;
  sapiens_A = mkA "wise" "wiser" ;
  numen_N = mkN "divinity" "divinities" ;
  ingens_A = compoundA (mkA "enormous") ;

}


Fix the bool example

Fix the bool example

linearize
  (SeqTypeDeclaration
    (\bool ->
      (PairInductive
        (Inductive bool
          (Cons (TrivialConstructor "true" bool)
            (Cons (TrivialConstructor "false" bool)
              Empty)))
        EmptyDeclaration)))

linearize (SeqDeclaration (\bool ->
  (TypeDeclaration bool
    (Inductive bool
      (Cons
        (TrivialConstructor "true"  bool)
          (Cons (TrivialConstructor "false" bool)
            Empty)))))
    EmptyDeclaration)


#kasdkas

#kasdkas

I was created simple query of javascript code. You can easy write code of Javascript and you can easy to do DOM (document object manipulation).

If you familiar with jQuery, gQuery can be used with jQuery. You can modify the source code.

Garuda Query has an identical symbol with underscore in front of function name, So you can also use this library with another framework javascript.

Everything has been tested and support much browser like Chrome, Firefox, Opera , Safari & Internet Explorer.

gQuery is not kaleng-kaleng library . You can create a professional web with gQuery.

07:00 AM - 20 Agustus 2017

	Open These Page In Desktop Mode ( Mobile Phone isn't RECOMMENDED )

	If javascript doesnt work in documentation, refresh to HOME PAGE, and back to the PART of Documentation that you want to VISIT

	 Fork

I was created simple query of javascript code. You can easy write code of Javascript and you can easy to do DOM (document object manipulation).

If you familiar with jQuery, gQuery can be used with jQuery. You can modify the source code.

Garuda Query has an identical symbol with underscore in front of function name, So you can also use this library with another framework javascript.

Everything has been tested and support much browser like Chrome, Firefox, Opera , Safari & Internet Explorer.

gQuery is not kaleng-kaleng library . You can create a professional web with gQuery.

07:00 AM - 20 Agustus 2017

	Open These Page In Desktop Mode (Mobile Phone isn't recommended)

	If javascript doesnt work in documentation, refresh to HOME PAGE, and back to the PART of Documentation that you want to VISIT

	 Fork


refactor the event as well as the consequence

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/legalese-io/legalese-compiler.git/'


polish turd

polish turd


cleanup post refactoring to deontic

cleanup post refactoring to deontic


is | the same as variants?

is | the same as variants?


add concrete syntax

add concrete syntax


add project gf-monsterburger abstract syntax


workinging except for the verbinging

workinging except for the verbinging

Missouri> gt -cat=ReactionRule | l
the repealing of the section and laws repealed by this law shall not have the effect of abating , nullifying , suspending or vitiatinging any proceeding .

how to convince GF that the thing is already in VVPresPart
form and doesn't need any more inging


Add days example

Add days example

linearize
  (TypeDeclaration
      (Inductive (\day ->
          Cons (TrivialConstructor "monday" day)
           (Cons (TrivialConstructor "tuesday" day)
              (Cons (TrivialConstructor "wednesday" day)
                (Cons (TrivialConstructor "thursday" day)
                  (Cons (TrivialConstructor "friday" day)
                    (Cons (TrivialConstructor "saturday" day)
                      (Cons (TrivialConstructor "sunday" day)
                      Empty)))))))))

error: pathspec 'examples/days.gf' did not match any file(s) known to git


improve syntax. challenge now is Gerund : VPI -> NP


determine/quantify the amount of the deontic object

```
> gt -cat=ReactionRule | l
the eating of the bacon and eggs may have the effect of causing some obesity .
the eating of the bacon and eggs shall not have the effect of causing any obesity .
the eating of the bacon and eggs shall have the effect of causing some obesity .
```


Changes to bool.gf

Changes to bool.gf

linearize (TypeDeclaration (Inductive (\Bool -> Cons (TrivialConstructor "True" Bool) (Cons (TrivialConstructor "False" Bool) Empty))))

error: pathspec 'examples/bool.gf' did not match any file(s) known to git


properly type all the opers

properly type all the opers

fatal: unable to access 'https://github.com/legalese-io/legalese-compiler.git/': The requested URL returned error: 403


obsoleted by refactoring

obsoleted by refactoring


hack to make the gerunding work for ListVPI for now


pass test 01

pass test 01


Preliminary implementation for inductive definitions

concrete DefinitionCoq of Definition = open Prelude in {
  flags lexer=codevar ; unlexer=unwords ;

  param TypeRequirement = NoReq | YesReq;

  lincat
    Typ, Annotation, Declaration, CaseList, TypList, Definition = { s : Str };

    Declaration = { s : Str };

    Case = { s : Str ; $0 : Str};

  lin
    Unit = { s = "unit" };
    Nat = { s = "nat" };

    TypListEmpty = { s = "" };
    TypListLeaf t = { s = t.s };
    TypListCons t ts = { s = (t.s ++ "->" ++ ts.s)};

    Inductive x cs = {
      s = (x.s ++ ":=" ++ cs.s)
    };

    TrivialConstructor name tyName = {
      s = name.s ++ ":" ++ tyName.s
    };

    OneArgumentConstructor tyName name ts = {
      s = "given" ++ ts.s ++ "," ++ name.s
    };

    Empty = { s = "" };
    Cons t cs = { s = ("|" ++ t.s ++ cs.s) };

    TypeDeclaration d = { s = "Inductive" ++ d.s ++ "."};
}

error: pathspec 'src/DefinitionCoq.gf' did not match any file(s) known to git


Nicer English linearization for pattern matching

concrete FunctionEng of Function = {

  lincat
    Exp = { s : Str};

  lin
    OneArgFunDef B = {
      s = "a function that maps" ++ B.$0 ++ "to" ++ B.s;
    };

    TwoArgFunDef B = {
      s = "a function that takes" ++ B.$1 ++ "and" ++ B.$0 ++ "returns" ++ B.s;
    };

    TwoCasePatMatch e c1 e1 c2 e2 = {
      s = e1.s ++ "if" ++ e.s ++ "has the form" ++ e1.s ++
          "and" ++ e2.s ++ "if it has the form" ++ c2.s
    };

    AnArg = { s = "x1" };

    Var x = { s = x.s };

    App f x = {
      s = "(" ++ f.s ++ x.s ++ ")";
    };
}

error: pathspec 'src/FunctionEng.gf' did not match any file(s) known to git


functor instantiation means we don't need to reopen everything


good progress with predets

good progress with predets