Commit Graph

1031 Commits

Author SHA1 Message Date
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 c12bf0d96a Ensure extracted baseLanguageExt stuff can be built from command line. 2018-07-17 15:09:47 +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 d4477c519b Auto-updated descriptors. 2018-07-16 13:44:02 +02:00
Fedor Isakov 92c6ba3e12 Restructuring the project: consolidate code, moving samples away. 2018-07-14 17:22:07 +02:00