Commit Graph

1048 Commits

Author SHA1 Message Date
Fedor Isakov cbc3c5b106 Add back the generalization of the let-bound variable type. 2018-07-18 15:54:49 +02:00
Fedor Isakov 2041873c35 Add readme file. 2018-07-18 15:54:49 +02:00
Fedor Isakov 58c4272111 Rename the language to sample.lambdacalc 2018-07-18 15:54:49 +02:00
Fedor Isakov dee0c7b8eb Fix the wrong expression (contextNode). 2018-07-18 15:54:49 +02:00
Fedor Isakov 2347d0c572 Remove unused generator. 2018-07-18 15:54:48 +02:00
Fedor Isakov 3d2be367a8 Implemented if-then-else expression. 2018-07-18 15:54:48 +02:00
Fedor Isakov ec840b0ee7 Don't generalize the type of let-bound variable. 2018-07-18 15:54:48 +02:00
Fedor Isakov 9d83b265eb Re-save all models after refactorings in the language. 2018-07-18 15:54:48 +02:00
Fedor Isakov 9a34afceaa Cleaning up the code. 2018-07-18 15:54:48 +02:00
Fedor Isakov 54153b57a6 Simplify unification, drop unifies constraint, drop trace constraint. 2018-07-18 15:54:48 +02:00
Fedor Isakov 8a932dafa6 Fix operator (general recursion) 2018-07-18 15:54:48 +02:00
Fedor Isakov de688f7cd1 Delete unused concept 2018-07-18 15:54:48 +02:00
Fedor Isakov a1a8d4934b Ensure no model check errors in the types model 2018-07-18 15:54:48 +02:00
Fedor Isakov 6f1b068a7b Re-save models to update resolve info. 2018-07-18 15:54:48 +02:00
Fedor Isakov 2b114aba55 Refactor the types model adopting to the latest language changes. Re-saved all models. 2018-07-18 15:54:48 +02:00
Fedor Isakov 68a37091ae More samples 2018-07-18 15:54:48 +02:00
Fedor Isakov cb2d735528 Introduce Forall type. Refactor the typesystem to support forall/gen/inst, get rid of varname for every type var. Better editor. 2018-07-18 15:54:48 +02:00
Fedor Isakov 2f32a72527 Switched to the latest RC build, applied the migrations. 2018-07-18 15:54:48 +02:00
Fedor Isakov cea6f82b78 Refactor the language structure to better reflect the syntax of lambda calculus. Forbid patterns to the left of = sign. Use VarRef and scopes. Forbid let rec. 2018-07-18 15:54:48 +02:00
Fedor Isakov 4338ee2a50 Sample fix operator. 2018-07-18 15:54:48 +02:00
Fedor Isakov dcabb36044 Correctly identify the var's binder. Typeof rule for let..in expression. 2018-07-18 15:54:48 +02:00
Fedor Isakov 8f1abd0388 Migrated to the latest MPS EAP build. 2018-07-18 15:54:48 +02:00
Fedor Isakov 6b16c682e6 More demo using S and K combinators. 2018-07-18 15:54:48 +02:00
Fedor Isakov b74a7f0927 Collect bound vars from preceding let clauses 2018-07-18 15:54:48 +02:00
Fedor Isakov 6c16c4a8f2 Another example of an impossible (non-typeable) term. 2018-07-18 15:54:48 +02:00
Fedor Isakov 9900cd91f3 Report error on catching a cyclic term 2018-07-18 15:54:48 +02:00
Fedor Isakov 8146709a68 Ensure names are assigned to all type variables 2018-07-18 15:54:48 +02:00
Fedor Isakov 0d648afda8 S, K, and I combinators 2018-07-18 15:54:48 +02:00
Fedor Isakov 1d1b00cc6a Intoruce error reporting to the types aspect. Replace all obsolete constructs with the new ones. 2018-07-18 15:54:48 +02:00
Fedor Isakov 05f3c8fe8c Cleanup the demo samples. 2018-07-18 15:54:48 +02:00
Fedor Isakov 81a8c4abec Fix the editor. Enable type presentation as text. Bool and Var types. Fix the types aspect and adapt to the changed metamodel. 2018-07-18 15:54:47 +02:00
Fedor Isakov 28b4862b67 Fimplifying the language: allow only boolean constants. Visualize lambda abstractions. Fix application order visualization with parenthises. 2018-07-18 15:54:47 +02:00
Fedor Isakov 773fa2eaaa Union-find for Var nodes. 2018-07-18 15:54:47 +02:00
Fedor Isakov 7fcb2fa333 Types aspect. Simple typesystem based on Hindley-Milner. 2018-07-18 15:54:47 +02:00
Fedor Isakov e9c3191a59 Initial commit. A simple functional language with numeric and string constants, single-argument abstractions and let bindings. 2018-07-18 15:54:47 +02:00
Fedor Isakov 3763f3dfe8 README for mpscore sample. 2018-07-18 11:17:43 +02:00
Fedor Isakov 46b8e5153f Simplify and fix controlflow sample implementation. 2018-07-18 10:42:32 +02:00
Fedor Isakov 63788c9cca Virtual folders for project modules. 2018-07-18 10:42:13 +02:00
Fedor Isakov 8294e8d702 Switch to MPS 2018.1.5 2018-07-17 15:29:02 +02:00
Fedor Isakov 2d3f4126b8 Add a "check" task for testing all projects at once. Switch travis build to 'gradle check'. 2018-07-17 15:09:47 +02:00
Fedor Isakov 77b578d30c Add a dependency on workflow.preset to in order to fix command-line build. Rename ant targets when importing to clearly separate tasks.
https://youtrack.jetbrains.com/issue/MPS-25921
2018-07-17 15:09:47 +02:00
Fedor Isakov c12bf0d96a Ensure extracted baseLanguageExt stuff can be built from command line. 2018-07-17 15:09:47 +02:00
Fedor Isakov 8528876d2a Include build module into deployed set. 2018-07-16 19:05:17 +02:00
Fedor Isakov 473644e389 Extract baseLanguageExt and its related tests to a separate project. 2018-07-16 18:56:36 +02:00
Fedor Isakov 4f6b8a002a Auto-updated descriptors. (Again!) 2018-07-16 16:40:09 +02:00
Fedor Isakov 4f063cd261 Update test language for typechecking. Re-implement all typechecking tests using test language. Drop dependency on baseLanguageExt and samples. 2018-07-16 16:39:13 +02:00
Fedor Isakov 24bcd0426c Ensure conflicting queries are reported as error. 2018-07-16 16:17:52 +02:00
Fedor Isakov 8b758be83e Ensure node's own language gets included into the rules scope for application. 2018-07-16 13:45:00 +02:00
Fedor Isakov d4477c519b Auto-updated descriptors. 2018-07-16 13:44:02 +02:00
Fedor Isakov d2de6eea33 Return baseLanguagExt as dependency of test modules in order to fix tests. 2018-07-14 17:22:32 +02:00