aboutsummaryrefslogtreecommitdiffstats
path: root/language-web/src/main/js/index.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'language-web/src/main/js/index.tsx')
-rw-r--r--language-web/src/main/js/index.tsx63
1 files changed, 63 insertions, 0 deletions
diff --git a/language-web/src/main/js/index.tsx b/language-web/src/main/js/index.tsx
new file mode 100644
index 00000000..1f08feeb
--- /dev/null
+++ b/language-web/src/main/js/index.tsx
@@ -0,0 +1,63 @@
1import { CacheProvider } from '@emotion/react';
2import React from 'react';
3import { render } from 'react-dom';
4import CssBaseline from '@material-ui/core/CssBaseline';
5import { getCache } from 'tss-react/cache';
6
7import { App } from './App';
8import { RootStore, RootStoreProvider } from './RootStore';
9import { ThemeProvider } from './theme/ThemeProvider';
10
11import '../css/index.scss';
12
13const initialValue = `class Family {
14 contains Person[] members
15}
16
17class Person {
18 Person[] children opposite parent
19 Person[0..1] parent opposite children
20 int age
21 TaxStatus taxStatus
22}
23
24enum TaxStatus {
25 child, student, adult, retired
26}
27
28% A child cannot have any dependents.
29error invalidTaxStatus(Person p) <->
30 taxStatus(p, child), children(p, _q).
31
32unique family.
33Family(family).
34members(family, anne).
35members(family, bob).
36members(family, ciri).
37children(anne, ciri).
38?children(bob, ciri).
39default children(ciri, *): false.
40taxStatus(anne, adult).
41age(anne, 35).
42bobAge: 27.
43age(bob, bobAge).
44!age(ciri, bobAge).
45
46scope Family = 1, Person += 5..10.
47`;
48
49const rootStore = new RootStore();
50rootStore.editorStore.updateValue(initialValue);
51
52const app = (
53 <RootStoreProvider rootStore={rootStore}>
54 <CacheProvider value={getCache()}>
55 <ThemeProvider>
56 <CssBaseline />
57 <App />
58 </ThemeProvider>
59 </CacheProvider>
60 </RootStoreProvider>
61);
62
63render(app, document.getElementById('app'));