diff --git a/.gitignore b/.gitignore index 617fb02..d3168fb 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ src/content # IDE .vscode +*.log # Misc tmp diff --git a/.vscode/configurationCache.log b/.vscode/configurationCache.log deleted file mode 100644 index 48e2bc2..0000000 --- a/.vscode/configurationCache.log +++ /dev/null @@ -1 +0,0 @@ -{"buildTargets":["_site","all","bundle","clean","open","serve"],"launchTargets":[],"customConfigurationProvider":{"workspaceBrowse":{"browsePath":[],"compilerArgs":[]},"fileIndex":[]}} \ No newline at end of file diff --git a/README.adoc b/README.adoc deleted file mode 100644 index 4cd7c3d..0000000 --- a/README.adoc +++ /dev/null @@ -1,132 +0,0 @@ -= EXPRESS Language Foundation official site - -== Introduction - -This is the site for the EXPRESS Language Foundation, located at -https://www.expresslang.org. - -It is a https://jekyllrb.com[Jekyll]-based site created with the Open Project -Jekyll theme. - -The site is hosted at GitHub Pages. - -Refer to their respective docs for details. - -== Content management - -Unlike other sections, this section targets site author -who does not necessarily have a software engineering background. - -NOTE: This documentation covers macOS or Ubuntu Linux. - -=== Overview - -Content management workflow involves the following phases: - -. Authoring: changing the contents of the repository. - You’ll manipulate AsciiDoc files (`.adoc` file extension) - and related files such as illustrations. - -. Previewing your changes (optional): - building and previewing the new version of the site locally without publishing. - (This is not a strict requirement at early stages, - you can skip straight to the next step and see your changes live. - However, setting up for this step is beneficial since it allows you - to preview your changes quicker.) - -. Version management: relaying your changes to upstream repository. - This means others will see your changes. - This also will cause the new version of the site to be published. - (Publishing the new version may take a few minutes.) - -=== Setup - -==== Pre-requisites - -Make sure you have the installed: - -- A text editor - (you can use a simple editor like CotEditor on macOS or Notepad+ on Windows, - or something more complex like VS Code with support for AsciiDoc preview) -- Git CLI - -=== Authoring - -Key sections are documentation pages (the largest) and news/blog posts. -Apart from that there can be other standalone pages. - -[NOTE] --- -You will be authoring site source using **AsciiDoc syntax**. -With AsciiDoc, your write plain text, and the result is rendered as HTML on the public site later. -Check out https://docs.asciidoctor.org/asciidoc/latest/syntax-quick-reference/ -for a quick reference. -AsciiDoc is contained in `.adoc` files. - -Most site source files (`.adoc` and otherwise) have _frontmatter_ -at the beginning, inbetween the `---` delimiters—that frontmatter. -That frontmatter must specify the correct layout (see below) -and your page’s title. -After the frontmatter block, normal content (AsciiDoc, HTML, etc.) begins. --- - -==== Documentation - -Documentation lives under the `/docs/` directory. -All documentation source pages therein must specify `layout: docs` in frontmatter. - -The structure of the directory is reflected in the structure of URLs. -For example, file `/docs/section-1/test-page.adoc` will be available under `ap210.org/docs/section-1/test-page/`. - -===== Navigation sidebar - -Documentation requires manual update when you add pages, retitle them -or move them around. - -Navigation across the docs lives _separately from documentation files_: -you can find it under `/_layouts/docs.html`. - -The YAML frontmatter of that file (between `---` delimiters`) contains -a key `navigation`, under which documentation structure is described. -The sidebar is generated from this structure. - -===== The Deliverables page - -That page (currently `/docs/section-1/deliverables.adoc`) -is a special in that it contains code that initializes a _deliverable browser_. -Regarding that page, feel free to add text before - -==== Posts - -Blog/news roll posts reside under `/_posts/` directory. -See the existing post for frontmatter example. - -==== Other pages - -(Section to be completed.) - -== Previewing site locally - -=== Getting started - -. Ensure you have reasonable Ruby version (2.7.5 is recommended). - Use rbenv to manage Ruby versions. - -. Run `bundle` from within site directory to install Ruby dependencies. - -=== Building & serving - -Run `jekyll serve` from within site directory. - -Alternatively, build to HTML and serve separately -with `jekyll build && cd _site && python3 -m http.server`. - -To troubleshoot errors, append ` --trace` to build or serve command. - -== Development workflow - -. Ensure site builds and works normally, tests pass -. Create your feature branch (`git checkout -b my-new-feature`) -. Commit your changes (`git commit -am 'Add some feature'`) -. Push to the branch (`git push origin my-new-feature`) -. Make a pull request diff --git a/README.md b/README.md index 0d199d1..e61618f 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,20 @@ Content is authored in AsciiDoc under `content/`: The build pipeline converts `.adoc` files to JSON via `scripts/build-content.ts`, then ViteSSG generates static HTML. +## Content authoring + +Content files use AsciiDoc syntax (`.adoc` extension) with YAML frontmatter: + +``` +--- +title: Page Title +--- + +AsciiDoc content here... +``` + +See the [AsciiDoc syntax quick reference](https://docs.asciidoctor.org/asciidoc/latest/syntax-quick-reference/) for markup details. After the frontmatter block, normal AsciiDoc content begins. + ## Deployment Automatically deployed to GitHub Pages on push to `main` via GitHub Actions. diff --git a/TODO.redesign/01-scaffolding.md b/TODO.redesign/01-scaffolding.md deleted file mode 100644 index 6888685..0000000 --- a/TODO.redesign/01-scaffolding.md +++ /dev/null @@ -1,57 +0,0 @@ -# Phase 1: Project Scaffolding - -## Goal -Initialize Vue 3 + Vite + ViteSSG + Tailwind CSS 4 project structure, replacing the Jekyll build. - -## Tasks -- [ ] Initialize Vite + Vue 3 + TypeScript project (`npm create vite@latest` with vue-ts) -- [ ] Install core dependencies: - - `vue-router` ^4.3 - - `vite-ssg` ^0.23 - - `@vitejs/plugin-vue` ^5.1 -- [ ] Install content pipeline dependencies: - - `@asciidoctor/core` ^3.0 - - `gray-matter` ^4.0 - - `globby` ^14.0 - - `tsx` ^4.16 - - `concurrently` ^8.2 -- [ ] Install styling dependencies: - - `tailwindcss` ^4.0 - - `@tailwindcss/typography` ^0.5 - - `@tailwindcss/container-queries` - - `postcss` ^8.4 -- [ ] Install other dependencies: - - `@unhead/vue` ^1.11 (SEO/meta tags) - - `katex` ^0.16 (STEM math) - - `vite-plugin-sitemap` ^0.7 -- [ ] Create `vite.config.ts` with ViteSSG configuration -- [ ] Create `tailwind.config.ts` with brand theme: - - Colors: `#FFB1A2` (salmon), `#4d7bc3` (blue), `#3f65a2` (dark blue), `#1a2332` (navy) - - Fonts: Inter (sans), Source Serif 4 (serif), JetBrains Mono (mono) -- [ ] Create `postcss.config.js` -- [ ] Create `tsconfig.json` with strict mode -- [ ] Create directory structure: - ``` - src/ - main.ts, App.vue, router.ts - components/{layout,content,ui}/ - pages/{learn,course,blog,standards,languages}/ - composables/ - data/ - styles/ - content/ (gitignored, generated) - content/ - pages/, posts/, learn/, course/, bnf/ - public/ - logos/, images/, bnf/, learn/images/ - scripts/ - ``` -- [ ] Copy brand assets from `/Users/mulgogi/src/expresslang/brand/logos/*.svg` to `public/logos/` -- [ ] Copy favicons and existing images to `public/` -- [ ] Create minimal `App.vue` with header/footer shell and `` -- [ ] Create minimal `router.ts` with home route -- [ ] Verify `npm run dev` works - -## Verification -- `npm run dev` serves a blank page without errors -- `npm run build` produces `dist/index.html` diff --git a/TODO.redesign/02-content-pipeline.md b/TODO.redesign/02-content-pipeline.md deleted file mode 100644 index c8b597a..0000000 --- a/TODO.redesign/02-content-pipeline.md +++ /dev/null @@ -1,53 +0,0 @@ -# Phase 2: Content Pipeline (AsciiDoc → JSON) - -## Goal -Build the Node.js pipeline that converts `.adoc` files to JSON consumed by Vue components. - -## Tasks -- [ ] Create `scripts/build-content.ts`: - - Scan `content/pages/`, `content/posts/`, `content/learn/`, `content/course/` - - Parse YAML frontmatter using `gray-matter` - - Convert AsciiDoc body to HTML using `@asciidoctor/core` - - Extract document title, TOC from sections - - Output JSON to `src/content/{pages,posts,learn,course}/` - - JSON schema per file: - ```json - { - "title": "string", - "slug": "string", - "date": "string|null", - "categories": ["string"], - "authors": [{"name":"", "email":"", "use_picture":""}], - "excerpt": "string", - "toc": [{"id":"", "title":"", "level": 2}], - "body": "", - "frontmatter": {} - } - ``` -- [ ] Configure Asciidoctor options: - - `safe: 'safe'` - - `skip-front-matter: true` - - `stem: latexmath` for STEM math - - `imagesdir` remapped per content type (e.g., `/learn/images/` for learn content) -- [ ] Handle STEM math: output KaTeX-compatible HTML -- [ ] Test conversion against all existing content: - - `express.adoc` (1068 lines — tables, source blocks, STEM, definition lists, admonitions) - - `express-rules.adoc` (1526 lines — most complex) - - All 4 blog posts (multi-author frontmatter) - - All 9 pages -- [ ] Create npm scripts in `package.json`: - ```json - { - "build:content": "tsx scripts/build-content.ts", - "dev": "npm run build:content && vite", - "dev:watch": "concurrently \"tsx watch scripts/build-content.ts\" \"vite\"", - "build": "npm run build:content && vite-ssg build", - "preview": "vite preview" - } - ``` -- [ ] Add `src/content/` to `.gitignore` - -## Verification -- `npm run build:content` converts all .adoc files to JSON -- Tables, source blocks, STEM math, admonitions, definition lists render correctly in JSON body HTML -- Image paths resolve to absolute URLs diff --git a/TODO.redesign/03-layout-navigation.md b/TODO.redesign/03-layout-navigation.md deleted file mode 100644 index 8e13d87..0000000 --- a/TODO.redesign/03-layout-navigation.md +++ /dev/null @@ -1,79 +0,0 @@ -# Phase 3: Layout + Navigation Components - -## Goal -Build all reusable layout and UI components with the New York/Tokyo design aesthetic. - -## Design Principles -- Clean lines, generous whitespace, monospace accents -- Subtle fade-in animations (200ms), no bounce/parallax -- Glass-morphism header with backdrop blur -- Dark/light mode with `.dark` class on `` - -## Tasks - -### TheHeader.vue -- [ ] Logo: inline SVG from brand repo (`symbol.svg` + `logo-text.svg`) -- [ ] Desktop navigation: Languages, Learn, Course, Standards, References, Membership, Blog -- [ ] Dark mode toggle (sun/moon icon) -- [ ] Mobile hamburger menu (slides in from right) -- [ ] Sticky header with `backdrop-blur-md` + `bg-white/80 dark:bg-navy/80` -- [ ] Active route highlighting (underline or dot indicator) -- [ ] Logo variant switching: blue for light mode, white for dark mode - -### TheFooter.vue -- [ ] Organization name + copyright -- [ ] Footer links: About, Membership, Privacy, Terms of Service -- [ ] GitHub link icon -- [ ] "EXPRESS Language Foundation" tagline - -### TheSidebar.vue (used by Learn and Course sections) -- [ ] Hierarchical navigation from `src/data/navigation.ts` -- [ ] Collapsible nested sections -- [ ] Active item highlighting (left border accent) -- [ ] Responsive: full sidebar on desktop (>=1024px), collapsible drawer on mobile -- [ ] Smooth expand/collapse transitions - -### MobileNav.vue -- [ ] Full-screen overlay navigation -- [ ] Animated slide-in from right -- [ ] All nav items + dark mode toggle -- [ ] Close on route change or outside click - -### BaseButton.vue -- [ ] Variants: primary (blue), secondary (outline), ghost -- [ ] Sizes: sm, md, lg -- [ ] Hover/focus states with 150ms transition -- [ ] Disabled state - -### BaseCard.vue -- [ ] Hover lift effect (`transform: translateY(-2px)`) -- [ ] Dark mode support -- [ ] Optional image slot, title slot, body slot - -### DarkModeToggle.vue -- [ ] Sun/moon icon toggle -- [ ] Persists preference in `localStorage` -- [ ] Respects `prefers-color-scheme` -- [ ] Smooth icon transition - -### AnimatedSection.vue -- [ ] IntersectionObserver-based fade-in on scroll -- [ ] 200ms transition, subtle translateY(8px) → 0 -- [ ] Respects `prefers-reduced-motion` - -### Data files -- [ ] `src/data/navigation.ts` — site nav links -- [ ] `src/data/site.ts` — site metadata (title, description, social links) -- [ ] `src/data/learn-navigation.ts` — learn sidebar nav structure -- [ ] `src/data/course-navigation.ts` — course sidebar nav structure - -### Composables -- [ ] `src/composables/useTheme.ts` — dark/light mode toggle logic -- [ ] `src/composables/useContent.ts` — fetch JSON content by section + slug - -## Verification -- Header renders with logo, nav items, dark mode toggle -- Dark mode toggles correctly, persists across page reloads -- Sidebar renders with correct navigation hierarchy -- Mobile menu opens/closes smoothly -- All components render correctly in both light and dark modes diff --git a/TODO.redesign/04-page-views.md b/TODO.redesign/04-page-views.md deleted file mode 100644 index 8d4daea..0000000 --- a/TODO.redesign/04-page-views.md +++ /dev/null @@ -1,98 +0,0 @@ -# Phase 4: Page Views - -## Goal -Build all page views that consume content from the pipeline and render with the design system. - -## Tasks - -### router.ts -- [ ] Static routes: `/`, `/about`, `/membership`, `/references`, `/privacy`, `/tos`, `/blog`, `/learn`, `/course`, `/standards`, `/languages` -- [ ] Dynamic routes: `/blog/:slug`, `/learn/:slug`, `/course/:slug`, `/languages/:slug` -- [ ] ViteSSG `includedRoutes` function scans `src/content/*.json` to enumerate dynamic routes -- [ ] 404 catch-all route - -### Homepage (`pages/index.vue`) -- [ ] Hero section: geometric ELF symbol animation, tagline "Don't panic, EXPRESS" -- [ ] CTA buttons: "Language introduction" → `/languages`, "Standards and specifications" → `/standards` -- [ ] Language family showcase: 5 cards (EXPRESS, EXPRESS-G, EXPRESS-I, EXPRESS-X, EXPRESS-Q) with brief descriptions -- [ ] Latest blog posts: 3 `BlogPostCard` components -- [ ] About summary section with link to `/about` - -### ContentPage (`pages/[...slug].vue`) -- [ ] Generic wrapper for AsciiDoc-rendered content -- [ ] Uses `AsciiDocContent.vue` component -- [ ] Typography via Tailwind Typography + `asciidoc.css` -- [ ] Breadcrumb navigation (Home > Page Title) - -### AsciiDocContent.vue -- [ ] Renders HTML body from JSON content via `v-html` -- [ ] Scoped `asciidoc.css` styles for Asciidoctor output classes: - - `.paragraph`, `.ulist`, `.olist`, `.listingblock`, `.tableblock` - - `.admonitionblock`, `.dlist`, `.exampleblock`, `.stemblock` - - `.imageblock`, `.quoteblock`, `.colist` -- [ ] KaTeX CSS for STEM math rendering - -### Learn section (`pages/learn/`) -- [ ] `index.vue` — Overview page with course description, module listing with links -- [ ] `[slug].vue` — Individual learn page with `TheSidebar` + `AsciiDocContent` - - Sidebar shows learn navigation from `data/learn-navigation.ts` - - Previous/Next navigation at bottom of each page - - Responsive: sidebar collapses on mobile - -### Course section (`pages/course/`) -- [ ] `index.vue` — Jotne EDMsdk Course overview with module listing -- [ ] `[slug].vue` — Individual course page with `TheSidebar` + `AsciiDocContent` - - Sidebar shows course navigation from `data/course-navigation.ts` - - Previous/Next navigation - -### Blog (`pages/blog/`) -- [ ] `index.vue` — Date-sorted listing with `BlogPostCard` components -- [ ] `[slug].vue` — Individual post with: - - Author display (multi-author support with avatars) - - Date and category display - - `AsciiDocContent` for body - -### BlogPostCard.vue -- [ ] Post title, excerpt, date, author avatars -- [ ] Hover lift effect -- [ ] Link to `/blog/:slug` - -### Standards page (`pages/standards/index.vue`) -- [ ] ISO 10303 standards overview -- [ ] BNF grammar viewer: list all 7 BNF files with descriptions -- [ ] Each BNF file expandable with syntax-highlighted content - -### BnfViewer.vue -- [ ] Loads BNF file content -- [ ] Syntax highlighting for BNF notation (custom tokenizer or Prism.js/Shiki) -- [ ] Line numbers -- [ ] Copy-to-clipboard button - -### Languages section (`pages/languages/`) -- [ ] `index.vue` — Language family overview (currently `language.adoc` content) -- [ ] `[slug].vue` — Individual language page for each: EXPRESS, EXPRESS-G, EXPRESS-I, EXPRESS-X, EXPRESS-Q - -### Membership page (`pages/membership.vue`) -- [ ] Membership tiers: Corporate, Individual, Founding -- [ ] Contact CTA - -### References page (`pages/references.vue`) -- [ ] BNF grammar links -- [ ] External references (Schenck & Wilson book, EUG proceedings, OMG Express Metamodel) -- [ ] AsciiDoc-rendered bibliography - -### Privacy + TOS pages -- [ ] Placeholder content (same as current) - -### 404 page (`pages/404.vue`) -- [ ] Clean error page with ELF branding -- [ ] "Page not found" message -- [ ] Link back to homepage - -## Verification -- All routes render without errors -- Content pages display AsciiDoc content correctly (tables, code, STEM, images) -- Learn/Course sections show sidebar with correct navigation -- Blog listing shows all 4 posts sorted by date -- Dark/light mode works on all pages -- Mobile layout works on all pages diff --git a/TODO.redesign/05-polish.md b/TODO.redesign/05-polish.md deleted file mode 100644 index 4cf015d..0000000 --- a/TODO.redesign/05-polish.md +++ /dev/null @@ -1,53 +0,0 @@ -# Phase 5: Polish (SEO, Performance, Accessibility, Responsive) - -## Goal -Production-ready polish for SEO, performance, accessibility, and responsive design. - -## Tasks - -### SEO -- [ ] Use `@unhead/vue` for per-page ``, `<meta>`, Open Graph, Twitter Card tags -- [ ] Generate `sitemap.xml` via `vite-plugin-sitemap` -- [ ] Add JSON-LD structured data for Organization on homepage -- [ ] Add canonical URLs -- [ ] Add meta description per page (from frontmatter or excerpt) - -### Performance -- [ ] Lazy-load images below the fold (native `loading="lazy"`) -- [ ] Optimize SVGs with SVGO (or `vite-plugin-svgo`) -- [ ] Preload critical fonts (Inter, JetBrains Mono) with `font-display: swap` -- [ ] Configure Vite code splitting (vendor chunk, per-route chunks) -- [ ] Minify HTML output -- [ ] Compress assets (gzip/brotli via GitHub Pages) - -### Accessibility -- [ ] Skip link to `#main-content` (hidden visually, visible on focus) -- [ ] Proper heading hierarchy: `h1` per page title, `h2+` for sections -- [ ] Color contrast verification (WCAG AA minimum) -- [ ] Keyboard navigation for sidebar, mobile menu, BNF viewer -- [ ] ARIA attributes: `aria-current="page"`, `aria-expanded`, `role="navigation"` -- [ ] `prefers-reduced-motion` media query disables animations -- [ ] Focus-visible styles for keyboard navigation -- [ ] Alt text for all images - -### Responsive Design -- [ ] Mobile-first approach with Tailwind breakpoints (sm, md, lg, xl, 2xl) -- [ ] Test at: 320px, 768px, 1024px, 1440px -- [ ] Mobile: hamburger menu, collapsed sidebar (drawer), stacked cards -- [ ] Tablet (768px+): expanded header nav, sidebar visible -- [ ] Desktop (1024px+): full sidebar + content layout -- [ ] Wide (1440px+): max-width container, centered content -- [ ] Touch-friendly tap targets (minimum 44px) - -### Dark Mode Polish -- [ ] Verify all pages render correctly in dark mode -- [ ] AsciiDoc content dark mode: prose colors, code blocks, tables, admonitions -- [ ] Logo variant switching (white logo on dark) -- [ ] No flash-of-unstyled-content (FOUC) on load -- [ ] Critical CSS inlined in `index.html` - -## Verification -- Lighthouse score >= 90 for Performance, Accessibility, SEO -- All pages work on mobile (320px) and desktop (1440px) -- No FOUC on dark mode page loads -- All external links work diff --git a/TODO.redesign/06-cicd.md b/TODO.redesign/06-cicd.md deleted file mode 100644 index 7c1e74a..0000000 --- a/TODO.redesign/06-cicd.md +++ /dev/null @@ -1,35 +0,0 @@ -# Phase 6: CI/CD and Deployment - -## Goal -Update GitHub Actions workflows for the new ViteSSG build and deploy to GitHub Pages. - -## Tasks - -### Update `.github/workflows/build_deploy.yml` -- [ ] Replace Ruby setup with Node.js 20: - ```yaml - - uses: actions/setup-node@v4 - with: - node-version: '20' - cache: 'npm' - - run: npm ci - - run: npm run build - ``` -- [ ] Upload artifact from `dist/` instead of `_site/` -- [ ] Keep GitHub Pages deployment job as-is -- [ ] Keep triggers: push to `main`, PRs, `workflow_dispatch` - -### Update `.github/workflows/links.yml` -- [ ] Replace Ruby setup with Node.js 20 -- [ ] Build with `npm run build` -- [ ] Point lychee to `dist/` instead of `_site/` -- [ ] Keep `.lycheeignore` for link exclusions - -### Update `.gitignore` -- [ ] Add: `node_modules/`, `dist/`, `src/content/`, `.vite/` -- [ ] Remove: `_site/`, `.jekyll-cache/`, `Gemfile.lock` (keep until Phase 8) - -## Verification -- Push to branch triggers CI build successfully -- `build_deploy.yml` produces deployable artifact -- `links.yml` runs lychee on built output diff --git a/TODO.redesign/07-content-migration.md b/TODO.redesign/07-content-migration.md deleted file mode 100644 index 910a439..0000000 --- a/TODO.redesign/07-content-migration.md +++ /dev/null @@ -1,75 +0,0 @@ -# Phase 7: Content Migration + Jotne Course Transcription - -## Goal -Migrate all existing content from Jekyll to the new structure and transcribe Jotne EDMsdk course PDFs into new AsciiDoc pages. - -## Tasks - -### Migrate Existing Content -- [ ] Copy `_pages/*.adoc` → `content/pages/` (about, language, membership, privacy, references, tos) -- [ ] Copy `_posts/*.adoc` → `content/posts/` (4 blog posts) -- [ ] Copy `learn/*.adoc` → `content/learn/` (10 learn pages) -- [ ] Copy `learn/images/*.svg` → `public/learn/images/` (SVG diagrams) -- [ ] Copy `bnf/*.bnf` → `content/bnf/` and `public/bnf/` -- [ ] Copy blog images from `assets/blog/` → `public/images/blog/` -- [ ] Copy author avatars from `assets/blog/authors/` → `public/images/authors/` -- [ ] Copy supporter logos from `assets/supporter-*.png` → `public/images/supporters/` -- [ ] Strip Jekyll-specific frontmatter from all .adoc files: - - Remove: `layout`, `html-class`, `hero_include`, `article_header_title` - - Keep: `title`, `date`, `categories`, `authors`, `excerpt` - -### Transcribe Jotne EDMsdk Course -Source: `/Users/mulgogi/src/expresslang/jotne_course/EDMsdk course/` (15 PDFs) - -Create new `.adoc` files in `content/course/`: - -- [ ] `01-intro-iso-10303.adoc` — Introduction to ISO 10303 (4.5 MB PDF → ~30 pages) - - What is ISO 10303, STEP architecture, parts structure -- [ ] `02-express-language.adoc` — EXPRESS Language (943 KB PDF) - - EXPRESS syntax, types, entities, schemas -- [ ] `02a-express-edition2.adoc` — EXPRESS Edition 2 (415 KB PDF) - - Edition 2 enhancements -- [ ] `03-express-data-manager.adoc` — EXPRESS Data Manager (1.9 MB PDF) - - EDM tool overview and usage -- [ ] `04-edm-visual-express.adoc` — EDMvisualExpress (836 KB PDF) - - Visual EXPRESS-G diagram editor -- [ ] `05-pdm12-exg.adoc` — PDM12 EXPRESS-G Diagram (154 KB PDF) - - Example EXPRESS-G diagram -- [ ] `06-edm-express-x.adoc` — EdmExpressX Language (2.7 MB PDF) - - EXPRESS-X schema mapping language -- [ ] `07-edm-virtual-machine.adoc` — EDMvirtualMachine and EDMinside (426 KB PDF) - - Runtime environment and integration -- [ ] `08-step-p21.adoc` — STEP Part 21 (517 KB PDF) - - STEP physical file format (ISO 10303-21) -- [ ] `09-step-p28-xml.adoc` — STEP Part 28 XML (440 KB PDF) - - STEP XML binding (ISO 10303-28) -- [ ] `10-query-schema.adoc` — Query Schema (409 KB PDF) - - EXPRESS-Q query language -- [ ] `11-rule-schema.adoc` — Rule Schema (717 KB PDF) - - Rule validation schema -- [ ] `12-edm-interface.adoc` — EDMinterface (1.7 MB PDF) - - EDM API and integration -- [ ] `13-edm-interface-edom3.adoc` — EDMinterface EDOM3 (412 KB PDF) - - EDOM3 interface specifics -- [ ] `14-intro-plcs.adoc` — Introduction to PLCS (3.3 MB PDF) - - Product Life Cycle Support (ISO 10303-239) - -For each transcription: -- Extract all text content into proper AsciiDoc structure -- Convert headings, lists, tables, source code examples -- Extract diagrams/screenshots as images into `public/course/images/` -- Add YAML frontmatter with title and module number - -### Update Navigation Data -- [ ] Add course navigation to `src/data/course-navigation.ts` with all 15 modules -- [ ] Update `src/data/navigation.ts` to include Course link in main nav - -### Future: Upgrade Learn Content -- [ ] Optionally replace `content/learn/` with upstream from `/Users/mulgogi/src/expresslang/course/asciidoc/` (has both presentation and notes versions) - -## Verification -- All migrated .adoc files convert to JSON without errors -- All pages render correctly with the new pipeline -- Jotne course pages appear under `/course/` with sidebar navigation -- All images display correctly -- All BNF files accessible at `/bnf/*` diff --git a/TODO.redesign/08-cleanup-launch.md b/TODO.redesign/08-cleanup-launch.md deleted file mode 100644 index 3b2e66e..0000000 --- a/TODO.redesign/08-cleanup-launch.md +++ /dev/null @@ -1,52 +0,0 @@ -# Phase 8: Cleanup and Launch - -## Goal -Remove all Jekyll artifacts, update documentation, and launch the new site. - -## Tasks - -### Remove Jekyll Files -- [ ] Delete: `Gemfile`, `Gemfile.lock` -- [ ] Delete: `_config.yml` -- [ ] Delete: `_layouts/` directory -- [ ] Delete: `_site/` directory -- [ ] Delete: `.jekyll-cache/` directory -- [ ] Delete: `assets/css/style.scss` -- [ ] Delete: `assets/js/` directory -- [ ] Delete: `jekyll-theme-open-project` and all Jekyll plugin references -- [ ] Delete: `404.html` (replaced by Vue 404 page) -- [ ] Delete: `index.adoc` (replaced by Vue homepage) -- [ ] Delete: `nav-links.html`, `custom-intro.html`, `title.html` -- [ ] Delete: `parent-hub/` directory -- [ ] Delete: `_projects/` directory -- [ ] Delete: Old `_pages/`, `_posts/`, `learn/` directories (content migrated to `content/`) - -### Update Documentation -- [ ] Update `CLAUDE.md` with new project structure, build commands, and architecture -- [ ] Create `README.md` with setup instructions for the new site -- [ ] Update `.gitignore` for Node.js/Vite project - -### Final QA -- [ ] All pages render without errors -- [ ] All existing URLs still work (no broken links) -- [ ] Dark/light mode works on all pages -- [ ] Mobile responsive at all breakpoints -- [ ] All images load correctly -- [ ] All BNF files accessible -- [ ] Blog posts display with correct authors and dates -- [ ] Learn and Course sidebars navigate correctly -- [ ] SEO meta tags present on all pages -- [ ] Sitemap.xml generated correctly -- [ ] 404 page works for invalid URLs -- [ ] Run lychee link checker on built output - -### Launch -- [ ] Merge to `main` -- [ ] Verify GitHub Pages deployment succeeds -- [ ] Verify live site at expresslang.org -- [ ] Check DNS and HTTPS - -## Verification -- Site live at expresslang.org with all content intact -- No Jekyll artifacts remain in the repository -- Build and deploy pipeline works end-to-end diff --git a/bnf/iso-10303-11-2004-raw.bnf b/bnf/iso-10303-11-2004-raw.bnf deleted file mode 100644 index 39f8720..0000000 --- a/bnf/iso-10303-11-2004-raw.bnf +++ /dev/null @@ -1,344 +0,0 @@ -;; iso-10303-11:2004 (no numbers) - -ABS = 'abs' . -ABSTRACT = 'abstract' . -ACOS = 'acos' . -AGGREGATE = 'aggregate' . -ALIAS = 'alias' . -AND = 'and' . -ANDOR = 'andor' . -ARRAY = 'array' . -AS = 'as' . -ASIN = 'asin' . -ATAN = 'atan' . -BAG = 'bag' . -BASED_ON = 'based_on' . -BEGIN = 'begin' . -BINARY = 'binary' . -BLENGTH = 'blength' . -BOOLEAN = 'boolean' . -BY = 'by' . -CASE = 'case' . -CONSTANT = 'constant' . -CONST_E = 'const_e' . -COS = 'cos' . -DERIVE = 'derive' . -DIV = 'div' . -ELSE = 'else' . -END = 'end' . -END_ALIAS = 'end_alias' . -END_CASE = 'end_case' . -END_CONSTANT = 'end_constant' . -END_ENTITY = 'end_entity' . -END_FUNCTION = 'end_function' . -END_IF = 'end_if' . -END_LOCAL = 'end_local' . -END_PROCEDURE = 'end_procedure' . -END_REPEAT = 'end_repeat' . -END_RULE = 'end_rule' . -END_SCHEMA = 'end_schema' . -END_SUBTYPE_CONSTRAINT = 'end_subtype_constraint' . -END_TYPE = 'end_type' . -ENTITY = 'entity' . -ENUMERATION = 'enumeration' . -ESCAPE = 'escape' . -EXISTS = 'exists' . -EXTENSIBLE = 'extensible' . -EXP = 'exp' . -FALSE = 'false' . -FIXED = 'fixed' . -FOR = 'for' . -FORMAT = 'format' . -FROM = 'from' . -FUNCTION = 'function' . -GENERIC = 'generic' . -GENERIC_ENTITY = 'generic_entity' . -HIBOUND = 'hibound' . -HIINDEX = 'hiindex' . -IF = 'if' . -IN = 'in' . -INSERT = 'insert' . -INTEGER = 'integer' . -INVERSE = 'inverse' . -LENGTH = 'length' . -LIKE = 'like' . -LIST = 'list' . -LOBOUND = 'lobound' . -LOCAL = 'local' . -LOG = 'log' . -LOG10 = 'log10' . -LOG2 = 'log2' . -LOGICAL = 'logical' . -LOINDEX = 'loindex' . -MOD = 'mod' . -NOT = 'not' . -NUMBER = 'number' . -NVL = 'nvl' . -ODD = 'odd' . -OF = 'of' . -ONEOF = 'oneof' . -OPTIONAL = 'optional' . -OR = 'or' . -OTHERWISE = 'otherwise' . -PI = 'pi' . -PROCEDURE = 'procedure' . -QUERY = 'query' . -REAL = 'real' . -REFERENCE = 'reference' . -REMOVE = 'remove' . -RENAMED = 'renamed' . -REPEAT = 'repeat' . -RETURN = 'return' . -ROLESOF = 'rolesof' . -RULE = 'rule' . -SCHEMA = 'schema' . -SELECT = 'select' . -SELF = 'self' . -SET = 'set' . -SIN = 'sin' . -SIZEOF = 'sizeof' . -SKIP = 'skip' . -SQRT = 'sqrt' . -STRING = 'string' . -SUBTYPE = 'subtype' . -SUBTYPE_CONSTRAINT = 'subtype_constraint' . -SUPERTYPE = 'supertype' . -TAN = 'tan' . -THEN = 'then' . -TO = 'to' . -TOTAL_OVER = 'total_over' . -TRUE = 'true' . -TYPE = 'type' . -TYPEOF = 'typeof' . -UNIQUE = 'unique' . -UNKNOWN = 'unknown' . -UNTIL = 'until' . -USE = 'use' . -USEDIN = 'usedin' . -VALUE = 'value' . -VALUE_IN = 'value_in' . -VALUE_UNIQUE = 'value_unique' . -VAR = 'var' . -WHERE = 'where' . -WHILE = 'while' . -WITH = 'with' . -XOR = 'xor' . -bit = '0' | '1' . -digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . -digits = digit { digit } . -encoded_character = octet octet octet octet . -hex_digit = digit | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' . -letter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' . -lparen_then_not_lparen_star = '(' { '(' } not_lparen_star { not_lparen_star } . -not_lparen_star = not_paren_star | ')' . -not_paren_star = letter | digit | not_paren_star_special . -not_paren_star_quote_special = '!' | '"' | '#' | '$' | '%' | '&' | '+' | ',' | '-' | '.' | '/' | ':' | ';' | '<' | '=' | '>' | '?' | '@' | '[' | '\' | ']' | '^' | '_' | '`' | '{' | '|' | '}' | '~' . -not_paren_star_special = not_paren_star_quote_special | '''' . -not_quote = not_paren_star_quote_special | letter | digit | '(' | ')' | '*' . -not_rparen_star = not_paren_star | '(' . -octet = hex_digit hex_digit . -special = not_paren_star_quote_special | '(' | ')' | '*' | '''' . -not_rparen_star_then_rparen = not_rparen_star { not_rparen_star } ')' { ')' } . -binary_literal = '%' bit { bit } . -encoded_string_literal = '"' encoded_character { encoded_character } '"' . -integer_literal = digits . -real_literal = integer_literal | ( digits '.' [ digits ] [ 'e' [ sign ] digits ] ) . -simple_id = letter { letter | digit | '_' } . -simple_string_literal = \q { ( \q \q ) | not_quote | \s | \x8 | \x9 | \xA | \xB | \xC | \xD } \q . -embedded_remark = '(*' [ remark_tag ] { ( not_paren_star { not_paren_star } ) | lparen_then_not_lparen_star | ( '*' { '*' } ) | not_rparen_star_then_rparen | embedded_remark } '*)' . -remark = embedded_remark | tail_remark . -remark_tag = '"' remark_ref { '.' remark_ref } '"' . -remark_ref = attribute_ref | constant_ref | entity_ref | enumeration_ref | function_ref | parameter_ref | procedure_ref | rule_label_ref | rule_ref | schema_ref | subtype_constraint_ref | type_label_ref | type_ref | variable_ref . -tail_remark = '--' [ remark_tag ] { \a | \s | \x8 | \x9 | \xA | \xB | \xC | \xD } \n . -attribute_ref = attribute_id . -constant_ref = constant_id . -entity_ref = entity_id . -enumeration_ref = enumeration_id . -function_ref = function_id . -parameter_ref = parameter_id . -procedure_ref = procedure_id . -rule_label_ref = rule_label_id . -rule_ref = rule_id . -schema_ref = schema_id . -subtype_constraint_ref = subtype_constraint_id . -type_label_ref = type_label_id . -type_ref = type_id . -variable_ref = variable_id . -abstract_entity_declaration = ABSTRACT . -abstract_supertype = ABSTRACT SUPERTYPE ';' . -abstract_supertype_declaration = ABSTRACT SUPERTYPE [ subtype_constraint ] . -actual_parameter_list = '(' parameter { ',' parameter } ')' . -add_like_op = '+' | '-' | OR | XOR . -aggregate_initializer = '[' [ element { ',' element } ] ']' . -aggregate_source = simple_expression . -aggregate_type = AGGREGATE [ ':' type_label ] OF parameter_type . -aggregation_types = array_type | bag_type | list_type | set_type . -algorithm_head = { declaration } [ constant_decl ] [ local_decl ] . -alias_stmt = ALIAS variable_id FOR general_ref { qualifier } ';' stmt { stmt } END_ALIAS ';' . -array_type = ARRAY bound_spec OF [ OPTIONAL ] [ UNIQUE ] instantiable_type . -assignment_stmt = general_ref { qualifier } ':=' expression ';' . -attribute_decl = attribute_id | redeclared_attribute . -attribute_id = simple_id . -attribute_qualifier = '.' attribute_ref . -bag_type = BAG [ bound_spec ] OF instantiable_type . -binary_type = BINARY [ width_spec ] . -boolean_type = BOOLEAN . -bound_1 = numeric_expression . -bound_2 = numeric_expression . -bound_spec = '[' bound_1 ':' bound_2 ']' . -built_in_constant = CONST_E | PI | SELF | '?' . -built_in_function = ABS | ACOS | ASIN | ATAN | BLENGTH | COS | EXISTS | EXP | FORMAT | HIBOUND | HIINDEX | LENGTH | LOBOUND | LOINDEX | LOG | LOG2 | LOG10 | NVL | ODD | ROLESOF | SIN | SIZEOF | SQRT | TAN | TYPEOF | USEDIN | VALUE | VALUE_IN | VALUE_UNIQUE . -built_in_procedure = INSERT | REMOVE . -case_action = case_label { ',' case_label } ':' stmt . -case_label = expression . -case_stmt = CASE selector OF { case_action } [ OTHERWISE ':' stmt ] END_CASE ';' . -compound_stmt = BEGIN stmt { stmt } END ';' . -concrete_types = aggregation_types | simple_types | type_ref . -constant_body = constant_id ':' instantiable_type ':=' expression ';' . -constant_decl = CONSTANT constant_body { constant_body } END_CONSTANT ';' . -constant_factor = built_in_constant | constant_ref . -constant_id = simple_id . -constructed_types = enumeration_type | select_type . -declaration = entity_decl | function_decl | procedure_decl | subtype_constraint_decl | type_decl . -derived_attr = attribute_decl ':' parameter_type ':=' expression ';' . -derive_clause = DERIVE derived_attr { derived_attr } . -domain_rule = [ rule_label_id ':' ] expression . -element = expression [ ':' repetition ] . -entity_body = { explicit_attr } [ derive_clause ] [ inverse_clause ] [ unique_clause ] [ where_clause ] . -entity_constructor = entity_ref '(' [ expression { ',' expression } ] ')' . -entity_decl = entity_head entity_body END_ENTITY ';' . -entity_head = ENTITY entity_id subsuper ';' . -entity_id = simple_id . -enumeration_extension = BASED_ON type_ref [ WITH enumeration_items ] . -enumeration_id = simple_id . -enumeration_items = '(' enumeration_id { ',' enumeration_id } ')' . -enumeration_reference = [ type_ref '.' ] enumeration_ref . -enumeration_type = [ EXTENSIBLE ] ENUMERATION [ ( OF enumeration_items ) | enumeration_extension ] . -escape_stmt = ESCAPE ';' . -explicit_attr = attribute_decl { ',' attribute_decl } ':' [ OPTIONAL ] parameter_type ';' . -expression = simple_expression [ rel_op_extended simple_expression ] . -factor = simple_factor [ '**' simple_factor ] . -formal_parameter = parameter_id { ',' parameter_id } ':' parameter_type . -function_call = ( built_in_function | function_ref ) [ actual_parameter_list ] . -function_decl = function_head algorithm_head stmt { stmt } END_FUNCTION ';' . -function_head = FUNCTION function_id [ '(' formal_parameter { ';' formal_parameter } ')' ] ':' parameter_type ';' . -function_id = simple_id . -generalized_types = aggregate_type | general_aggregation_types | generic_entity_type | generic_type . -general_aggregation_types = general_array_type | general_bag_type | general_list_type | general_set_type . -general_array_type = ARRAY [ bound_spec ] OF [ OPTIONAL ] [ UNIQUE ] parameter_type . -general_bag_type = BAG [ bound_spec ] OF parameter_type . -general_list_type = LIST [ bound_spec ] OF [ UNIQUE ] parameter_type . -general_ref = parameter_ref | variable_ref . -general_set_type = SET [ bound_spec ] OF parameter_type . -generic_entity_type = GENERIC_ENTITY [ ':' type_label ] . -generic_type = GENERIC [ ':' type_label ] . -group_qualifier = '\' entity_ref . -if_stmt = IF logical_expression THEN stmt { stmt } [ ELSE stmt { stmt } ] END_IF ';' . -increment = numeric_expression . -increment_control = variable_id ':=' bound_1 TO bound_2 [ BY increment ] . -index = numeric_expression . -index_1 = index . -index_2 = index . -index_qualifier = '[' index_1 [ ':' index_2 ] ']' . -instantiable_type = concrete_types | entity_ref . -integer_type = INTEGER . -interface_specification = reference_clause | use_clause . -interval = '{' interval_low interval_op interval_item interval_op interval_high '}' . -interval_high = simple_expression . -interval_item = simple_expression . -interval_low = simple_expression . -interval_op = '<' | '<=' . -inverse_attr = attribute_decl ':' [ ( SET | BAG ) [ bound_spec ] OF ] entity_ref FOR [ entity_ref '.' ] attribute_ref ';' . -inverse_clause = INVERSE inverse_attr { inverse_attr } . -list_type = LIST [ bound_spec ] OF [ UNIQUE ] instantiable_type . -literal = binary_literal | logical_literal | real_literal | string_literal . -local_decl = LOCAL local_variable { local_variable } END_LOCAL ';' . -local_variable = variable_id { ',' variable_id } ':' parameter_type [ ':=' expression ] ';' . -logical_expression = expression . -logical_literal = FALSE | TRUE | UNKNOWN . -logical_type = LOGICAL . -multiplication_like_op = '*' | '/' | DIV | MOD | AND | '||' . -named_types = entity_ref | type_ref . -named_type_or_rename = named_types [ AS ( entity_id | type_id ) ] . -null_stmt = ';' . -number_type = NUMBER . -numeric_expression = simple_expression . -one_of = ONEOF '(' supertype_expression { ',' supertype_expression } ')' . -parameter = expression . -parameter_id = simple_id . -parameter_type = generalized_types | named_types | simple_types . -population = entity_ref . -precision_spec = numeric_expression . -primary = literal | ( qualifiable_factor { qualifier } ) . -procedure_call_stmt = ( built_in_procedure | procedure_ref ) [ actual_parameter_list ] ';' . -procedure_decl = procedure_head algorithm_head { stmt } END_PROCEDURE ';' . -procedure_head = PROCEDURE procedure_id [ '(' [ VAR ] formal_parameter { ';' [ VAR ] formal_parameter } ')' ] ';' . -procedure_id = simple_id . -qualifiable_factor = attribute_ref | constant_factor | function_call | general_ref | population . -qualified_attribute = SELF group_qualifier attribute_qualifier . -qualifier = attribute_qualifier | group_qualifier | index_qualifier . -query_expression = QUERY '(' variable_id '<*' aggregate_source '|' logical_expression ')' . -real_type = REAL [ '(' precision_spec ')' ] . -redeclared_attribute = qualified_attribute [ RENAMED attribute_id ] . -referenced_attribute = attribute_ref | qualified_attribute . -reference_clause = REFERENCE FROM schema_ref [ '(' resource_or_rename { ',' resource_or_rename } ')' ] ';' . -rel_op = '<' | '>' | '<=' | '>=' | '<>' | '=' | ':<>:' | ':=:' . -rel_op_extended = rel_op | IN | LIKE . -rename_id = constant_id | entity_id | function_id | procedure_id | type_id . -repeat_control = [ increment_control ] [ while_control ] [ until_control ] . -repeat_stmt = REPEAT repeat_control ';' stmt { stmt } END_REPEAT ';' . -repetition = numeric_expression . -resource_or_rename = resource_ref [ AS rename_id ] . -resource_ref = constant_ref | entity_ref | function_ref | procedure_ref | type_ref . -return_stmt = RETURN [ '(' expression ')' ] ';' . -rule_decl = rule_head algorithm_head { stmt } where_clause END_RULE ';' . -rule_head = RULE rule_id FOR '(' entity_ref { ',' entity_ref } ')' ';' . -rule_id = simple_id . -rule_label_id = simple_id . -schema_body = { interface_specification } [ constant_decl ] { declaration | rule_decl } . -schema_decl = SCHEMA schema_id [ schema_version_id ] ';' schema_body END_SCHEMA ';' . -schema_id = simple_id . -schema_version_id = string_literal . -selector = expression . -select_extension = BASED_ON type_ref [ WITH select_list ] . -select_list = '(' named_types { ',' named_types } ')' . -select_type = [ EXTENSIBLE [ GENERIC_ENTITY ] ] SELECT [ select_list | select_extension ] . -set_type = SET [ bound_spec ] OF instantiable_type . -sign = '+' | '-' . -simple_expression = term { add_like_op term } . -simple_factor = aggregate_initializer | entity_constructor | enumeration_reference | interval | query_expression | ( [ unary_op ] ( '(' expression ')' | primary ) ) . -simple_types = binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_type . -skip_stmt = SKIP ';' . -stmt = alias_stmt | assignment_stmt | case_stmt | compound_stmt | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt . -string_literal = simple_string_literal | encoded_string_literal . -string_type = STRING [ width_spec ] . -subsuper = [ supertype_constraint ] [ subtype_declaration ] . -subtype_constraint = OF '(' supertype_expression ')' . -subtype_constraint_body = [ abstract_supertype ] [ total_over ] [ supertype_expression ';' ] . -subtype_constraint_decl = subtype_constraint_head subtype_constraint_body END_SUBTYPE_CONSTRAINT ';' . -subtype_constraint_head = SUBTYPE_CONSTRAINT subtype_constraint_id FOR entity_ref ';' . -subtype_constraint_id = simple_id . -subtype_declaration = SUBTYPE OF '(' entity_ref { ',' entity_ref } ')' . -supertype_constraint = abstract_entity_declaration | abstract_supertype_declaration | supertype_rule . -supertype_expression = supertype_factor { ANDOR supertype_factor } . -supertype_factor = supertype_term { AND supertype_term } . -supertype_rule = SUPERTYPE subtype_constraint . -supertype_term = entity_ref | one_of | '(' supertype_expression ')' . -syntax = schema_decl { schema_decl } . -term = factor { multiplication_like_op factor } . -total_over = TOTAL_OVER '(' entity_ref { ',' entity_ref } ')' ';' . -type_decl = TYPE type_id '=' underlying_type ';' [ where_clause ] END_TYPE ';' . -type_id = simple_id . -type_label = type_label_id | type_label_ref . -type_label_id = simple_id . -unary_op = '+' | '-' | NOT . -underlying_type = concrete_types | constructed_types . -unique_clause = UNIQUE unique_rule ';' { unique_rule ';' } . -unique_rule = [ rule_label_id ':' ] referenced_attribute { ',' referenced_attribute } . -until_control = UNTIL logical_expression . -use_clause = USE FROM schema_ref [ '(' named_type_or_rename { ',' named_type_or_rename } ')' ] ';' . -variable_id = simple_id . -where_clause = WHERE domain_rule ';' { domain_rule ';' } . -while_control = WHILE logical_expression . -width = numeric_expression . -width_spec = '(' width ')' [ FIXED ] . diff --git a/bnf/iso-10303-11-2004.bnf b/bnf/iso-10303-11-2004.bnf deleted file mode 100644 index a5da9fa..0000000 --- a/bnf/iso-10303-11-2004.bnf +++ /dev/null @@ -1,344 +0,0 @@ -;; iso-10303-11:2004 - - 0 ABS = 'abs' . - 1 ABSTRACT = 'abstract' . - 2 ACOS = 'acos' . - 3 AGGREGATE = 'aggregate' . - 4 ALIAS = 'alias' . - 5 AND = 'and' . - 6 ANDOR = 'andor' . - 7 ARRAY = 'array' . - 8 AS = 'as' . - 9 ASIN = 'asin' . - 10 ATAN = 'atan' . - 11 BAG = 'bag' . - 12 BASED_ON = 'based_on' . - 13 BEGIN = 'begin' . - 14 BINARY = 'binary' . - 15 BLENGTH = 'blength' . - 16 BOOLEAN = 'boolean' . - 17 BY = 'by' . - 18 CASE = 'case' . - 19 CONSTANT = 'constant' . - 20 CONST_E = 'const_e' . - 21 COS = 'cos' . - 22 DERIVE = 'derive' . - 23 DIV = 'div' . - 24 ELSE = 'else' . - 25 END = 'end' . - 26 END_ALIAS = 'end_alias' . - 27 END_CASE = 'end_case' . - 28 END_CONSTANT = 'end_constant' . - 29 END_ENTITY = 'end_entity' . - 30 END_FUNCTION = 'end_function' . - 31 END_IF = 'end_if' . - 32 END_LOCAL = 'end_local' . - 33 END_PROCEDURE = 'end_procedure' . - 34 END_REPEAT = 'end_repeat' . - 35 END_RULE = 'end_rule' . - 36 END_SCHEMA = 'end_schema' . - 37 END_SUBTYPE_CONSTRAINT = 'end_subtype_constraint' . - 38 END_TYPE = 'end_type' . - 39 ENTITY = 'entity' . - 40 ENUMERATION = 'enumeration' . - 41 ESCAPE = 'escape' . - 42 EXISTS = 'exists' . - 43 EXTENSIBLE = 'extensible' . - 44 EXP = 'exp' . - 45 FALSE = 'false' . - 46 FIXED = 'fixed' . - 47 FOR = 'for' . - 48 FORMAT = 'format' . - 49 FROM = 'from' . - 50 FUNCTION = 'function' . - 51 GENERIC = 'generic' . - 52 GENERIC_ENTITY = 'generic_entity' . - 53 HIBOUND = 'hibound' . - 54 HIINDEX = 'hiindex' . - 55 IF = 'if' . - 56 IN = 'in' . - 57 INSERT = 'insert' . - 58 INTEGER = 'integer' . - 59 INVERSE = 'inverse' . - 60 LENGTH = 'length' . - 61 LIKE = 'like' . - 62 LIST = 'list' . - 63 LOBOUND = 'lobound' . - 64 LOCAL = 'local' . - 65 LOG = 'log' . - 66 LOG10 = 'log10' . - 67 LOG2 = 'log2' . - 68 LOGICAL = 'logical' . - 69 LOINDEX = 'loindex' . - 70 MOD = 'mod' . - 71 NOT = 'not' . - 72 NUMBER = 'number' . - 73 NVL = 'nvl' . - 74 ODD = 'odd' . - 75 OF = 'of' . - 76 ONEOF = 'oneof' . - 77 OPTIONAL = 'optional' . - 78 OR = 'or' . - 79 OTHERWISE = 'otherwise' . - 80 PI = 'pi' . - 81 PROCEDURE = 'procedure' . - 82 QUERY = 'query' . - 83 REAL = 'real' . - 84 REFERENCE = 'reference' . - 85 REMOVE = 'remove' . - 86 RENAMED = 'renamed' . - 87 REPEAT = 'repeat' . - 88 RETURN = 'return' . - 89 ROLESOF = 'rolesof' . - 90 RULE = 'rule' . - 91 SCHEMA = 'schema' . - 92 SELECT = 'select' . - 93 SELF = 'self' . - 94 SET = 'set' . - 95 SIN = 'sin' . - 96 SIZEOF = 'sizeof' . - 97 SKIP = 'skip' . - 98 SQRT = 'sqrt' . - 99 STRING = 'string' . -100 SUBTYPE = 'subtype' . -101 SUBTYPE_CONSTRAINT = 'subtype_constraint' . -102 SUPERTYPE = 'supertype' . -103 TAN = 'tan' . -104 THEN = 'then' . -105 TO = 'to' . -106 TOTAL_OVER = 'total_over' . -107 TRUE = 'true' . -108 TYPE = 'type' . -109 TYPEOF = 'typeof' . -110 UNIQUE = 'unique' . -111 UNKNOWN = 'unknown' . -112 UNTIL = 'until' . -113 USE = 'use' . -114 USEDIN = 'usedin' . -115 VALUE = 'value' . -116 VALUE_IN = 'value_in' . -117 VALUE_UNIQUE = 'value_unique' . -118 VAR = 'var' . -119 WHERE = 'where' . -120 WHILE = 'while' . -121 WITH = 'with' . -122 XOR = 'xor' . -123 bit = '0' | '1' . -124 digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . -125 digits = digit { digit } . -126 encoded_character = octet octet octet octet . -127 hex_digit = digit | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' . -128 letter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' . -129 lparen_then_not_lparen_star = '(' { '(' } not_lparen_star { not_lparen_star } . -130 not_lparen_star = not_paren_star | ')' . -131 not_paren_star = letter | digit | not_paren_star_special . -132 not_paren_star_quote_special = '!' | '"' | '#' | '$' | '%' | '&' | '+' | ',' | '-' | '.' | '/' | ':' | ';' | '<' | '=' | '>' | '?' | '@' | '[' | '\' | ']' | '^' | '_' | '‘' | '{' | '|' | '}' | '~' . -133 not_paren_star_special = not_paren_star_quote_special | '''' . -134 not_quote = not_paren_star_quote_special | letter | digit | '(' | ')' | '*' . -135 not_rparen_star = not_paren_star | '(' . -136 octet = hex_digit hex_digit . -137 special = not_paren_star_quote_special | '(' | ')' | '*' | '''' . -138 not_rparen_star_then_rparen = not_rparen_star { not_rparen_star } ')' { ')' } . -139 binary_literal = '%' bit { bit } . -140 encoded_string_literal = '"' encoded_character { encoded_character } '"' . -141 integer_literal = digits . -142 real_literal = integer_literal | ( digits '.' [ digits ] [ 'e' [ sign ] digits ] ) . -143 simple_id = letter { letter | digit | '_' } . -144 simple_string_literal = \q { ( \q \q ) | not_quote | \s | \x8 | \x9 | \xA | \xB | \xC | \xD } \q . -145 embedded_remark = '(*' [ remark_tag ] { ( not_paren_star { not_paren_star } ) | lparen_then_not_lparen_star | ( '*' { '*' } ) | not_rparen_star_then_rparen | embedded_remark } '*)' . -146 remark = embedded_remark | tail_remark . -147 remark_tag = '"' remark_ref { '.' remark_ref } '"' . -148 remark_ref = attribute_ref | constant_ref | entity_ref | enumeration_ref | function_ref | parameter_ref | procedure_ref | rule_label_ref | rule_ref | schema_ref | subtype_constraint_ref | type_label_ref | type_ref | variable_ref . -149 tail_remark = '--' [ remark_tag ] { \a | \s | \x8 | \x9 | \xA | \xB | \xC | \xD } \n . -150 attribute_ref = attribute_id . -151 constant_ref = constant_id . -152 entity_ref = entity_id . -153 enumeration_ref = enumeration_id . -154 function_ref = function_id . -155 parameter_ref = parameter_id . -156 procedure_ref = procedure_id . -157 rule_label_ref = rule_label_id . -158 rule_ref = rule_id . -159 schema_ref = schema_id . -160 subtype_constraint_ref = subtype_constraint_id . -161 type_label_ref = type_label_id . -162 type_ref = type_id . -163 variable_ref = variable_id . -164 abstract_entity_declaration = ABSTRACT . -165 abstract_supertype = ABSTRACT SUPERTYPE ';' . -166 abstract_supertype_declaration = ABSTRACT SUPERTYPE [ subtype_constraint ] . -167 actual_parameter_list = '(' parameter { ',' parameter } ')' . -168 add_like_op = '+' | '-' | OR | XOR . -169 aggregate_initializer = '[' [ element { ',' element } ] ']' . -170 aggregate_source = simple_expression . -171 aggregate_type = AGGREGATE [ ':' type_label ] OF parameter_type . -172 aggregation_types = array_type | bag_type | list_type | set_type . -173 algorithm_head = { declaration } [ constant_decl ] [ local_decl ] . -174 alias_stmt = ALIAS variable_id FOR general_ref { qualifier } ';' stmt { stmt } END_ALIAS ';' . -175 array_type = ARRAY bound_spec OF [ OPTIONAL ] [ UNIQUE ] instantiable_type . -176 assignment_stmt = general_ref { qualifier } ':=' expression ';' . -177 attribute_decl = attribute_id | redeclared_attribute . -178 attribute_id = simple_id . -179 attribute_qualifier = '.' attribute_ref . -180 bag_type = BAG [ bound_spec ] OF instantiable_type . -181 binary_type = BINARY [ width_spec ] . -182 boolean_type = BOOLEAN . -183 bound_1 = numeric_expression . -184 bound_2 = numeric_expression . -185 bound_spec = '[' bound_1 ':' bound_2 ']' . -186 built_in_constant = CONST_E | PI | SELF | '?' . -187 built_in_function = ABS | ACOS | ASIN | ATAN | BLENGTH | COS | EXISTS | EXP | FORMAT | HIBOUND | HIINDEX | LENGTH | LOBOUND | LOINDEX | LOG | LOG2 | LOG10 | NVL | ODD | ROLESOF | SIN | SIZEOF | SQRT | TAN | TYPEOF | USEDIN | VALUE | VALUE_IN | VALUE_UNIQUE . -188 built_in_procedure = INSERT | REMOVE . -189 case_action = case_label { ',' case_label } ':' stmt . -190 case_label = expression . -191 case_stmt = CASE selector OF { case_action } [ OTHERWISE ':' stmt ] END_CASE ';' . -192 compound_stmt = BEGIN stmt { stmt } END ';' . -193 concrete_types = aggregation_types | simple_types | type_ref . -194 constant_body = constant_id ':' instantiable_type ':=' expression ';' . -195 constant_decl = CONSTANT constant_body { constant_body } END_CONSTANT ';' . -196 constant_factor = built_in_constant | constant_ref . -197 constant_id = simple_id . -198 constructed_types = enumeration_type | select_type . -199 declaration = entity_decl | function_decl | procedure_decl | subtype_constraint_decl | type_decl . -200 derived_attr = attribute_decl ':' parameter_type ':=' expression ';' . -201 derive_clause = DERIVE derived_attr { derived_attr } . -202 domain_rule = [ rule_label_id ':' ] expression . -203 element = expression [ ':' repetition ] . -204 entity_body = { explicit_attr } [ derive_clause ] [ inverse_clause ] [ unique_clause ] [ where_clause ] . -205 entity_constructor = entity_ref '(' [ expression { ',' expression } ] ')' . -206 entity_decl = entity_head entity_body END_ENTITY ';' . -207 entity_head = ENTITY entity_id subsuper ';' . -208 entity_id = simple_id . -209 enumeration_extension = BASED_ON type_ref [ WITH enumeration_items ] . -210 enumeration_id = simple_id . -211 enumeration_items = '(' enumeration_id { ',' enumeration_id } ')' . -212 enumeration_reference = [ type_ref '.' ] enumeration_ref . -213 enumeration_type = [ EXTENSIBLE ] ENUMERATION [ ( OF enumeration_items ) | enumeration_extension ] . -214 escape_stmt = ESCAPE ';' . -215 explicit_attr = attribute_decl { ',' attribute_decl } ':' [ OPTIONAL ] parameter_type ';' . -216 expression = simple_expression [ rel_op_extended simple_expression ] . -217 factor = simple_factor [ '**' simple_factor ] . -218 formal_parameter = parameter_id { ',' parameter_id } ':' parameter_type . -219 function_call = ( built_in_function | function_ref ) [ actual_parameter_list ] . -220 function_decl = function_head algorithm_head stmt { stmt } END_FUNCTION ';' . -221 function_head = FUNCTION function_id [ '(' formal_parameter { ';' formal_parameter } ')' ] ':' parameter_type ';' . -222 function_id = simple_id . -223 generalized_types = aggregate_type | general_aggregation_types | generic_entity_type | generic_type . -224 general_aggregation_types = general_array_type | general_bag_type | general_list_type | general_set_type . -225 general_array_type = ARRAY [ bound_spec ] OF [ OPTIONAL ] [ UNIQUE ] parameter_type . -226 general_bag_type = BAG [ bound_spec ] OF parameter_type . -227 general_list_type = LIST [ bound_spec ] OF [ UNIQUE ] parameter_type . -228 general_ref = parameter_ref | variable_ref . -229 general_set_type = SET [ bound_spec ] OF parameter_type . -230 generic_entity_type = GENERIC_ENTITY [ ':' type_label ] . -231 generic_type = GENERIC [ ':' type_label ] . -232 group_qualifier = '\' entity_ref . -233 if_stmt = IF logical_expression THEN stmt { stmt } [ ELSE stmt { stmt } ] END_IF ';' . -234 increment = numeric_expression . -235 increment_control = variable_id ':=' bound_1 TO bound_2 [ BY increment ] . -236 index = numeric_expression . -237 index_1 = index . -238 index_2 = index . -239 index_qualifier = '[' index_1 [ ':' index_2 ] ']' . -240 instantiable_type = concrete_types | entity_ref . -241 integer_type = INTEGER . -242 interface_specification = reference_clause | use_clause . -243 interval = '{' interval_low interval_op interval_item interval_op interval_high '}' . -244 interval_high = simple_expression . -245 interval_item = simple_expression . -246 interval_low = simple_expression . -247 interval_op = '<' | '<=' . -248 inverse_attr = attribute_decl ':' [ ( SET | BAG ) [ bound_spec ] OF ] entity_ref FOR [ entity_ref '.' ] attribute_ref ';' . -249 inverse_clause = INVERSE inverse_attr { inverse_attr } . -250 list_type = LIST [ bound_spec ] OF [ UNIQUE ] instantiable_type . -251 literal = binary_literal | logical_literal | real_literal | string_literal . -252 local_decl = LOCAL local_variable { local_variable } END_LOCAL ';' . -253 local_variable = variable_id { ',' variable_id } ':' parameter_type [ ':=' expression ] ';' . -254 logical_expression = expression . -255 logical_literal = FALSE | TRUE | UNKNOWN . -256 logical_type = LOGICAL . -257 multiplication_like_op = '*' | '/' | DIV | MOD | AND | '||' . -258 named_types = entity_ref | type_ref . -259 named_type_or_rename = named_types [ AS ( entity_id | type_id ) ] . -260 null_stmt = ';' . -261 number_type = NUMBER . -262 numeric_expression = simple_expression . -263 one_of = ONEOF '(' supertype_expression { ',' supertype_expression } ')' . -264 parameter = expression . -265 parameter_id = simple_id . -266 parameter_type = generalized_types | named_types | simple_types . -267 population = entity_ref . -268 precision_spec = numeric_expression . -269 primary = literal | ( qualifiable_factor { qualifier } ) . -270 procedure_call_stmt = ( built_in_procedure | procedure_ref ) [ actual_parameter_list ] ';' . -271 procedure_decl = procedure_head algorithm_head { stmt } END_PROCEDURE ';' . -272 procedure_head = PROCEDURE procedure_id [ '(' [ VAR ] formal_parameter { ';' [ VAR ] formal_parameter } ')' ] ';' . -273 procedure_id = simple_id . -274 qualifiable_factor = attribute_ref | constant_factor | function_call | general_ref | population . -275 qualified_attribute = SELF group_qualifier attribute_qualifier . -276 qualifier = attribute_qualifier | group_qualifier | index_qualifier . -277 query_expression = QUERY '(' variable_id '<*' aggregate_source '|' logical_expression ')' . -278 real_type = REAL [ '(' precision_spec ')' ] . -279 redeclared_attribute = qualified_attribute [ RENAMED attribute_id ] . -280 referenced_attribute = attribute_ref | qualified_attribute . -281 reference_clause = REFERENCE FROM schema_ref [ '(' resource_or_rename { ',' resource_or_rename } ')' ] ';' . -282 rel_op = '<' | '>' | '<=' | '>=' | '<>' | '=' | ':<>:' | ':=:' . -283 rel_op_extended = rel_op | IN | LIKE . -284 rename_id = constant_id | entity_id | function_id | procedure_id | type_id . -285 repeat_control = [ increment_control ] [ while_control ] [ until_control ] . -286 repeat_stmt = REPEAT repeat_control ';' stmt { stmt } END_REPEAT ';' . -287 repetition = numeric_expression . -288 resource_or_rename = resource_ref [ AS rename_id ] . -289 resource_ref = constant_ref | entity_ref | function_ref | procedure_ref | type_ref . -290 return_stmt = RETURN [ '(' expression ')' ] ';' . -291 rule_decl = rule_head algorithm_head { stmt } where_clause END_RULE ';' . -292 rule_head = RULE rule_id FOR '(' entity_ref { ',' entity_ref } ')' ';' . -293 rule_id = simple_id . -294 rule_label_id = simple_id . -295 schema_body = { interface_specification } [ constant_decl ] { declaration | rule_decl } . -296 schema_decl = SCHEMA schema_id [ schema_version_id ] ';' schema_body END_SCHEMA ';' . -297 schema_id = simple_id . -298 schema_version_id = string_literal . -299 selector = expression . -300 select_extension = BASED_ON type_ref [ WITH select_list ] . -301 select_list = '(' named_types { ',' named_types } ')' . -302 select_type = [ EXTENSIBLE [ GENERIC_ENTITY ] ] SELECT [ select_list | select_extension ] . -303 set_type = SET [ bound_spec ] OF instantiable_type . -304 sign = '+' | '-' . -305 simple_expression = term { add_like_op term } . -306 simple_factor = aggregate_initializer | entity_constructor | enumeration_reference | interval | query_expression | ( [ unary_op ] ( '(' expression ')' | primary ) ) . -307 simple_types = binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_type . -308 skip_stmt = SKIP ';' . -309 stmt = alias_stmt | assignment_stmt | case_stmt | compound_stmt | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt . -310 string_literal = simple_string_literal | encoded_string_literal . -311 string_type = STRING [ width_spec ] . -312 subsuper = [ supertype_constraint ] [ subtype_declaration ] . -313 subtype_constraint = OF '(' supertype_expression ')' . -314 subtype_constraint_body = [ abstract_supertype ] [ total_over ] [ supertype_expression ';' ] . -315 subtype_constraint_decl = subtype_constraint_head subtype_constraint_body END_SUBTYPE_CONSTRAINT ';' . -316 subtype_constraint_head = SUBTYPE_CONSTRAINT subtype_constraint_id FOR entity_ref ';' . -317 subtype_constraint_id = simple_id . -318 subtype_declaration = SUBTYPE OF '(' entity_ref { ',' entity_ref } ')' . -319 supertype_constraint = abstract_entity_declaration | abstract_supertype_declaration | supertype_rule . -320 supertype_expression = supertype_factor { ANDOR supertype_factor } . -321 supertype_factor = supertype_term { AND supertype_term } . -322 supertype_rule = SUPERTYPE subtype_constraint . -323 supertype_term = entity_ref | one_of | '(' supertype_expression ')' . -324 syntax = schema_decl { schema_decl } . -325 term = factor { multiplication_like_op factor } . -326 total_over = TOTAL_OVER '(' entity_ref { ',' entity_ref } ')' ';' . -327 type_decl = TYPE type_id '=' underlying_type ';' [ where_clause ] END_TYPE ';' . -328 type_id = simple_id . -329 type_label = type_label_id | type_label_ref . -330 type_label_id = simple_id . -331 unary_op = '+' | '-' | NOT . -332 underlying_type = concrete_types | constructed_types . -333 unique_clause = UNIQUE unique_rule ';' { unique_rule ';' } . -334 unique_rule = [ rule_label_id ':' ] referenced_attribute { ',' referenced_attribute } . -335 until_control = UNTIL logical_expression . -336 use_clause = USE FROM schema_ref [ '(' named_type_or_rename { ',' named_type_or_rename } ')' ] ';' . -337 variable_id = simple_id . -338 where_clause = WHERE domain_rule ';' { domain_rule ';' } . -339 while_control = WHILE logical_expression . -340 width = numeric_expression . -341 width_spec = '(' width ')' [ FIXED ] . diff --git a/bnf/iso-10303-14-raw.bnf b/bnf/iso-10303-14-raw.bnf deleted file mode 100644 index fc20990..0000000 --- a/bnf/iso-10303-14-raw.bnf +++ /dev/null @@ -1,240 +0,0 @@ -;; N178 2002-03-22 (no numbers) - -;; Added support for local var assignments in map select - -DEPENDENT_MAP = 'dependent_map' . -EACH = 'each' . -ELSIF = 'elsif' . -END_DEPENDENT_MAP = 'end_dependent_map' . -END_MAP = 'end_map' . -END_SCHEMA_MAP = 'end_schema_map' . -END_SCHEMA_VIEW = 'end_schema_view' . -END_VIEW = 'end_view' . -EXTENT = 'extent' . -IDENTIFIED_BY = 'identified_by' . -INDEXING = 'indexing' . -MAP = 'map' . -ORDERED_BY = 'ordered_by' . -PARTITION = 'partition' . -SCHEMA_MAP = 'schema_map' . -SCHEMA_VIEW = 'schema_view' . -SOURCE = 'source' . -TARGET = 'target' . -VIEW = 'view' . -digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . -letter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' . -simple_id = letter { letter | digit | '_' } . -partition_ref = partition_id . -schema_map_ref = schema_map_id . -schema_view_ref = schema_view_id . -source_schema_ref = schema_ref . -target_schema_ref = schema_ref . -view_attribute_ref = view_attribute_id . -view_ref = view_id . -abstract_supertype_declaration = ABSTRACT SUPERTYPE [ subtype_constraint ] . -actual_parameter_list = '(' parameter { ',' parameter } ')' . -add_like_op = '+' | '-' | OR | XOR . -aggregate_initializer = '[' [ element { ',' element } ] ']' . -aggregate_source = simple_expression . -aggregate_type = AGGREGATE [ ':' type_label ] OF parameter_type . -aggregation_types = array_type | bag_type | list_type | set_type . -algorithm_head = { declaration } [ constant_decl ] [ local_decl ] . -array_type = ARRAY bound_spec OF [ OPTIONAL ] [ UNIQUE ] base_type . -assignment_stmt = general_ref { qualifier } ':=' expression ';' . -backward_path_qualifier = '<-' [ attribute_ref ] path_condition . -bag_type = BAG [ bound_spec ] OF base_type . -base_type = aggregation_types | simple_types | named_types . -binary_type = BINARY [ width_spec ] . -binding_header = [ PARTITION partition_id ';' ] [ from_clause ] [ local_decl ] [ where_clause ] [ identified_by_clause ] [ ordered_by_clause ] . -boolean_type = BOOLEAN . -bound_1 = numeric_expression . -bound_2 = numeric_expression . -bound_spec = '[' bound_1 ':' bound_2 ']' . -built_in_constant = CONST_E | PI | SELF | '?' . -built_in_function = ABS | ACOS | ASIN | ATAN | BLENGTH | COS | EXISTS | EXTENT | EXP | FORMAT | HIBOUND | HIINDEX | LENGTH | LOBOUND | LOINDEX | LOG | LOG2 | LOG10 | NVL | ODD | ROLESOF | SIN | SIZEOF | SQRT | TAN | TYPEOF | USEDIN | VALUE | VALUE_IN | VALUE_UNIQUE . -built_in_procedure = INSERT | REMOVE . -case_action = case_label { ',' case_label } ':' stmt . -case_expr = CASE selector OF { case_expr_action } [ OTHERWISE ':' expression ] END_CASE . -case_expr_action = case_label { ',' case_label } ':' expression ';' . -case_label = expression . -case_stmt = CASE selector OF { case_action } [ OTHERWISE ':' stmt ] END_CASE ';' . -compound_stmt = BEGIN stmt { stmt } END ';' . -constant_body = constant_id ':' base_type ':=' expression ';' . -constant_decl = CONSTANT constant_body { constant_body } END_CONSTANT ';' . -constant_factor = built_in_constant | constant_ref . -constant_id = simple_id . -declaration = function_decl | procedure_decl . -dependent_map_decl = DEPENDENT_MAP map_id AS target_parameter ';' { target_parameter ';' } [ map_subtype_of_clause ] dep_map_partition { dep_map_partition } END_DEPENDENT_MAP ';' . -dep_binding_decl = dep_from_clause [ where_clause ] [ ordered_by_clause ] . -dep_from_clause = FROM dep_source_parameter ';' { dep_source_parameter ';' } . -dep_map_decl_body = dep_binding_decl map_project_clause . -dep_map_partition = [ PARTITION partition_id ':' ] dep_map_decl_body . -dep_source_parameter = source_parameter_id { ',' source_parameter_id } ':' ( simple_types | type_reference ) . -domain_rule = [ label ':' ] logical_expression . -element = expression [ ':' repetition ] . -entity_constructor = entity_reference '(' [ expression { ',' expression } ] ')' . -entity_id = simple_id . -entity_instantiation_loop = FOR instantiation_loop_control ';' map_project_clause . -entity_reference = [ ( source_schema_ref | target_schema_ref | schema_ref ) '.' ] entity_ref . -enumeration_reference = [ type_reference '.' ] enumeration_ref . -escape_stmt = ESCAPE ';' . -expression = simple_expression [ rel_op_extended simple_expression ] . -expression_or_wild = expression | '_' . -extent_reference = source_entity_reference | view_reference . -factor = simple_factor [ '**' simple_factor ] . -foreach_expr = EACH variable_id IN expression [ where_clause ] RETURN expression . -forloop_expr = repeat_control RETURN expression . -formal_parameter = parameter_id { ',' parameter_id } ':' parameter_type . -forward_path_qualifier = '::' attribute_ref [ path_condition ] . -for_expr = FOR ( foreach_expr | forloop_expr ) . -from_clause = FROM source_parameter ';' { source_parameter ';' } . -function_call = ( built_in_function | function_ref ) [ actual_parameter_list ] . -function_decl = function_head [ algorithm_head ] stmt { stmt } END_FUNCTION ';' . -function_head = FUNCTION function_id [ '(' formal_parameter { ';' formal_parameter } ')' ] ':' parameter_type ';' . -function_id = simple_id . -generalized_types = aggregate_type | general_aggregation_types | generic_type . -general_aggregation_types = general_array_type | general_bag_type | general_list_type | general_set_type . -general_array_type = ARRAY [ bound_spec ] OF [ OPTIONAL ] [ UNIQUE ] parameter_type . -general_attribute_qualifier = '.' ( attribute_ref | view_attribute_ref ) . -general_bag_type = BAG [ bound_spec ] OF parameter_type . -general_list_type = LIST [ bound_spec ] OF [ UNIQUE ] parameter_type . -general_or_map_call = general_ref [ '@' map_call ] . -general_ref = parameter_ref | variable_ref . -general_schema_alias_id = schema_id | schema_map_id | schema_view_id . -general_schema_ref = schema_ref | schema_map_ref | schema_view_ref . -general_set_type = SET [ bound_spec ] OF parameter_type . -generic_type = GENERIC [ ':' type_label ] . -group_qualifier = '\' entity_ref . -identified_by_clause = IDENTIFIED_BY id_parameter ';' { id_parameter ';' } . -id_parameter = [ id_parameter_id ':' ] expression . -id_parameter_id = parameter_id . -if_expr = IF logical_expression THEN expression { ELSIF logical_expression expression } [ ELSE expression ] END_IF . -if_stmt = IF logical_expression THEN stmt { stmt } [ ELSE stmt { stmt } ] END_IF ';' . -increment = numeric_expression . -increment_control = variable_id ':=' bound_1 TO bound_2 [ BY increment ] . -index = numeric_expression . -index_1 = index . -index_2 = index . -index_qualifier = '[' index_1 [ ':' index_2 ] ']' . -instantiation_foreach_control = EACH variable_id IN source_attribute_reference INDEXING variable_id . -instantiation_loop_control = instantiation_foreach_control | repeat_control . -integer_type = INTEGER . -interval = '{' interval_low interval_op interval_item interval_op interval_high '}' . -interval_high = simple_expression . -interval_item = simple_expression . -interval_low = simple_expression . -interval_op = '<' | '<=' . -label = simple_id . -list_type = LIST [ bound_spec ] OF [ UNIQUE ] base_type . -literal = binary_literal | integer_literal | logical_literal | real_literal | string_literal . -local_decl = LOCAL local_variable { local_variable } END_LOCAL ';' . -local_variable = variable_id { ',' variable_id } ':' parameter_type [ ':=' expression ] ';' . -logical_expression = expression . -logical_literal = FALSE | TRUE | UNKNOWN . -logical_type = LOGICAL . -map_attribute_declaration = [ target_parameter_ref [ index_qualifier ] [ group_qualifier ] '.' ] attribute_ref [ index_qualifier ] ':=' expression ';' . -map_call = map_ref [ partition_qualification ] '(' expression_or_wild { ',' expression_or_wild } ')' . -map_decl = MAP map_id AS target_parameter ';' { target_parameter ';' } ( map_subtype_of_clause subtype_binding_header map_decl_body ) | ( binding_header map_decl_body { binding_header map_decl_body } ) END_MAP ';' . -map_decl_body = ( entity_instantiation_loop { entity_instantiation_loop } ) | map_project_clause | ( RETURN expression ';' ) . -map_id = simple_id . -map_local_assignment = variable_ref { ( '.' attribute_ref ) | group_qualifier | index_qualifier } ':=' expression ';' . -map_project_clause = SELECT map_select_item { map_select_item } . -map_ref = map_id . -map_reference = [ schema_map_ref '.' ] map_ref . -map_select_item = map_attribute_declaration | map_local_assignment . -map_subtype_of_clause = SUBTYPE OF '(' map_reference ')' ';' . -multiplication_like_op = '*' | '/' | DIV | MOD | AND | '||' . -named_types = entity_reference | type_reference | view_reference . -null_stmt = ';' . -number_type = NUMBER . -numeric_expression = simple_expression . -one_of = ONEOF '(' supertype_expression { ',' supertype_expression } ')' . -ordered_by_clause = ORDERED_BY expression { ',' expression } ';' . -parameter = expression . -parameter_id = simple_id . -parameter_type = generalized_types | named_types | simple_types . -partition_id = simple_id . -partition_qualification = '\' partition_ref . -path_condition = '{' extent_reference [ '|' logical_expression ] '}' . -path_qualifier = forward_path_qualifier | backward_path_qualifier . -population = entity_reference . -precision_spec = numeric_expression . -primary = literal | ( qualifiable_factor { qualifier } ) . -procedure_call_stmt = ( built_in_procedure | procedure_ref ) [ actual_parameter_list ] ';' . -procedure_decl = procedure_head [ algorithm_head ] { stmt } END_PROCEDURE ';' . -procedure_head = PROCEDURE procedure_id [ '(' [ VAR ] formal_parameter { ';' [ VAR ] formal_parameter } ')' ] ';' . -procedure_id = simple_id . -qualifiable_factor = attribute_ref | constant_factor | function_call | general_or_map_call | population | view_attribute_ref | view_call . -qualifier = general_attribute_qualifier | group_qualifier | index_qualifier | path_qualifier . -query_expression = QUERY '(' variable_id '<*' aggregate_source '|' logical_expression ')' . -real_type = REAL [ '(' precision_spec ')' ] . -reference_clause = REFERENCE FROM schema_ref_or_rename [ '(' resource_or_rename { ',' resource_or_rename } ')' ] [ AS ( SOURCE | TARGET ) ] ';' . -rel_op = '<' | '>' | '<=' | '>=' | '<>' | '=' | ':<>:' | ':=:' . -rel_op_extended = rel_op | IN | LIKE . -rename_id = constant_id | entity_id | function_id | procedure_id | type_id . -repeat_control = [ increment_control ] [ while_control ] [ until_control ] . -repeat_stmt = REPEAT repeat_control ';' stmt { stmt } END_REPEAT ';' . -repetition = numeric_expression . -resource_or_rename = resource_ref [ AS rename_id ] . -resource_ref = constant_ref | entity_ref | function_ref | procedure_ref | type_ref | view_ref | map_ref . -return_stmt = RETURN [ '(' expression ')' ] ';' . -rule_decl = rule_head [ algorithm_head ] { stmt } where_clause END_RULE ';' . -rule_head = RULE rule_id FOR '(' entity_ref { ',' entity_ref } ')' ';' . -rule_id = simple_id . -schema_id = simple_id . -schema_map_body_element = function_decl | procedure_decl | view_decl | map_decl | dependent_map_decl | rule_decl . -schema_map_body_element_list = schema_map_body_element { schema_map_body_element } . -schema_map_decl = SCHEMA_MAP schema_map_id ';' reference_clause { reference_clause } [ constant_decl ] schema_map_body_element_list END_SCHEMA_MAP ';' . -schema_map_id = simple_id . -schema_ref_or_rename = [ general_schema_alias_id ':' ] general_schema_ref . -schema_view_body_element = function_decl | procedure_decl | view_decl | rule_decl . -schema_view_body_element_list = schema_view_body_element { schema_view_body_element } . -schema_view_decl = SCHEMA_VIEW schema_view_id ';' { reference_clause } [ constant_decl ] schema_view_body_element_list END_SCHEMA_VIEW ';' . -schema_view_id = simple_id . -selector = expression . -set_type = SET [ bound_spec ] OF base_type . -simple_expression = term { add_like_op term } . -simple_factor = aggregate_initializer | entity_constructor | enumeration_reference | interval | query_expression | ( [ unary_op ] ( '(' expression ')' | primary ) ) | case_expr | for_expr | if_expr . -simple_types = binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_type . -skip_stmt = SKIP ';' . -source_attribute_reference = parameter_ref '.' ( attribute_ref | view_attribute_ref ) . -source_entity_reference = entity_reference . -source_parameter = source_parameter_id ':' extent_reference . -source_parameter_id = parameter_id . -stmt = assignment_stmt | case_stmt | compound_stmt | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt . -string_literal = simple_string_literal | encoded_string_literal . -string_type = STRING [ width_spec ] . -subsuper = [ supertype_constraint ] [ subtype_declaration ] . -subtype_binding_header = [ PARTITION partition_id ';' ] where_clause . -subtype_constraint = OF '(' supertype_expression ')' . -subtype_declaration = SUBTYPE OF '(' view_ref { ',' view_ref } ')' . -supertype_constraint = abstract_supertype_declaration | supertype_rule . -supertype_expression = supertype_factor { ANDOR supertype_factor } . -supertype_factor = supertype_term { AND supertype_term } . -supertype_rule = SUPERTYPE [ subtype_constraint ] . -supertype_term = view_ref | one_of | '(' supertype_expression ')' . -syntax_x = schema_map_decl | schema_view_decl . -target_entity_reference = entity_reference { '&' entity_reference } . -target_parameter = target_parameter_id { ',' target_parameter_id } ':' [ AGGREGATE [ bound_spec ] OF ] target_entity_reference . -target_parameter_id = parameter_id . -target_parameter_ref = target_parameter_id . -term = factor { multiplication_like_op factor } . -type_id = simple_id . -type_label = type_label_id | type_label_ref . -type_label_id = simple_id . -type_reference = [ schema_ref '.' ] type_ref . -unary_op = '+' | '-' | NOT . -until_control = UNTIL logical_expression . -variable_id = simple_id . -view_attribute_decl = view_attribute_id ':' [ OPTIONAL ] [ source_schema_ref '.' ] base_type ':=' expression ';' . -view_attribute_id = simple_id . -view_attr_decl_stmt_list = view_attribute_decl { view_attribute_decl } . -view_call = view_reference [ partition_qualification ] '(' [ expression_or_wild { ',' expression_or_wild } ] ')' . -view_decl = VIEW view_id [ ':' base_type ] subsuper ';' ( subtype_binding_header view_project_clause { subtype_binding_header view_project_clause } ) | ( binding_header view_project_clause { binding_header view_project_clause } ) END_VIEW ';' . -view_id = simple_id . -view_project_clause = ( SELECT view_attr_decl_stmt_list ) | ( RETURN expression ) . -view_reference = [ ( schema_map_ref | schema_view_ref ) '.' ] view_ref . -where_clause = WHERE domain_rule ';' { domain_rule ';' } . -while_control = WHILE logical_expression . -width = numeric_expression . -width_spec = '(' width ')' [ FIXED ] . diff --git a/bnf/iso-10303-14.bnf b/bnf/iso-10303-14.bnf deleted file mode 100644 index c2928f6..0000000 --- a/bnf/iso-10303-14.bnf +++ /dev/null @@ -1,236 +0,0 @@ -;; N178 2002-03-22 - - 1 DEPENDENT_MAP = 'dependent_map' . - 2 EACH = 'each' . - 3 ELSIF = 'elsif' . - 4 END_DEPENDENT_MAP = 'end_dependent_map' . - 5 END_MAP = 'end_map' . - 6 END_SCHEMA_MAP = 'end_schema_map' . - 7 END_SCHEMA_VIEW = 'end_schema_view' . - 8 END_VIEW = 'end_view' . - 9 EXTENT = 'extent' . - 10 IDENTIFIED_BY = 'identified_by' . - 11 INDEXING = 'indexing' . - 12 MAP = 'map' . - 13 ORDERED_BY = 'ordered_by' . - 14 PARTITION = 'partition' . - 15 SCHEMA_MAP = 'schema_map' . - 16 SCHEMA_VIEW = 'schema_view' . - 17 SOURCE = 'source' . - 18 TARGET = 'target' . - 19 VIEW = 'view' . - 20 digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . - 21 letter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' . - 22 simple_id = letter { letter | digit | '_' } . - 23 partition_ref = partition_id . - 24 schema_map_ref = schema_map_id . - 25 schema_view_ref = schema_view_id . - 26 source_schema_ref = schema_ref . - 27 target_schema_ref = schema_ref . - 28 view_attribute_ref = view_attribute_id . - 29 view_ref = view_id . - 30 abstract_supertype_declaration = ABSTRACT SUPERTYPE [ subtype_constraint ] . - 31 actual_parameter_list = '(' parameter { ',' parameter } ')' . - 32 add_like_op = '+' | '-' | OR | XOR . - 33 aggregate_initializer = '[' [ element { ',' element } ] ']' . - 34 aggregate_source = simple_expression . - 35 aggregate_type = AGGREGATE [ ':' type_label ] OF parameter_type . - 36 aggregation_types = array_type | bag_type | list_type | set_type . - 37 algorithm_head = { declaration } [ constant_decl ] [ local_decl ] . - 38 array_type = ARRAY bound_spec OF [ OPTIONAL ] [ UNIQUE ] base_type . - 39 assignment_stmt = general_ref { qualifier } ':=' expression ';' . - 40 backward_path_qualifier = '<-' [ attribute_ref ] path_condition . - 41 bag_type = BAG [ bound_spec ] OF base_type . - 42 base_type = aggregation_types | simple_types | named_types . - 43 binary_type = BINARY [ width_spec ] . - 44 binding_header = [ PARTITION partition_id ';' ] [ from_clause ] [ local_decl ] [ where_clause ] [ identified_by_clause ] [ ordered_by_clause ] . - 45 boolean_type = BOOLEAN . - 46 bound_1 = numeric_expression . - 47 bound_2 = numeric_expression . - 48 bound_spec = '[' bound_1 ':' bound_2 ']' . - 49 built_in_constant = CONST_E | PI | SELF | '?' . - 50 built_in_function = ABS | ACOS | ASIN | ATAN | BLENGTH | COS | EXISTS | EXTENT | EXP | FORMAT | HIBOUND | HIINDEX | LENGTH | LOBOUND | LOINDEX | LOG | LOG2 | LOG10 | NVL | ODD | ROLESOF | SIN | SIZEOF | SQRT | TAN | TYPEOF | USEDIN | VALUE | VALUE_IN | VALUE_UNIQUE . - 51 built_in_procedure = INSERT | REMOVE . - 52 case_action = case_label { ',' case_label } ':' stmt . - 53 case_expr = CASE selector OF { case_expr_action } [ OTHERWISE ':' expression ] END_CASE . - 54 case_expr_action = case_label { ',' case_label } ':' expression ';' . - 55 case_label = expression . - 56 case_stmt = CASE selector OF { case_action } [ OTHERWISE ':' stmt ] END_CASE ';' . - 57 compound_stmt = BEGIN stmt { stmt } END ';' . - 58 constant_body = constant_id ':' base_type ':=' expression ';' . - 59 constant_decl = CONSTANT constant_body { constant_body } END_CONSTANT ';' . - 60 constant_factor = built_in_constant | constant_ref . - 61 constant_id = simple_id . - 62 declaration = function_decl | procedure_decl . - 63 dependent_map_decl = DEPENDENT_MAP map_id AS target_parameter ';' { target_parameter ';' } [ map_subtype_of_clause ] dep_map_partition { dep_map_partition } END_DEPENDENT_MAP ';' . - 64 dep_binding_decl = dep_from_clause [ local_decl ] [ where_clause ] [ ordered_by_clause ] . - 65 dep_from_clause = FROM dep_source_parameter ';' { dep_source_parameter ';' } . - 66 dep_map_decl_body = dep_binding_decl map_project_clause . - 67 dep_map_partition = [ PARTITION partition_id ':' ] dep_map_decl_body . - 68 dep_source_parameter = source_parameter_id { ',' source_parameter_id } ':' ( simple_types | type_reference ) . - 69 domain_rule = [ label ':' ] logical_expression . - 70 element = expression [ ':' repetition ] . - 71 entity_constructor = entity_reference '(' [ expression { ',' expression } ] ')' . - 72 entity_id = simple_id . - 73 entity_instantiation_loop = FOR instantiation_loop_control ';' map_project_clause . - 74 entity_reference = [ ( source_schema_ref | target_schema_ref | schema_ref ) '.' ] entity_ref . - 75 enumeration_reference = [ type_reference '.' ] enumeration_ref . - 76 escape_stmt = ESCAPE ';' . - 77 expression = simple_expression [ rel_op_extended simple_expression ] . - 78 expression_or_wild = expression | '_' . - 79 extent_reference = source_entity_reference | view_reference . - 80 factor = simple_factor [ '**' simple_factor ] . - 81 foreach_expr = EACH variable_id IN expression [ where_clause ] RETURN expression . - 82 forloop_expr = repeat_control RETURN expression . - 83 formal_parameter = parameter_id { ',' parameter_id } ':' parameter_type . - 84 forward_path_qualifier = '::' attribute_ref [ path_condition ] . - 85 for_expr = FOR ( foreach_expr | forloop_expr ) . - 86 from_clause = FROM source_parameter ';' { source_parameter ';' } . - 87 function_call = ( built_in_function | function_ref ) [ actual_parameter_list ] . - 88 function_decl = function_head [ algorithm_head ] stmt { stmt } END_FUNCTION ';' . - 89 function_head = FUNCTION function_id [ '(' formal_parameter { ';' formal_parameter } ')' ] ':' parameter_type ';' . - 90 function_id = simple_id . - 91 generalized_types = aggregate_type | general_aggregation_types | generic_type . - 92 general_aggregation_types = general_array_type | general_bag_type | general_list_type | general_set_type . - 93 general_array_type = ARRAY [ bound_spec ] OF [ OPTIONAL ] [ UNIQUE ] parameter_type . - 94 general_attribute_qualifier = '.' ( attribute_ref | view_attribute_ref ) . - 95 general_bag_type = BAG [ bound_spec ] OF parameter_type . - 96 general_list_type = LIST [ bound_spec ] OF [ UNIQUE ] parameter_type . - 97 general_or_map_call = general_ref [ '@' map_call ] . - 98 general_ref = parameter_ref | variable_ref . - 99 general_schema_alias_id = schema_id | schema_map_id | schema_view_id . -100 general_schema_ref = schema_ref | schema_map_ref | schema_view_ref . -101 general_set_type = SET [ bound_spec ] OF parameter_type . -102 generic_type = GENERIC [ ':' type_label ] . -103 group_qualifier = '\' entity_ref . -104 identified_by_clause = IDENTIFIED_BY id_parameter ';' { id_parameter ';' } . -105 id_parameter = [ id_parameter_id ':' ] expression . -106 id_parameter_id = parameter_id . -107 if_expr = IF logical_expression THEN expression { ELSIF logical_expression expression } [ ELSE expression ] END_IF . -108 if_stmt = IF logical_expression THEN stmt { stmt } [ ELSE stmt { stmt } ] END_IF ';' . -109 increment = numeric_expression . -110 increment_control = variable_id ':=' bound_1 TO bound_2 [ BY increment ] . -111 index = numeric_expression . -112 index_1 = index . -113 index_2 = index . -114 index_qualifier = '[' index_1 [ ':' index_2 ] ']' . -115 instantiation_foreach_control = EACH variable_id IN source_attribute_reference INDEXING variable_id . -116 instantiation_loop_control = instantiation_foreach_control | repeat_control . -117 integer_type = INTEGER . -118 interval = '{' interval_low interval_op interval_item interval_op interval_high '}' . -119 interval_high = simple_expression . -120 interval_item = simple_expression . -121 interval_low = simple_expression . -122 interval_op = '<' | '<=' . -123 label = simple_id . -124 list_type = LIST [ bound_spec ] OF [ UNIQUE ] base_type . -125 literal = binary_literal | integer_literal | logical_literal | real_literal | string_literal . -126 local_decl = LOCAL local_variable { local_variable } END_LOCAL ';' . -127 local_variable = variable_id { ',' variable_id } ':' parameter_type [ ':=' expression ] ';' . -128 logical_expression = expression . -129 logical_literal = FALSE | TRUE | UNKNOWN . -130 logical_type = LOGICAL . -131 map_attribute_declaration = ( [ target_parameter_ref [ index_qualifier ] [ group_qualifier ] '.' ] attribute_ref [ index_qualifier ]) | ( variable_id [ index_qualifier ] [ [ group_qualifier ] '.' attribute_ref [ index_qualifier ] ] ) ':=' expression ';' . -132 map_call = map_ref [ partition_qualification ] '(' expression_or_wild { ',' expression_or_wild } ')' . -133 map_decl = MAP map_id AS target_parameter ';' { target_parameter ';' } ( map_subtype_of_clause subtype_binding_header map_decl_body ) | ( binding_header map_decl_body { binding_header map_decl_body } ) END_MAP ';' . -134 map_decl_body = ( entity_instantiation_loop { entity_instantiation_loop } ) | map_project_clause | ( RETURN expression ';' ) . -135 map_id = simple_id . -136 map_project_clause = SELECT map_attribute_declaration { map_attribute_declaration } . -137 map_ref = map_id . -138 map_reference = [ schema_map_ref '.' ] map_ref . -139 map_subtype_of_clause = SUBTYPE OF '(' map_reference ')' ';' . -140 multiplication_like_op = '*' | '/' | DIV | MOD | AND | '||' . -141 named_types = entity_reference | type_reference | view_reference . -142 null_stmt = ';' . -143 number_type = NUMBER . -144 numeric_expression = simple_expression . -145 one_of = ONEOF '(' supertype_expression { ',' supertype_expression } ')' . -146 ordered_by_clause = ORDERED_BY expression { ',' expression } ';' . -147 parameter = expression . -148 parameter_id = simple_id . -149 parameter_type = generalized_types | named_types | simple_types . -150 partition_id = simple_id . -151 partition_qualification = '\' partition_ref . -152 path_condition = '{' extent_reference [ '|' logical_expression ] '}' . -153 path_qualifier = forward_path_qualifier | backward_path_qualifier . -154 population = entity_reference . -155 precision_spec = numeric_expression . -156 primary = literal | ( qualifiable_factor { qualifier } ) . -157 procedure_call_stmt = ( built_in_procedure | procedure_ref ) [ actual_parameter_list ] ';' . -158 procedure_decl = procedure_head [ algorithm_head ] { stmt } END_PROCEDURE ';' . -159 procedure_head = PROCEDURE procedure_id [ '(' [ VAR ] formal_parameter { ';' [ VAR ] formal_parameter } ')' ] ';' . -160 procedure_id = simple_id . -161 qualifiable_factor = attribute_ref | constant_factor | function_call | general_or_map_call | population | view_attribute_ref | view_call . -162 qualifier = general_attribute_qualifier | group_qualifier | index_qualifier | path_qualifier . -163 query_expression = QUERY '(' variable_id '<*' aggregate_source '|' logical_expression ')' . -164 real_type = REAL [ '(' precision_spec ')' ] . -165 reference_clause = REFERENCE FROM schema_ref_or_rename [ '(' resource_or_rename { ',' resource_or_rename } ')' ] [ AS ( SOURCE | TARGET ) ] ';' . -166 rel_op = '<' | '>' | '<=' | '>=' | '<>' | '=' | ':<>:' | ':=:' . -167 rel_op_extended = rel_op | IN | LIKE . -168 rename_id = constant_id | entity_id | function_id | procedure_id | type_id . -169 repeat_control = [ increment_control ] [ while_control ] [ until_control ] . -170 repeat_stmt = REPEAT repeat_control ';' stmt { stmt } END_REPEAT ';' . -171 repetition = numeric_expression . -172 resource_or_rename = resource_ref [ AS rename_id ] . -173 resource_ref = constant_ref | entity_ref | function_ref | procedure_ref | type_ref | view_ref | map_ref . -174 return_stmt = RETURN [ '(' expression ')' ] ';' . -175 rule_decl = rule_head [ algorithm_head ] { stmt } where_clause END_RULE ';' . -176 rule_head = RULE rule_id FOR '(' entity_ref { ',' entity_ref } ')' ';' . -177 rule_id = simple_id . -178 schema_id = simple_id . -179 schema_map_body_element = function_decl | procedure_decl | view_decl | map_decl | dependent_map_decl | rule_decl . -180 schema_map_body_element_list = schema_map_body_element { schema_map_body_element } . -181 schema_map_decl = SCHEMA_MAP schema_map_id ';' reference_clause { reference_clause } [ constant_decl ] schema_map_body_element_list END_SCHEMA_MAP ';' . -182 schema_map_id = simple_id . -183 schema_ref_or_rename = [ general_schema_alias_id ':' ] general_schema_ref . -184 schema_view_body_element = function_decl | procedure_decl | view_decl | rule_decl . -185 schema_view_body_element_list = schema_view_body_element { schema_view_body_element } . -186 schema_view_decl = SCHEMA_VIEW schema_view_id ';' { reference_clause } [ constant_decl ] schema_view_body_element_list END_SCHEMA_VIEW ';' . -187 schema_view_id = simple_id . -188 selector = expression . -189 set_type = SET [ bound_spec ] OF base_type . -190 simple_expression = term { add_like_op term } . -191 simple_factor = aggregate_initializer | entity_constructor | enumeration_reference | interval | query_expression | ( [ unary_op ] ( '(' expression ')' | primary ) ) | case_expr | for_expr | if_expr . -192 simple_types = binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_type . -193 skip_stmt = SKIP ';' . -194 source_attribute_reference = parameter_ref '.' ( attribute_ref | view_attribute_ref ) . -195 source_entity_reference = entity_reference . -196 source_parameter = source_parameter_id ':' extent_reference . -197 source_parameter_id = parameter_id . -198 stmt = assignment_stmt | case_stmt | compound_stmt | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt . -199 string_literal = simple_string_literal | encoded_string_literal . -200 string_type = STRING [ width_spec ] . -201 subsuper = [ supertype_constraint ] [ subtype_declaration ] . -202 subtype_binding_header = [ PARTITION partition_id ';' ] where_clause . -203 subtype_constraint = OF '(' supertype_expression ')' . -204 subtype_declaration = SUBTYPE OF '(' view_ref { ',' view_ref } ')' . -205 supertype_constraint = abstract_supertype_declaration | supertype_rule . -206 supertype_expression = supertype_factor { ANDOR supertype_factor } . -207 supertype_factor = supertype_term { AND supertype_term } . -208 supertype_rule = SUPERTYPE [ subtype_constraint ] . -209 supertype_term = view_ref | one_of | '(' supertype_expression ')' . -210 syntax_x = schema_map_decl | schema_view_decl . -211 target_entity_reference = entity_reference { '&' entity_reference } . -212 target_parameter = target_parameter_id { ',' target_parameter_id } ':' [ AGGREGATE [ bound_spec ] OF ] target_entity_reference . -213 target_parameter_id = parameter_id . -214 target_parameter_ref = target_parameter_id . -215 term = factor { multiplication_like_op factor } . -216 type_id = simple_id . -217 type_label = type_label_id | type_label_ref . -218 type_label_id = simple_id . -219 type_reference = [ schema_ref '.' ] type_ref . -220 unary_op = '+' | '-' | NOT . -221 until_control = UNTIL logical_expression . -222 variable_id = simple_id . -223 view_attribute_decl = view_attribute_id ':' [ OPTIONAL ] [ source_schema_ref '.' ] base_type ':=' expression ';' . -224 view_attribute_id = simple_id . -225 view_attr_decl_stmt_list = view_attribute_decl { view_attribute_decl } . -226 view_call = view_reference [ partition_qualification ] '(' [ expression_or_wild { ',' expression_or_wild } ] ')' . -227 view_decl = VIEW view_id [ ':' base_type ] subsuper ';' ( subtype_binding_header view_project_clause { subtype_binding_header view_project_clause } ) | ( binding_header view_project_clause { binding_header view_project_clause } ) END_VIEW ';' . -228 view_id = simple_id . -229 view_project_clause = ( SELECT view_attr_decl_stmt_list ) | ( RETURN expression ) . -230 view_reference = [ ( schema_map_ref | schema_view_ref ) '.' ] view_ref . -231 where_clause = WHERE domain_rule ';' { domain_rule ';' } . -232 while_control = WHILE logical_expression . -233 width = numeric_expression . -234 width_spec = '(' width ')' [ FIXED ] . diff --git a/bnf/iso-10303-21-1994.bnf b/bnf/iso-10303-21-1994.bnf deleted file mode 100644 index 011bbd0..0000000 --- a/bnf/iso-10303-21-1994.bnf +++ /dev/null @@ -1,52 +0,0 @@ -; ISO 10303-21:1994 - -alphabet = reverse_solidus 'P' upper reverse_solidus . -apostrophe = '''' . -arbitrary = reverse_solidus 'X' reverse_solidus hex_one . -binary = '"' ( '0' | '1' | '2' | '3' ) { hex } '"' . -character = space | digit | lower | upper | special | reverse_solidus | apostrophe . -complex_entity_instance = entity_instance_name '=' [ scope ] subsuper_record ';' . -control_directive = page | alphabet | extended2 | extended4 | arbitrary . -data_section = 'DATA' ';' entity_instance_list 'ENDSEC' ';' . -digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . -end_extended = reverse_solidus 'X0' reverse_solidus . -entity_instance = simple_entity_instance | complex_entity_instance . -entity_instance_list = entity_instance { entity_instance } . -entity_instance_name = '#' digit { digit } . -enumeration = '.' upper { upper | digit } '.' . -exchange_file = 'ISO-10303-21' ';' header_section data_section 'END-ISO-10303-21' ';' . -export_list = '/' entity_instance_name { ',' entity_instance_name } '/' . -extended2 = reverse_solidus 'X2' reverse_solidus hex_two { hex_two } end_extended . -extended4 = reverse_solidus 'X4' reverse_solidus hex_four { hex_four } end_extended . -header_entity = keyword '(' [ parameter_list ] ')' ';' . -header_entity_list = header_entity { header_entity } . -header_section = 'HEADER' ';' header_entity header_entity header_entity [ header_entity_list ] 'ENDSEC' ';' . -hex = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' . -hex_four = hex_two hex_two . -hex_one = hex hex . -hex_two = hex_one hex_one . -integer = [ sign ] digit { digit } . -keyword = user_defined_keyword | standard_keyword . -list = '(' [ parameter { ',' parameter } ] ')' . -lower = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' . -non_q_char = special | digit | space | lower | upper . -omitted_parameter = '*' . -page = reverse_solidus 'S' reverse_solidus character . -parameter = typed_parameter | untyped_parameter | omitted_parameter . -parameter_list = parameter { ',' parameter } . -real = [ sign ] digit { digit } '.' { digit } [ 'E' [ sign ] digit { digit } ] . -reverse_solidus = '\' . -scope = '&' 'SCOPE' entity_instance_list 'ENDSCOPE' [ export_list ] . -sign = '+' | '-' . -simple_entity_instance = entity_instance_name '=' [ scope ] simple_record ';' . -simple_record = keyword '(' [ parameter_list ] ')' . -simple_record_list = simple_record { simple_record } . -space = ' ' . -special = '!' | '"' | '*' | '$' | '%' | '&' | '.' | '#' | '+' | ',' | '-' | '(' | ')' | '?' | '/' | ':' | ';' | '<' | '=' | '>' | '@' | '[' | ']' | '{' | '|' | '}' | '^' | '`' . -standard_keyword = upper { upper | digit } . -string = '''' { non_q_char | apostrophe apostrophe | reverse_solidus reverse_solidus | control_directive } '''' . -subsuper_record = '(' simple_record_list ')' . -typed_parameter = keyword '(' parameter ')' . -untyped_parameter = '$' | integer | real | string | entity_instance_name | enumeration | binary | list . -upper = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' . -user_defined_keyword = '!' upper { upper | digit } . diff --git a/bnf/iso-10303-21-2002.bnf b/bnf/iso-10303-21-2002.bnf deleted file mode 100644 index 3adb2c1..0000000 --- a/bnf/iso-10303-21-2002.bnf +++ /dev/null @@ -1,50 +0,0 @@ -; ISO 10303-21:2002 - -alphabet = reverse_solidus 'P' upper reverse_solidus . -apostrophe = '''' . -arbitrary = reverse_solidus 'X' reverse_solidus hex_one . -binary = '"' ( '0' | '1' | '2' | '3' ) { hex } '"' . -character = space | digit | lower | upper | special | reverse_solidus | apostrophe . -complex_entity_instance = entity_instance_name '=' subsuper_record ';' . -control_directive = page | alphabet | extended2 | extended4 | arbitrary . -data_section = 'DATA' [ '(' parameter_list ')' ] ';' entity_instance_list 'ENDSEC;' . -digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . -end_extended = reverse_solidus 'X0' reverse_solidus . -entity_instance = simple_entity_instance | complex_entity_instance . -entity_instance_list = { entity_instance } . -entity_instance_name = '#' digit { digit } . -enumeration = '.' upper { upper | digit } '.' . -exchange_file = 'ISO-10303-21;' header_section data_section { data_section } 'END-ISO-10303-21;' . -extended2 = reverse_solidus 'X2' reverse_solidus hex_two { hex_two } end_extended . -extended4 = reverse_solidus 'X4' reverse_solidus hex_four { hex_four } end_extended . -header_entity = keyword '(' [ parameter_list ] ')' ';' . -header_entity_list = header_entity { header_entity } . -header_section = 'HEADER;' header_entity header_entity header_entity [header_entity_list] 'ENDSEC;' . -hex = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' . -hex_four = hex_two hex_two . -hex_one = hex hex . -hex_two = hex_one hex_one . -integer = [ sign ] digit { digit } . -keyword = user_defined_keyword | standard_keyword . -list = '(' [ parameter { ',' parameter } ] ')' . -lower = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' . -non_q_char = special | digit | space | lower | upper . -omitted_parameter = '*' . -page = reverse_solidus 'S' reverse_solidus character . -parameter = typed_parameter | untyped_parameter | omitted_parameter . -parameter_list = parameter { ',' parameter } . -real = [ sign ] digit { digit } '.' { digit } [ 'E' [ sign ] digit { digit } ] . -reverse_solidus = '\' . -sign = '+' | '-' . -simple_entity_instance = entity_instance_name '=' simple_record ';' . -simple_record = keyword '(' [ parameter_list ] ')' . -simple_record_list = simple_record { simple_record } . -space = ' ' . -special = '!' | '"' | '*' | '$' | '%' | '&' | '.' | '#' | '+' | ',' | '-' | '(' | ')' | '?' | '/' | ':' | ';' | '<' | '=' | '>' | '@' | '[' | ']' | '{' | '|' | '}' | '^' | '`' | '~' . -standard_keyword = upper { upper | digit } . -string = '''' { non_q_char | apostrophe apostrophe | reverse_solidus reverse_solidus | control_directive } '''' . -subsuper_record = '(' simple_record_list ')' . -typed_parameter = keyword '(' parameter ')' . -untyped_parameter = '$' | integer | real | string | entity_instance_name | enumeration | binary | list . -upper = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' | '_' . -user_defined_keyword = '!' upper { upper | digit } . diff --git a/bnf/iso-10303-patch-schema.bnf b/bnf/iso-10303-patch-schema.bnf deleted file mode 100644 index fc5f193..0000000 --- a/bnf/iso-10303-patch-schema.bnf +++ /dev/null @@ -1,19 +0,0 @@ -;; iso-10303 patch_schema - -;; These are in addition to the ISO 10303-11 BNF productions. - -DELETE = 'delete' . -END_PATCH_SCHEMA = 'end_patch_schema' . -PATCH_SCHEMA = 'patch_schema' . -RENAME = 'rename' . -TARGET = 'target' . - -decl_head = CONSTANT constant_id | ENTITY entity_id | FUNCTION function_id | PROCEDURE procedure_id - | RULE rule_id | SUBTYPE_CONSTRAINT subtype_constraint_id | TYPE type_id . -patch_cmd_delete = DELETE decl_head ';' . -patch_cmd_rename = RENAME decl_head AS simple_id ';' . -patch_command = patch_cmd_delete | patch_cmd_rename . -patch_constant_decl = CONSTANT constant_id ':' instantiable_type ':=' expression ';' -patch_schema_body = { patch_command | patch_constant_decl | declaration | rule_decl } . -patch_schema_decl = PATCH_SCHEMA schema_id TARGET schema_id ';' patch_schema_body END_PATCH_SCHEMA ';' . -syntax = patch_schema_decl | schema_decl . diff --git a/content/bnf/iso-10303-11-2004-raw.bnf b/content/bnf/iso-10303-11-2004-raw.bnf deleted file mode 100644 index 39f8720..0000000 --- a/content/bnf/iso-10303-11-2004-raw.bnf +++ /dev/null @@ -1,344 +0,0 @@ -;; iso-10303-11:2004 (no numbers) - -ABS = 'abs' . -ABSTRACT = 'abstract' . -ACOS = 'acos' . -AGGREGATE = 'aggregate' . -ALIAS = 'alias' . -AND = 'and' . -ANDOR = 'andor' . -ARRAY = 'array' . -AS = 'as' . -ASIN = 'asin' . -ATAN = 'atan' . -BAG = 'bag' . -BASED_ON = 'based_on' . -BEGIN = 'begin' . -BINARY = 'binary' . -BLENGTH = 'blength' . -BOOLEAN = 'boolean' . -BY = 'by' . -CASE = 'case' . -CONSTANT = 'constant' . -CONST_E = 'const_e' . -COS = 'cos' . -DERIVE = 'derive' . -DIV = 'div' . -ELSE = 'else' . -END = 'end' . -END_ALIAS = 'end_alias' . -END_CASE = 'end_case' . -END_CONSTANT = 'end_constant' . -END_ENTITY = 'end_entity' . -END_FUNCTION = 'end_function' . -END_IF = 'end_if' . -END_LOCAL = 'end_local' . -END_PROCEDURE = 'end_procedure' . -END_REPEAT = 'end_repeat' . -END_RULE = 'end_rule' . -END_SCHEMA = 'end_schema' . -END_SUBTYPE_CONSTRAINT = 'end_subtype_constraint' . -END_TYPE = 'end_type' . -ENTITY = 'entity' . -ENUMERATION = 'enumeration' . -ESCAPE = 'escape' . -EXISTS = 'exists' . -EXTENSIBLE = 'extensible' . -EXP = 'exp' . -FALSE = 'false' . -FIXED = 'fixed' . -FOR = 'for' . -FORMAT = 'format' . -FROM = 'from' . -FUNCTION = 'function' . -GENERIC = 'generic' . -GENERIC_ENTITY = 'generic_entity' . -HIBOUND = 'hibound' . -HIINDEX = 'hiindex' . -IF = 'if' . -IN = 'in' . -INSERT = 'insert' . -INTEGER = 'integer' . -INVERSE = 'inverse' . -LENGTH = 'length' . -LIKE = 'like' . -LIST = 'list' . -LOBOUND = 'lobound' . -LOCAL = 'local' . -LOG = 'log' . -LOG10 = 'log10' . -LOG2 = 'log2' . -LOGICAL = 'logical' . -LOINDEX = 'loindex' . -MOD = 'mod' . -NOT = 'not' . -NUMBER = 'number' . -NVL = 'nvl' . -ODD = 'odd' . -OF = 'of' . -ONEOF = 'oneof' . -OPTIONAL = 'optional' . -OR = 'or' . -OTHERWISE = 'otherwise' . -PI = 'pi' . -PROCEDURE = 'procedure' . -QUERY = 'query' . -REAL = 'real' . -REFERENCE = 'reference' . -REMOVE = 'remove' . -RENAMED = 'renamed' . -REPEAT = 'repeat' . -RETURN = 'return' . -ROLESOF = 'rolesof' . -RULE = 'rule' . -SCHEMA = 'schema' . -SELECT = 'select' . -SELF = 'self' . -SET = 'set' . -SIN = 'sin' . -SIZEOF = 'sizeof' . -SKIP = 'skip' . -SQRT = 'sqrt' . -STRING = 'string' . -SUBTYPE = 'subtype' . -SUBTYPE_CONSTRAINT = 'subtype_constraint' . -SUPERTYPE = 'supertype' . -TAN = 'tan' . -THEN = 'then' . -TO = 'to' . -TOTAL_OVER = 'total_over' . -TRUE = 'true' . -TYPE = 'type' . -TYPEOF = 'typeof' . -UNIQUE = 'unique' . -UNKNOWN = 'unknown' . -UNTIL = 'until' . -USE = 'use' . -USEDIN = 'usedin' . -VALUE = 'value' . -VALUE_IN = 'value_in' . -VALUE_UNIQUE = 'value_unique' . -VAR = 'var' . -WHERE = 'where' . -WHILE = 'while' . -WITH = 'with' . -XOR = 'xor' . -bit = '0' | '1' . -digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . -digits = digit { digit } . -encoded_character = octet octet octet octet . -hex_digit = digit | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' . -letter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' . -lparen_then_not_lparen_star = '(' { '(' } not_lparen_star { not_lparen_star } . -not_lparen_star = not_paren_star | ')' . -not_paren_star = letter | digit | not_paren_star_special . -not_paren_star_quote_special = '!' | '"' | '#' | '$' | '%' | '&' | '+' | ',' | '-' | '.' | '/' | ':' | ';' | '<' | '=' | '>' | '?' | '@' | '[' | '\' | ']' | '^' | '_' | '`' | '{' | '|' | '}' | '~' . -not_paren_star_special = not_paren_star_quote_special | '''' . -not_quote = not_paren_star_quote_special | letter | digit | '(' | ')' | '*' . -not_rparen_star = not_paren_star | '(' . -octet = hex_digit hex_digit . -special = not_paren_star_quote_special | '(' | ')' | '*' | '''' . -not_rparen_star_then_rparen = not_rparen_star { not_rparen_star } ')' { ')' } . -binary_literal = '%' bit { bit } . -encoded_string_literal = '"' encoded_character { encoded_character } '"' . -integer_literal = digits . -real_literal = integer_literal | ( digits '.' [ digits ] [ 'e' [ sign ] digits ] ) . -simple_id = letter { letter | digit | '_' } . -simple_string_literal = \q { ( \q \q ) | not_quote | \s | \x8 | \x9 | \xA | \xB | \xC | \xD } \q . -embedded_remark = '(*' [ remark_tag ] { ( not_paren_star { not_paren_star } ) | lparen_then_not_lparen_star | ( '*' { '*' } ) | not_rparen_star_then_rparen | embedded_remark } '*)' . -remark = embedded_remark | tail_remark . -remark_tag = '"' remark_ref { '.' remark_ref } '"' . -remark_ref = attribute_ref | constant_ref | entity_ref | enumeration_ref | function_ref | parameter_ref | procedure_ref | rule_label_ref | rule_ref | schema_ref | subtype_constraint_ref | type_label_ref | type_ref | variable_ref . -tail_remark = '--' [ remark_tag ] { \a | \s | \x8 | \x9 | \xA | \xB | \xC | \xD } \n . -attribute_ref = attribute_id . -constant_ref = constant_id . -entity_ref = entity_id . -enumeration_ref = enumeration_id . -function_ref = function_id . -parameter_ref = parameter_id . -procedure_ref = procedure_id . -rule_label_ref = rule_label_id . -rule_ref = rule_id . -schema_ref = schema_id . -subtype_constraint_ref = subtype_constraint_id . -type_label_ref = type_label_id . -type_ref = type_id . -variable_ref = variable_id . -abstract_entity_declaration = ABSTRACT . -abstract_supertype = ABSTRACT SUPERTYPE ';' . -abstract_supertype_declaration = ABSTRACT SUPERTYPE [ subtype_constraint ] . -actual_parameter_list = '(' parameter { ',' parameter } ')' . -add_like_op = '+' | '-' | OR | XOR . -aggregate_initializer = '[' [ element { ',' element } ] ']' . -aggregate_source = simple_expression . -aggregate_type = AGGREGATE [ ':' type_label ] OF parameter_type . -aggregation_types = array_type | bag_type | list_type | set_type . -algorithm_head = { declaration } [ constant_decl ] [ local_decl ] . -alias_stmt = ALIAS variable_id FOR general_ref { qualifier } ';' stmt { stmt } END_ALIAS ';' . -array_type = ARRAY bound_spec OF [ OPTIONAL ] [ UNIQUE ] instantiable_type . -assignment_stmt = general_ref { qualifier } ':=' expression ';' . -attribute_decl = attribute_id | redeclared_attribute . -attribute_id = simple_id . -attribute_qualifier = '.' attribute_ref . -bag_type = BAG [ bound_spec ] OF instantiable_type . -binary_type = BINARY [ width_spec ] . -boolean_type = BOOLEAN . -bound_1 = numeric_expression . -bound_2 = numeric_expression . -bound_spec = '[' bound_1 ':' bound_2 ']' . -built_in_constant = CONST_E | PI | SELF | '?' . -built_in_function = ABS | ACOS | ASIN | ATAN | BLENGTH | COS | EXISTS | EXP | FORMAT | HIBOUND | HIINDEX | LENGTH | LOBOUND | LOINDEX | LOG | LOG2 | LOG10 | NVL | ODD | ROLESOF | SIN | SIZEOF | SQRT | TAN | TYPEOF | USEDIN | VALUE | VALUE_IN | VALUE_UNIQUE . -built_in_procedure = INSERT | REMOVE . -case_action = case_label { ',' case_label } ':' stmt . -case_label = expression . -case_stmt = CASE selector OF { case_action } [ OTHERWISE ':' stmt ] END_CASE ';' . -compound_stmt = BEGIN stmt { stmt } END ';' . -concrete_types = aggregation_types | simple_types | type_ref . -constant_body = constant_id ':' instantiable_type ':=' expression ';' . -constant_decl = CONSTANT constant_body { constant_body } END_CONSTANT ';' . -constant_factor = built_in_constant | constant_ref . -constant_id = simple_id . -constructed_types = enumeration_type | select_type . -declaration = entity_decl | function_decl | procedure_decl | subtype_constraint_decl | type_decl . -derived_attr = attribute_decl ':' parameter_type ':=' expression ';' . -derive_clause = DERIVE derived_attr { derived_attr } . -domain_rule = [ rule_label_id ':' ] expression . -element = expression [ ':' repetition ] . -entity_body = { explicit_attr } [ derive_clause ] [ inverse_clause ] [ unique_clause ] [ where_clause ] . -entity_constructor = entity_ref '(' [ expression { ',' expression } ] ')' . -entity_decl = entity_head entity_body END_ENTITY ';' . -entity_head = ENTITY entity_id subsuper ';' . -entity_id = simple_id . -enumeration_extension = BASED_ON type_ref [ WITH enumeration_items ] . -enumeration_id = simple_id . -enumeration_items = '(' enumeration_id { ',' enumeration_id } ')' . -enumeration_reference = [ type_ref '.' ] enumeration_ref . -enumeration_type = [ EXTENSIBLE ] ENUMERATION [ ( OF enumeration_items ) | enumeration_extension ] . -escape_stmt = ESCAPE ';' . -explicit_attr = attribute_decl { ',' attribute_decl } ':' [ OPTIONAL ] parameter_type ';' . -expression = simple_expression [ rel_op_extended simple_expression ] . -factor = simple_factor [ '**' simple_factor ] . -formal_parameter = parameter_id { ',' parameter_id } ':' parameter_type . -function_call = ( built_in_function | function_ref ) [ actual_parameter_list ] . -function_decl = function_head algorithm_head stmt { stmt } END_FUNCTION ';' . -function_head = FUNCTION function_id [ '(' formal_parameter { ';' formal_parameter } ')' ] ':' parameter_type ';' . -function_id = simple_id . -generalized_types = aggregate_type | general_aggregation_types | generic_entity_type | generic_type . -general_aggregation_types = general_array_type | general_bag_type | general_list_type | general_set_type . -general_array_type = ARRAY [ bound_spec ] OF [ OPTIONAL ] [ UNIQUE ] parameter_type . -general_bag_type = BAG [ bound_spec ] OF parameter_type . -general_list_type = LIST [ bound_spec ] OF [ UNIQUE ] parameter_type . -general_ref = parameter_ref | variable_ref . -general_set_type = SET [ bound_spec ] OF parameter_type . -generic_entity_type = GENERIC_ENTITY [ ':' type_label ] . -generic_type = GENERIC [ ':' type_label ] . -group_qualifier = '\' entity_ref . -if_stmt = IF logical_expression THEN stmt { stmt } [ ELSE stmt { stmt } ] END_IF ';' . -increment = numeric_expression . -increment_control = variable_id ':=' bound_1 TO bound_2 [ BY increment ] . -index = numeric_expression . -index_1 = index . -index_2 = index . -index_qualifier = '[' index_1 [ ':' index_2 ] ']' . -instantiable_type = concrete_types | entity_ref . -integer_type = INTEGER . -interface_specification = reference_clause | use_clause . -interval = '{' interval_low interval_op interval_item interval_op interval_high '}' . -interval_high = simple_expression . -interval_item = simple_expression . -interval_low = simple_expression . -interval_op = '<' | '<=' . -inverse_attr = attribute_decl ':' [ ( SET | BAG ) [ bound_spec ] OF ] entity_ref FOR [ entity_ref '.' ] attribute_ref ';' . -inverse_clause = INVERSE inverse_attr { inverse_attr } . -list_type = LIST [ bound_spec ] OF [ UNIQUE ] instantiable_type . -literal = binary_literal | logical_literal | real_literal | string_literal . -local_decl = LOCAL local_variable { local_variable } END_LOCAL ';' . -local_variable = variable_id { ',' variable_id } ':' parameter_type [ ':=' expression ] ';' . -logical_expression = expression . -logical_literal = FALSE | TRUE | UNKNOWN . -logical_type = LOGICAL . -multiplication_like_op = '*' | '/' | DIV | MOD | AND | '||' . -named_types = entity_ref | type_ref . -named_type_or_rename = named_types [ AS ( entity_id | type_id ) ] . -null_stmt = ';' . -number_type = NUMBER . -numeric_expression = simple_expression . -one_of = ONEOF '(' supertype_expression { ',' supertype_expression } ')' . -parameter = expression . -parameter_id = simple_id . -parameter_type = generalized_types | named_types | simple_types . -population = entity_ref . -precision_spec = numeric_expression . -primary = literal | ( qualifiable_factor { qualifier } ) . -procedure_call_stmt = ( built_in_procedure | procedure_ref ) [ actual_parameter_list ] ';' . -procedure_decl = procedure_head algorithm_head { stmt } END_PROCEDURE ';' . -procedure_head = PROCEDURE procedure_id [ '(' [ VAR ] formal_parameter { ';' [ VAR ] formal_parameter } ')' ] ';' . -procedure_id = simple_id . -qualifiable_factor = attribute_ref | constant_factor | function_call | general_ref | population . -qualified_attribute = SELF group_qualifier attribute_qualifier . -qualifier = attribute_qualifier | group_qualifier | index_qualifier . -query_expression = QUERY '(' variable_id '<*' aggregate_source '|' logical_expression ')' . -real_type = REAL [ '(' precision_spec ')' ] . -redeclared_attribute = qualified_attribute [ RENAMED attribute_id ] . -referenced_attribute = attribute_ref | qualified_attribute . -reference_clause = REFERENCE FROM schema_ref [ '(' resource_or_rename { ',' resource_or_rename } ')' ] ';' . -rel_op = '<' | '>' | '<=' | '>=' | '<>' | '=' | ':<>:' | ':=:' . -rel_op_extended = rel_op | IN | LIKE . -rename_id = constant_id | entity_id | function_id | procedure_id | type_id . -repeat_control = [ increment_control ] [ while_control ] [ until_control ] . -repeat_stmt = REPEAT repeat_control ';' stmt { stmt } END_REPEAT ';' . -repetition = numeric_expression . -resource_or_rename = resource_ref [ AS rename_id ] . -resource_ref = constant_ref | entity_ref | function_ref | procedure_ref | type_ref . -return_stmt = RETURN [ '(' expression ')' ] ';' . -rule_decl = rule_head algorithm_head { stmt } where_clause END_RULE ';' . -rule_head = RULE rule_id FOR '(' entity_ref { ',' entity_ref } ')' ';' . -rule_id = simple_id . -rule_label_id = simple_id . -schema_body = { interface_specification } [ constant_decl ] { declaration | rule_decl } . -schema_decl = SCHEMA schema_id [ schema_version_id ] ';' schema_body END_SCHEMA ';' . -schema_id = simple_id . -schema_version_id = string_literal . -selector = expression . -select_extension = BASED_ON type_ref [ WITH select_list ] . -select_list = '(' named_types { ',' named_types } ')' . -select_type = [ EXTENSIBLE [ GENERIC_ENTITY ] ] SELECT [ select_list | select_extension ] . -set_type = SET [ bound_spec ] OF instantiable_type . -sign = '+' | '-' . -simple_expression = term { add_like_op term } . -simple_factor = aggregate_initializer | entity_constructor | enumeration_reference | interval | query_expression | ( [ unary_op ] ( '(' expression ')' | primary ) ) . -simple_types = binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_type . -skip_stmt = SKIP ';' . -stmt = alias_stmt | assignment_stmt | case_stmt | compound_stmt | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt . -string_literal = simple_string_literal | encoded_string_literal . -string_type = STRING [ width_spec ] . -subsuper = [ supertype_constraint ] [ subtype_declaration ] . -subtype_constraint = OF '(' supertype_expression ')' . -subtype_constraint_body = [ abstract_supertype ] [ total_over ] [ supertype_expression ';' ] . -subtype_constraint_decl = subtype_constraint_head subtype_constraint_body END_SUBTYPE_CONSTRAINT ';' . -subtype_constraint_head = SUBTYPE_CONSTRAINT subtype_constraint_id FOR entity_ref ';' . -subtype_constraint_id = simple_id . -subtype_declaration = SUBTYPE OF '(' entity_ref { ',' entity_ref } ')' . -supertype_constraint = abstract_entity_declaration | abstract_supertype_declaration | supertype_rule . -supertype_expression = supertype_factor { ANDOR supertype_factor } . -supertype_factor = supertype_term { AND supertype_term } . -supertype_rule = SUPERTYPE subtype_constraint . -supertype_term = entity_ref | one_of | '(' supertype_expression ')' . -syntax = schema_decl { schema_decl } . -term = factor { multiplication_like_op factor } . -total_over = TOTAL_OVER '(' entity_ref { ',' entity_ref } ')' ';' . -type_decl = TYPE type_id '=' underlying_type ';' [ where_clause ] END_TYPE ';' . -type_id = simple_id . -type_label = type_label_id | type_label_ref . -type_label_id = simple_id . -unary_op = '+' | '-' | NOT . -underlying_type = concrete_types | constructed_types . -unique_clause = UNIQUE unique_rule ';' { unique_rule ';' } . -unique_rule = [ rule_label_id ':' ] referenced_attribute { ',' referenced_attribute } . -until_control = UNTIL logical_expression . -use_clause = USE FROM schema_ref [ '(' named_type_or_rename { ',' named_type_or_rename } ')' ] ';' . -variable_id = simple_id . -where_clause = WHERE domain_rule ';' { domain_rule ';' } . -while_control = WHILE logical_expression . -width = numeric_expression . -width_spec = '(' width ')' [ FIXED ] . diff --git a/content/bnf/iso-10303-11-2004.bnf b/content/bnf/iso-10303-11-2004.bnf deleted file mode 100644 index a5da9fa..0000000 --- a/content/bnf/iso-10303-11-2004.bnf +++ /dev/null @@ -1,344 +0,0 @@ -;; iso-10303-11:2004 - - 0 ABS = 'abs' . - 1 ABSTRACT = 'abstract' . - 2 ACOS = 'acos' . - 3 AGGREGATE = 'aggregate' . - 4 ALIAS = 'alias' . - 5 AND = 'and' . - 6 ANDOR = 'andor' . - 7 ARRAY = 'array' . - 8 AS = 'as' . - 9 ASIN = 'asin' . - 10 ATAN = 'atan' . - 11 BAG = 'bag' . - 12 BASED_ON = 'based_on' . - 13 BEGIN = 'begin' . - 14 BINARY = 'binary' . - 15 BLENGTH = 'blength' . - 16 BOOLEAN = 'boolean' . - 17 BY = 'by' . - 18 CASE = 'case' . - 19 CONSTANT = 'constant' . - 20 CONST_E = 'const_e' . - 21 COS = 'cos' . - 22 DERIVE = 'derive' . - 23 DIV = 'div' . - 24 ELSE = 'else' . - 25 END = 'end' . - 26 END_ALIAS = 'end_alias' . - 27 END_CASE = 'end_case' . - 28 END_CONSTANT = 'end_constant' . - 29 END_ENTITY = 'end_entity' . - 30 END_FUNCTION = 'end_function' . - 31 END_IF = 'end_if' . - 32 END_LOCAL = 'end_local' . - 33 END_PROCEDURE = 'end_procedure' . - 34 END_REPEAT = 'end_repeat' . - 35 END_RULE = 'end_rule' . - 36 END_SCHEMA = 'end_schema' . - 37 END_SUBTYPE_CONSTRAINT = 'end_subtype_constraint' . - 38 END_TYPE = 'end_type' . - 39 ENTITY = 'entity' . - 40 ENUMERATION = 'enumeration' . - 41 ESCAPE = 'escape' . - 42 EXISTS = 'exists' . - 43 EXTENSIBLE = 'extensible' . - 44 EXP = 'exp' . - 45 FALSE = 'false' . - 46 FIXED = 'fixed' . - 47 FOR = 'for' . - 48 FORMAT = 'format' . - 49 FROM = 'from' . - 50 FUNCTION = 'function' . - 51 GENERIC = 'generic' . - 52 GENERIC_ENTITY = 'generic_entity' . - 53 HIBOUND = 'hibound' . - 54 HIINDEX = 'hiindex' . - 55 IF = 'if' . - 56 IN = 'in' . - 57 INSERT = 'insert' . - 58 INTEGER = 'integer' . - 59 INVERSE = 'inverse' . - 60 LENGTH = 'length' . - 61 LIKE = 'like' . - 62 LIST = 'list' . - 63 LOBOUND = 'lobound' . - 64 LOCAL = 'local' . - 65 LOG = 'log' . - 66 LOG10 = 'log10' . - 67 LOG2 = 'log2' . - 68 LOGICAL = 'logical' . - 69 LOINDEX = 'loindex' . - 70 MOD = 'mod' . - 71 NOT = 'not' . - 72 NUMBER = 'number' . - 73 NVL = 'nvl' . - 74 ODD = 'odd' . - 75 OF = 'of' . - 76 ONEOF = 'oneof' . - 77 OPTIONAL = 'optional' . - 78 OR = 'or' . - 79 OTHERWISE = 'otherwise' . - 80 PI = 'pi' . - 81 PROCEDURE = 'procedure' . - 82 QUERY = 'query' . - 83 REAL = 'real' . - 84 REFERENCE = 'reference' . - 85 REMOVE = 'remove' . - 86 RENAMED = 'renamed' . - 87 REPEAT = 'repeat' . - 88 RETURN = 'return' . - 89 ROLESOF = 'rolesof' . - 90 RULE = 'rule' . - 91 SCHEMA = 'schema' . - 92 SELECT = 'select' . - 93 SELF = 'self' . - 94 SET = 'set' . - 95 SIN = 'sin' . - 96 SIZEOF = 'sizeof' . - 97 SKIP = 'skip' . - 98 SQRT = 'sqrt' . - 99 STRING = 'string' . -100 SUBTYPE = 'subtype' . -101 SUBTYPE_CONSTRAINT = 'subtype_constraint' . -102 SUPERTYPE = 'supertype' . -103 TAN = 'tan' . -104 THEN = 'then' . -105 TO = 'to' . -106 TOTAL_OVER = 'total_over' . -107 TRUE = 'true' . -108 TYPE = 'type' . -109 TYPEOF = 'typeof' . -110 UNIQUE = 'unique' . -111 UNKNOWN = 'unknown' . -112 UNTIL = 'until' . -113 USE = 'use' . -114 USEDIN = 'usedin' . -115 VALUE = 'value' . -116 VALUE_IN = 'value_in' . -117 VALUE_UNIQUE = 'value_unique' . -118 VAR = 'var' . -119 WHERE = 'where' . -120 WHILE = 'while' . -121 WITH = 'with' . -122 XOR = 'xor' . -123 bit = '0' | '1' . -124 digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . -125 digits = digit { digit } . -126 encoded_character = octet octet octet octet . -127 hex_digit = digit | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' . -128 letter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' . -129 lparen_then_not_lparen_star = '(' { '(' } not_lparen_star { not_lparen_star } . -130 not_lparen_star = not_paren_star | ')' . -131 not_paren_star = letter | digit | not_paren_star_special . -132 not_paren_star_quote_special = '!' | '"' | '#' | '$' | '%' | '&' | '+' | ',' | '-' | '.' | '/' | ':' | ';' | '<' | '=' | '>' | '?' | '@' | '[' | '\' | ']' | '^' | '_' | '‘' | '{' | '|' | '}' | '~' . -133 not_paren_star_special = not_paren_star_quote_special | '''' . -134 not_quote = not_paren_star_quote_special | letter | digit | '(' | ')' | '*' . -135 not_rparen_star = not_paren_star | '(' . -136 octet = hex_digit hex_digit . -137 special = not_paren_star_quote_special | '(' | ')' | '*' | '''' . -138 not_rparen_star_then_rparen = not_rparen_star { not_rparen_star } ')' { ')' } . -139 binary_literal = '%' bit { bit } . -140 encoded_string_literal = '"' encoded_character { encoded_character } '"' . -141 integer_literal = digits . -142 real_literal = integer_literal | ( digits '.' [ digits ] [ 'e' [ sign ] digits ] ) . -143 simple_id = letter { letter | digit | '_' } . -144 simple_string_literal = \q { ( \q \q ) | not_quote | \s | \x8 | \x9 | \xA | \xB | \xC | \xD } \q . -145 embedded_remark = '(*' [ remark_tag ] { ( not_paren_star { not_paren_star } ) | lparen_then_not_lparen_star | ( '*' { '*' } ) | not_rparen_star_then_rparen | embedded_remark } '*)' . -146 remark = embedded_remark | tail_remark . -147 remark_tag = '"' remark_ref { '.' remark_ref } '"' . -148 remark_ref = attribute_ref | constant_ref | entity_ref | enumeration_ref | function_ref | parameter_ref | procedure_ref | rule_label_ref | rule_ref | schema_ref | subtype_constraint_ref | type_label_ref | type_ref | variable_ref . -149 tail_remark = '--' [ remark_tag ] { \a | \s | \x8 | \x9 | \xA | \xB | \xC | \xD } \n . -150 attribute_ref = attribute_id . -151 constant_ref = constant_id . -152 entity_ref = entity_id . -153 enumeration_ref = enumeration_id . -154 function_ref = function_id . -155 parameter_ref = parameter_id . -156 procedure_ref = procedure_id . -157 rule_label_ref = rule_label_id . -158 rule_ref = rule_id . -159 schema_ref = schema_id . -160 subtype_constraint_ref = subtype_constraint_id . -161 type_label_ref = type_label_id . -162 type_ref = type_id . -163 variable_ref = variable_id . -164 abstract_entity_declaration = ABSTRACT . -165 abstract_supertype = ABSTRACT SUPERTYPE ';' . -166 abstract_supertype_declaration = ABSTRACT SUPERTYPE [ subtype_constraint ] . -167 actual_parameter_list = '(' parameter { ',' parameter } ')' . -168 add_like_op = '+' | '-' | OR | XOR . -169 aggregate_initializer = '[' [ element { ',' element } ] ']' . -170 aggregate_source = simple_expression . -171 aggregate_type = AGGREGATE [ ':' type_label ] OF parameter_type . -172 aggregation_types = array_type | bag_type | list_type | set_type . -173 algorithm_head = { declaration } [ constant_decl ] [ local_decl ] . -174 alias_stmt = ALIAS variable_id FOR general_ref { qualifier } ';' stmt { stmt } END_ALIAS ';' . -175 array_type = ARRAY bound_spec OF [ OPTIONAL ] [ UNIQUE ] instantiable_type . -176 assignment_stmt = general_ref { qualifier } ':=' expression ';' . -177 attribute_decl = attribute_id | redeclared_attribute . -178 attribute_id = simple_id . -179 attribute_qualifier = '.' attribute_ref . -180 bag_type = BAG [ bound_spec ] OF instantiable_type . -181 binary_type = BINARY [ width_spec ] . -182 boolean_type = BOOLEAN . -183 bound_1 = numeric_expression . -184 bound_2 = numeric_expression . -185 bound_spec = '[' bound_1 ':' bound_2 ']' . -186 built_in_constant = CONST_E | PI | SELF | '?' . -187 built_in_function = ABS | ACOS | ASIN | ATAN | BLENGTH | COS | EXISTS | EXP | FORMAT | HIBOUND | HIINDEX | LENGTH | LOBOUND | LOINDEX | LOG | LOG2 | LOG10 | NVL | ODD | ROLESOF | SIN | SIZEOF | SQRT | TAN | TYPEOF | USEDIN | VALUE | VALUE_IN | VALUE_UNIQUE . -188 built_in_procedure = INSERT | REMOVE . -189 case_action = case_label { ',' case_label } ':' stmt . -190 case_label = expression . -191 case_stmt = CASE selector OF { case_action } [ OTHERWISE ':' stmt ] END_CASE ';' . -192 compound_stmt = BEGIN stmt { stmt } END ';' . -193 concrete_types = aggregation_types | simple_types | type_ref . -194 constant_body = constant_id ':' instantiable_type ':=' expression ';' . -195 constant_decl = CONSTANT constant_body { constant_body } END_CONSTANT ';' . -196 constant_factor = built_in_constant | constant_ref . -197 constant_id = simple_id . -198 constructed_types = enumeration_type | select_type . -199 declaration = entity_decl | function_decl | procedure_decl | subtype_constraint_decl | type_decl . -200 derived_attr = attribute_decl ':' parameter_type ':=' expression ';' . -201 derive_clause = DERIVE derived_attr { derived_attr } . -202 domain_rule = [ rule_label_id ':' ] expression . -203 element = expression [ ':' repetition ] . -204 entity_body = { explicit_attr } [ derive_clause ] [ inverse_clause ] [ unique_clause ] [ where_clause ] . -205 entity_constructor = entity_ref '(' [ expression { ',' expression } ] ')' . -206 entity_decl = entity_head entity_body END_ENTITY ';' . -207 entity_head = ENTITY entity_id subsuper ';' . -208 entity_id = simple_id . -209 enumeration_extension = BASED_ON type_ref [ WITH enumeration_items ] . -210 enumeration_id = simple_id . -211 enumeration_items = '(' enumeration_id { ',' enumeration_id } ')' . -212 enumeration_reference = [ type_ref '.' ] enumeration_ref . -213 enumeration_type = [ EXTENSIBLE ] ENUMERATION [ ( OF enumeration_items ) | enumeration_extension ] . -214 escape_stmt = ESCAPE ';' . -215 explicit_attr = attribute_decl { ',' attribute_decl } ':' [ OPTIONAL ] parameter_type ';' . -216 expression = simple_expression [ rel_op_extended simple_expression ] . -217 factor = simple_factor [ '**' simple_factor ] . -218 formal_parameter = parameter_id { ',' parameter_id } ':' parameter_type . -219 function_call = ( built_in_function | function_ref ) [ actual_parameter_list ] . -220 function_decl = function_head algorithm_head stmt { stmt } END_FUNCTION ';' . -221 function_head = FUNCTION function_id [ '(' formal_parameter { ';' formal_parameter } ')' ] ':' parameter_type ';' . -222 function_id = simple_id . -223 generalized_types = aggregate_type | general_aggregation_types | generic_entity_type | generic_type . -224 general_aggregation_types = general_array_type | general_bag_type | general_list_type | general_set_type . -225 general_array_type = ARRAY [ bound_spec ] OF [ OPTIONAL ] [ UNIQUE ] parameter_type . -226 general_bag_type = BAG [ bound_spec ] OF parameter_type . -227 general_list_type = LIST [ bound_spec ] OF [ UNIQUE ] parameter_type . -228 general_ref = parameter_ref | variable_ref . -229 general_set_type = SET [ bound_spec ] OF parameter_type . -230 generic_entity_type = GENERIC_ENTITY [ ':' type_label ] . -231 generic_type = GENERIC [ ':' type_label ] . -232 group_qualifier = '\' entity_ref . -233 if_stmt = IF logical_expression THEN stmt { stmt } [ ELSE stmt { stmt } ] END_IF ';' . -234 increment = numeric_expression . -235 increment_control = variable_id ':=' bound_1 TO bound_2 [ BY increment ] . -236 index = numeric_expression . -237 index_1 = index . -238 index_2 = index . -239 index_qualifier = '[' index_1 [ ':' index_2 ] ']' . -240 instantiable_type = concrete_types | entity_ref . -241 integer_type = INTEGER . -242 interface_specification = reference_clause | use_clause . -243 interval = '{' interval_low interval_op interval_item interval_op interval_high '}' . -244 interval_high = simple_expression . -245 interval_item = simple_expression . -246 interval_low = simple_expression . -247 interval_op = '<' | '<=' . -248 inverse_attr = attribute_decl ':' [ ( SET | BAG ) [ bound_spec ] OF ] entity_ref FOR [ entity_ref '.' ] attribute_ref ';' . -249 inverse_clause = INVERSE inverse_attr { inverse_attr } . -250 list_type = LIST [ bound_spec ] OF [ UNIQUE ] instantiable_type . -251 literal = binary_literal | logical_literal | real_literal | string_literal . -252 local_decl = LOCAL local_variable { local_variable } END_LOCAL ';' . -253 local_variable = variable_id { ',' variable_id } ':' parameter_type [ ':=' expression ] ';' . -254 logical_expression = expression . -255 logical_literal = FALSE | TRUE | UNKNOWN . -256 logical_type = LOGICAL . -257 multiplication_like_op = '*' | '/' | DIV | MOD | AND | '||' . -258 named_types = entity_ref | type_ref . -259 named_type_or_rename = named_types [ AS ( entity_id | type_id ) ] . -260 null_stmt = ';' . -261 number_type = NUMBER . -262 numeric_expression = simple_expression . -263 one_of = ONEOF '(' supertype_expression { ',' supertype_expression } ')' . -264 parameter = expression . -265 parameter_id = simple_id . -266 parameter_type = generalized_types | named_types | simple_types . -267 population = entity_ref . -268 precision_spec = numeric_expression . -269 primary = literal | ( qualifiable_factor { qualifier } ) . -270 procedure_call_stmt = ( built_in_procedure | procedure_ref ) [ actual_parameter_list ] ';' . -271 procedure_decl = procedure_head algorithm_head { stmt } END_PROCEDURE ';' . -272 procedure_head = PROCEDURE procedure_id [ '(' [ VAR ] formal_parameter { ';' [ VAR ] formal_parameter } ')' ] ';' . -273 procedure_id = simple_id . -274 qualifiable_factor = attribute_ref | constant_factor | function_call | general_ref | population . -275 qualified_attribute = SELF group_qualifier attribute_qualifier . -276 qualifier = attribute_qualifier | group_qualifier | index_qualifier . -277 query_expression = QUERY '(' variable_id '<*' aggregate_source '|' logical_expression ')' . -278 real_type = REAL [ '(' precision_spec ')' ] . -279 redeclared_attribute = qualified_attribute [ RENAMED attribute_id ] . -280 referenced_attribute = attribute_ref | qualified_attribute . -281 reference_clause = REFERENCE FROM schema_ref [ '(' resource_or_rename { ',' resource_or_rename } ')' ] ';' . -282 rel_op = '<' | '>' | '<=' | '>=' | '<>' | '=' | ':<>:' | ':=:' . -283 rel_op_extended = rel_op | IN | LIKE . -284 rename_id = constant_id | entity_id | function_id | procedure_id | type_id . -285 repeat_control = [ increment_control ] [ while_control ] [ until_control ] . -286 repeat_stmt = REPEAT repeat_control ';' stmt { stmt } END_REPEAT ';' . -287 repetition = numeric_expression . -288 resource_or_rename = resource_ref [ AS rename_id ] . -289 resource_ref = constant_ref | entity_ref | function_ref | procedure_ref | type_ref . -290 return_stmt = RETURN [ '(' expression ')' ] ';' . -291 rule_decl = rule_head algorithm_head { stmt } where_clause END_RULE ';' . -292 rule_head = RULE rule_id FOR '(' entity_ref { ',' entity_ref } ')' ';' . -293 rule_id = simple_id . -294 rule_label_id = simple_id . -295 schema_body = { interface_specification } [ constant_decl ] { declaration | rule_decl } . -296 schema_decl = SCHEMA schema_id [ schema_version_id ] ';' schema_body END_SCHEMA ';' . -297 schema_id = simple_id . -298 schema_version_id = string_literal . -299 selector = expression . -300 select_extension = BASED_ON type_ref [ WITH select_list ] . -301 select_list = '(' named_types { ',' named_types } ')' . -302 select_type = [ EXTENSIBLE [ GENERIC_ENTITY ] ] SELECT [ select_list | select_extension ] . -303 set_type = SET [ bound_spec ] OF instantiable_type . -304 sign = '+' | '-' . -305 simple_expression = term { add_like_op term } . -306 simple_factor = aggregate_initializer | entity_constructor | enumeration_reference | interval | query_expression | ( [ unary_op ] ( '(' expression ')' | primary ) ) . -307 simple_types = binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_type . -308 skip_stmt = SKIP ';' . -309 stmt = alias_stmt | assignment_stmt | case_stmt | compound_stmt | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt . -310 string_literal = simple_string_literal | encoded_string_literal . -311 string_type = STRING [ width_spec ] . -312 subsuper = [ supertype_constraint ] [ subtype_declaration ] . -313 subtype_constraint = OF '(' supertype_expression ')' . -314 subtype_constraint_body = [ abstract_supertype ] [ total_over ] [ supertype_expression ';' ] . -315 subtype_constraint_decl = subtype_constraint_head subtype_constraint_body END_SUBTYPE_CONSTRAINT ';' . -316 subtype_constraint_head = SUBTYPE_CONSTRAINT subtype_constraint_id FOR entity_ref ';' . -317 subtype_constraint_id = simple_id . -318 subtype_declaration = SUBTYPE OF '(' entity_ref { ',' entity_ref } ')' . -319 supertype_constraint = abstract_entity_declaration | abstract_supertype_declaration | supertype_rule . -320 supertype_expression = supertype_factor { ANDOR supertype_factor } . -321 supertype_factor = supertype_term { AND supertype_term } . -322 supertype_rule = SUPERTYPE subtype_constraint . -323 supertype_term = entity_ref | one_of | '(' supertype_expression ')' . -324 syntax = schema_decl { schema_decl } . -325 term = factor { multiplication_like_op factor } . -326 total_over = TOTAL_OVER '(' entity_ref { ',' entity_ref } ')' ';' . -327 type_decl = TYPE type_id '=' underlying_type ';' [ where_clause ] END_TYPE ';' . -328 type_id = simple_id . -329 type_label = type_label_id | type_label_ref . -330 type_label_id = simple_id . -331 unary_op = '+' | '-' | NOT . -332 underlying_type = concrete_types | constructed_types . -333 unique_clause = UNIQUE unique_rule ';' { unique_rule ';' } . -334 unique_rule = [ rule_label_id ':' ] referenced_attribute { ',' referenced_attribute } . -335 until_control = UNTIL logical_expression . -336 use_clause = USE FROM schema_ref [ '(' named_type_or_rename { ',' named_type_or_rename } ')' ] ';' . -337 variable_id = simple_id . -338 where_clause = WHERE domain_rule ';' { domain_rule ';' } . -339 while_control = WHILE logical_expression . -340 width = numeric_expression . -341 width_spec = '(' width ')' [ FIXED ] . diff --git a/content/bnf/iso-10303-14-raw.bnf b/content/bnf/iso-10303-14-raw.bnf deleted file mode 100644 index fc20990..0000000 --- a/content/bnf/iso-10303-14-raw.bnf +++ /dev/null @@ -1,240 +0,0 @@ -;; N178 2002-03-22 (no numbers) - -;; Added support for local var assignments in map select - -DEPENDENT_MAP = 'dependent_map' . -EACH = 'each' . -ELSIF = 'elsif' . -END_DEPENDENT_MAP = 'end_dependent_map' . -END_MAP = 'end_map' . -END_SCHEMA_MAP = 'end_schema_map' . -END_SCHEMA_VIEW = 'end_schema_view' . -END_VIEW = 'end_view' . -EXTENT = 'extent' . -IDENTIFIED_BY = 'identified_by' . -INDEXING = 'indexing' . -MAP = 'map' . -ORDERED_BY = 'ordered_by' . -PARTITION = 'partition' . -SCHEMA_MAP = 'schema_map' . -SCHEMA_VIEW = 'schema_view' . -SOURCE = 'source' . -TARGET = 'target' . -VIEW = 'view' . -digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . -letter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' . -simple_id = letter { letter | digit | '_' } . -partition_ref = partition_id . -schema_map_ref = schema_map_id . -schema_view_ref = schema_view_id . -source_schema_ref = schema_ref . -target_schema_ref = schema_ref . -view_attribute_ref = view_attribute_id . -view_ref = view_id . -abstract_supertype_declaration = ABSTRACT SUPERTYPE [ subtype_constraint ] . -actual_parameter_list = '(' parameter { ',' parameter } ')' . -add_like_op = '+' | '-' | OR | XOR . -aggregate_initializer = '[' [ element { ',' element } ] ']' . -aggregate_source = simple_expression . -aggregate_type = AGGREGATE [ ':' type_label ] OF parameter_type . -aggregation_types = array_type | bag_type | list_type | set_type . -algorithm_head = { declaration } [ constant_decl ] [ local_decl ] . -array_type = ARRAY bound_spec OF [ OPTIONAL ] [ UNIQUE ] base_type . -assignment_stmt = general_ref { qualifier } ':=' expression ';' . -backward_path_qualifier = '<-' [ attribute_ref ] path_condition . -bag_type = BAG [ bound_spec ] OF base_type . -base_type = aggregation_types | simple_types | named_types . -binary_type = BINARY [ width_spec ] . -binding_header = [ PARTITION partition_id ';' ] [ from_clause ] [ local_decl ] [ where_clause ] [ identified_by_clause ] [ ordered_by_clause ] . -boolean_type = BOOLEAN . -bound_1 = numeric_expression . -bound_2 = numeric_expression . -bound_spec = '[' bound_1 ':' bound_2 ']' . -built_in_constant = CONST_E | PI | SELF | '?' . -built_in_function = ABS | ACOS | ASIN | ATAN | BLENGTH | COS | EXISTS | EXTENT | EXP | FORMAT | HIBOUND | HIINDEX | LENGTH | LOBOUND | LOINDEX | LOG | LOG2 | LOG10 | NVL | ODD | ROLESOF | SIN | SIZEOF | SQRT | TAN | TYPEOF | USEDIN | VALUE | VALUE_IN | VALUE_UNIQUE . -built_in_procedure = INSERT | REMOVE . -case_action = case_label { ',' case_label } ':' stmt . -case_expr = CASE selector OF { case_expr_action } [ OTHERWISE ':' expression ] END_CASE . -case_expr_action = case_label { ',' case_label } ':' expression ';' . -case_label = expression . -case_stmt = CASE selector OF { case_action } [ OTHERWISE ':' stmt ] END_CASE ';' . -compound_stmt = BEGIN stmt { stmt } END ';' . -constant_body = constant_id ':' base_type ':=' expression ';' . -constant_decl = CONSTANT constant_body { constant_body } END_CONSTANT ';' . -constant_factor = built_in_constant | constant_ref . -constant_id = simple_id . -declaration = function_decl | procedure_decl . -dependent_map_decl = DEPENDENT_MAP map_id AS target_parameter ';' { target_parameter ';' } [ map_subtype_of_clause ] dep_map_partition { dep_map_partition } END_DEPENDENT_MAP ';' . -dep_binding_decl = dep_from_clause [ where_clause ] [ ordered_by_clause ] . -dep_from_clause = FROM dep_source_parameter ';' { dep_source_parameter ';' } . -dep_map_decl_body = dep_binding_decl map_project_clause . -dep_map_partition = [ PARTITION partition_id ':' ] dep_map_decl_body . -dep_source_parameter = source_parameter_id { ',' source_parameter_id } ':' ( simple_types | type_reference ) . -domain_rule = [ label ':' ] logical_expression . -element = expression [ ':' repetition ] . -entity_constructor = entity_reference '(' [ expression { ',' expression } ] ')' . -entity_id = simple_id . -entity_instantiation_loop = FOR instantiation_loop_control ';' map_project_clause . -entity_reference = [ ( source_schema_ref | target_schema_ref | schema_ref ) '.' ] entity_ref . -enumeration_reference = [ type_reference '.' ] enumeration_ref . -escape_stmt = ESCAPE ';' . -expression = simple_expression [ rel_op_extended simple_expression ] . -expression_or_wild = expression | '_' . -extent_reference = source_entity_reference | view_reference . -factor = simple_factor [ '**' simple_factor ] . -foreach_expr = EACH variable_id IN expression [ where_clause ] RETURN expression . -forloop_expr = repeat_control RETURN expression . -formal_parameter = parameter_id { ',' parameter_id } ':' parameter_type . -forward_path_qualifier = '::' attribute_ref [ path_condition ] . -for_expr = FOR ( foreach_expr | forloop_expr ) . -from_clause = FROM source_parameter ';' { source_parameter ';' } . -function_call = ( built_in_function | function_ref ) [ actual_parameter_list ] . -function_decl = function_head [ algorithm_head ] stmt { stmt } END_FUNCTION ';' . -function_head = FUNCTION function_id [ '(' formal_parameter { ';' formal_parameter } ')' ] ':' parameter_type ';' . -function_id = simple_id . -generalized_types = aggregate_type | general_aggregation_types | generic_type . -general_aggregation_types = general_array_type | general_bag_type | general_list_type | general_set_type . -general_array_type = ARRAY [ bound_spec ] OF [ OPTIONAL ] [ UNIQUE ] parameter_type . -general_attribute_qualifier = '.' ( attribute_ref | view_attribute_ref ) . -general_bag_type = BAG [ bound_spec ] OF parameter_type . -general_list_type = LIST [ bound_spec ] OF [ UNIQUE ] parameter_type . -general_or_map_call = general_ref [ '@' map_call ] . -general_ref = parameter_ref | variable_ref . -general_schema_alias_id = schema_id | schema_map_id | schema_view_id . -general_schema_ref = schema_ref | schema_map_ref | schema_view_ref . -general_set_type = SET [ bound_spec ] OF parameter_type . -generic_type = GENERIC [ ':' type_label ] . -group_qualifier = '\' entity_ref . -identified_by_clause = IDENTIFIED_BY id_parameter ';' { id_parameter ';' } . -id_parameter = [ id_parameter_id ':' ] expression . -id_parameter_id = parameter_id . -if_expr = IF logical_expression THEN expression { ELSIF logical_expression expression } [ ELSE expression ] END_IF . -if_stmt = IF logical_expression THEN stmt { stmt } [ ELSE stmt { stmt } ] END_IF ';' . -increment = numeric_expression . -increment_control = variable_id ':=' bound_1 TO bound_2 [ BY increment ] . -index = numeric_expression . -index_1 = index . -index_2 = index . -index_qualifier = '[' index_1 [ ':' index_2 ] ']' . -instantiation_foreach_control = EACH variable_id IN source_attribute_reference INDEXING variable_id . -instantiation_loop_control = instantiation_foreach_control | repeat_control . -integer_type = INTEGER . -interval = '{' interval_low interval_op interval_item interval_op interval_high '}' . -interval_high = simple_expression . -interval_item = simple_expression . -interval_low = simple_expression . -interval_op = '<' | '<=' . -label = simple_id . -list_type = LIST [ bound_spec ] OF [ UNIQUE ] base_type . -literal = binary_literal | integer_literal | logical_literal | real_literal | string_literal . -local_decl = LOCAL local_variable { local_variable } END_LOCAL ';' . -local_variable = variable_id { ',' variable_id } ':' parameter_type [ ':=' expression ] ';' . -logical_expression = expression . -logical_literal = FALSE | TRUE | UNKNOWN . -logical_type = LOGICAL . -map_attribute_declaration = [ target_parameter_ref [ index_qualifier ] [ group_qualifier ] '.' ] attribute_ref [ index_qualifier ] ':=' expression ';' . -map_call = map_ref [ partition_qualification ] '(' expression_or_wild { ',' expression_or_wild } ')' . -map_decl = MAP map_id AS target_parameter ';' { target_parameter ';' } ( map_subtype_of_clause subtype_binding_header map_decl_body ) | ( binding_header map_decl_body { binding_header map_decl_body } ) END_MAP ';' . -map_decl_body = ( entity_instantiation_loop { entity_instantiation_loop } ) | map_project_clause | ( RETURN expression ';' ) . -map_id = simple_id . -map_local_assignment = variable_ref { ( '.' attribute_ref ) | group_qualifier | index_qualifier } ':=' expression ';' . -map_project_clause = SELECT map_select_item { map_select_item } . -map_ref = map_id . -map_reference = [ schema_map_ref '.' ] map_ref . -map_select_item = map_attribute_declaration | map_local_assignment . -map_subtype_of_clause = SUBTYPE OF '(' map_reference ')' ';' . -multiplication_like_op = '*' | '/' | DIV | MOD | AND | '||' . -named_types = entity_reference | type_reference | view_reference . -null_stmt = ';' . -number_type = NUMBER . -numeric_expression = simple_expression . -one_of = ONEOF '(' supertype_expression { ',' supertype_expression } ')' . -ordered_by_clause = ORDERED_BY expression { ',' expression } ';' . -parameter = expression . -parameter_id = simple_id . -parameter_type = generalized_types | named_types | simple_types . -partition_id = simple_id . -partition_qualification = '\' partition_ref . -path_condition = '{' extent_reference [ '|' logical_expression ] '}' . -path_qualifier = forward_path_qualifier | backward_path_qualifier . -population = entity_reference . -precision_spec = numeric_expression . -primary = literal | ( qualifiable_factor { qualifier } ) . -procedure_call_stmt = ( built_in_procedure | procedure_ref ) [ actual_parameter_list ] ';' . -procedure_decl = procedure_head [ algorithm_head ] { stmt } END_PROCEDURE ';' . -procedure_head = PROCEDURE procedure_id [ '(' [ VAR ] formal_parameter { ';' [ VAR ] formal_parameter } ')' ] ';' . -procedure_id = simple_id . -qualifiable_factor = attribute_ref | constant_factor | function_call | general_or_map_call | population | view_attribute_ref | view_call . -qualifier = general_attribute_qualifier | group_qualifier | index_qualifier | path_qualifier . -query_expression = QUERY '(' variable_id '<*' aggregate_source '|' logical_expression ')' . -real_type = REAL [ '(' precision_spec ')' ] . -reference_clause = REFERENCE FROM schema_ref_or_rename [ '(' resource_or_rename { ',' resource_or_rename } ')' ] [ AS ( SOURCE | TARGET ) ] ';' . -rel_op = '<' | '>' | '<=' | '>=' | '<>' | '=' | ':<>:' | ':=:' . -rel_op_extended = rel_op | IN | LIKE . -rename_id = constant_id | entity_id | function_id | procedure_id | type_id . -repeat_control = [ increment_control ] [ while_control ] [ until_control ] . -repeat_stmt = REPEAT repeat_control ';' stmt { stmt } END_REPEAT ';' . -repetition = numeric_expression . -resource_or_rename = resource_ref [ AS rename_id ] . -resource_ref = constant_ref | entity_ref | function_ref | procedure_ref | type_ref | view_ref | map_ref . -return_stmt = RETURN [ '(' expression ')' ] ';' . -rule_decl = rule_head [ algorithm_head ] { stmt } where_clause END_RULE ';' . -rule_head = RULE rule_id FOR '(' entity_ref { ',' entity_ref } ')' ';' . -rule_id = simple_id . -schema_id = simple_id . -schema_map_body_element = function_decl | procedure_decl | view_decl | map_decl | dependent_map_decl | rule_decl . -schema_map_body_element_list = schema_map_body_element { schema_map_body_element } . -schema_map_decl = SCHEMA_MAP schema_map_id ';' reference_clause { reference_clause } [ constant_decl ] schema_map_body_element_list END_SCHEMA_MAP ';' . -schema_map_id = simple_id . -schema_ref_or_rename = [ general_schema_alias_id ':' ] general_schema_ref . -schema_view_body_element = function_decl | procedure_decl | view_decl | rule_decl . -schema_view_body_element_list = schema_view_body_element { schema_view_body_element } . -schema_view_decl = SCHEMA_VIEW schema_view_id ';' { reference_clause } [ constant_decl ] schema_view_body_element_list END_SCHEMA_VIEW ';' . -schema_view_id = simple_id . -selector = expression . -set_type = SET [ bound_spec ] OF base_type . -simple_expression = term { add_like_op term } . -simple_factor = aggregate_initializer | entity_constructor | enumeration_reference | interval | query_expression | ( [ unary_op ] ( '(' expression ')' | primary ) ) | case_expr | for_expr | if_expr . -simple_types = binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_type . -skip_stmt = SKIP ';' . -source_attribute_reference = parameter_ref '.' ( attribute_ref | view_attribute_ref ) . -source_entity_reference = entity_reference . -source_parameter = source_parameter_id ':' extent_reference . -source_parameter_id = parameter_id . -stmt = assignment_stmt | case_stmt | compound_stmt | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt . -string_literal = simple_string_literal | encoded_string_literal . -string_type = STRING [ width_spec ] . -subsuper = [ supertype_constraint ] [ subtype_declaration ] . -subtype_binding_header = [ PARTITION partition_id ';' ] where_clause . -subtype_constraint = OF '(' supertype_expression ')' . -subtype_declaration = SUBTYPE OF '(' view_ref { ',' view_ref } ')' . -supertype_constraint = abstract_supertype_declaration | supertype_rule . -supertype_expression = supertype_factor { ANDOR supertype_factor } . -supertype_factor = supertype_term { AND supertype_term } . -supertype_rule = SUPERTYPE [ subtype_constraint ] . -supertype_term = view_ref | one_of | '(' supertype_expression ')' . -syntax_x = schema_map_decl | schema_view_decl . -target_entity_reference = entity_reference { '&' entity_reference } . -target_parameter = target_parameter_id { ',' target_parameter_id } ':' [ AGGREGATE [ bound_spec ] OF ] target_entity_reference . -target_parameter_id = parameter_id . -target_parameter_ref = target_parameter_id . -term = factor { multiplication_like_op factor } . -type_id = simple_id . -type_label = type_label_id | type_label_ref . -type_label_id = simple_id . -type_reference = [ schema_ref '.' ] type_ref . -unary_op = '+' | '-' | NOT . -until_control = UNTIL logical_expression . -variable_id = simple_id . -view_attribute_decl = view_attribute_id ':' [ OPTIONAL ] [ source_schema_ref '.' ] base_type ':=' expression ';' . -view_attribute_id = simple_id . -view_attr_decl_stmt_list = view_attribute_decl { view_attribute_decl } . -view_call = view_reference [ partition_qualification ] '(' [ expression_or_wild { ',' expression_or_wild } ] ')' . -view_decl = VIEW view_id [ ':' base_type ] subsuper ';' ( subtype_binding_header view_project_clause { subtype_binding_header view_project_clause } ) | ( binding_header view_project_clause { binding_header view_project_clause } ) END_VIEW ';' . -view_id = simple_id . -view_project_clause = ( SELECT view_attr_decl_stmt_list ) | ( RETURN expression ) . -view_reference = [ ( schema_map_ref | schema_view_ref ) '.' ] view_ref . -where_clause = WHERE domain_rule ';' { domain_rule ';' } . -while_control = WHILE logical_expression . -width = numeric_expression . -width_spec = '(' width ')' [ FIXED ] . diff --git a/content/bnf/iso-10303-14.bnf b/content/bnf/iso-10303-14.bnf deleted file mode 100644 index c2928f6..0000000 --- a/content/bnf/iso-10303-14.bnf +++ /dev/null @@ -1,236 +0,0 @@ -;; N178 2002-03-22 - - 1 DEPENDENT_MAP = 'dependent_map' . - 2 EACH = 'each' . - 3 ELSIF = 'elsif' . - 4 END_DEPENDENT_MAP = 'end_dependent_map' . - 5 END_MAP = 'end_map' . - 6 END_SCHEMA_MAP = 'end_schema_map' . - 7 END_SCHEMA_VIEW = 'end_schema_view' . - 8 END_VIEW = 'end_view' . - 9 EXTENT = 'extent' . - 10 IDENTIFIED_BY = 'identified_by' . - 11 INDEXING = 'indexing' . - 12 MAP = 'map' . - 13 ORDERED_BY = 'ordered_by' . - 14 PARTITION = 'partition' . - 15 SCHEMA_MAP = 'schema_map' . - 16 SCHEMA_VIEW = 'schema_view' . - 17 SOURCE = 'source' . - 18 TARGET = 'target' . - 19 VIEW = 'view' . - 20 digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . - 21 letter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' . - 22 simple_id = letter { letter | digit | '_' } . - 23 partition_ref = partition_id . - 24 schema_map_ref = schema_map_id . - 25 schema_view_ref = schema_view_id . - 26 source_schema_ref = schema_ref . - 27 target_schema_ref = schema_ref . - 28 view_attribute_ref = view_attribute_id . - 29 view_ref = view_id . - 30 abstract_supertype_declaration = ABSTRACT SUPERTYPE [ subtype_constraint ] . - 31 actual_parameter_list = '(' parameter { ',' parameter } ')' . - 32 add_like_op = '+' | '-' | OR | XOR . - 33 aggregate_initializer = '[' [ element { ',' element } ] ']' . - 34 aggregate_source = simple_expression . - 35 aggregate_type = AGGREGATE [ ':' type_label ] OF parameter_type . - 36 aggregation_types = array_type | bag_type | list_type | set_type . - 37 algorithm_head = { declaration } [ constant_decl ] [ local_decl ] . - 38 array_type = ARRAY bound_spec OF [ OPTIONAL ] [ UNIQUE ] base_type . - 39 assignment_stmt = general_ref { qualifier } ':=' expression ';' . - 40 backward_path_qualifier = '<-' [ attribute_ref ] path_condition . - 41 bag_type = BAG [ bound_spec ] OF base_type . - 42 base_type = aggregation_types | simple_types | named_types . - 43 binary_type = BINARY [ width_spec ] . - 44 binding_header = [ PARTITION partition_id ';' ] [ from_clause ] [ local_decl ] [ where_clause ] [ identified_by_clause ] [ ordered_by_clause ] . - 45 boolean_type = BOOLEAN . - 46 bound_1 = numeric_expression . - 47 bound_2 = numeric_expression . - 48 bound_spec = '[' bound_1 ':' bound_2 ']' . - 49 built_in_constant = CONST_E | PI | SELF | '?' . - 50 built_in_function = ABS | ACOS | ASIN | ATAN | BLENGTH | COS | EXISTS | EXTENT | EXP | FORMAT | HIBOUND | HIINDEX | LENGTH | LOBOUND | LOINDEX | LOG | LOG2 | LOG10 | NVL | ODD | ROLESOF | SIN | SIZEOF | SQRT | TAN | TYPEOF | USEDIN | VALUE | VALUE_IN | VALUE_UNIQUE . - 51 built_in_procedure = INSERT | REMOVE . - 52 case_action = case_label { ',' case_label } ':' stmt . - 53 case_expr = CASE selector OF { case_expr_action } [ OTHERWISE ':' expression ] END_CASE . - 54 case_expr_action = case_label { ',' case_label } ':' expression ';' . - 55 case_label = expression . - 56 case_stmt = CASE selector OF { case_action } [ OTHERWISE ':' stmt ] END_CASE ';' . - 57 compound_stmt = BEGIN stmt { stmt } END ';' . - 58 constant_body = constant_id ':' base_type ':=' expression ';' . - 59 constant_decl = CONSTANT constant_body { constant_body } END_CONSTANT ';' . - 60 constant_factor = built_in_constant | constant_ref . - 61 constant_id = simple_id . - 62 declaration = function_decl | procedure_decl . - 63 dependent_map_decl = DEPENDENT_MAP map_id AS target_parameter ';' { target_parameter ';' } [ map_subtype_of_clause ] dep_map_partition { dep_map_partition } END_DEPENDENT_MAP ';' . - 64 dep_binding_decl = dep_from_clause [ local_decl ] [ where_clause ] [ ordered_by_clause ] . - 65 dep_from_clause = FROM dep_source_parameter ';' { dep_source_parameter ';' } . - 66 dep_map_decl_body = dep_binding_decl map_project_clause . - 67 dep_map_partition = [ PARTITION partition_id ':' ] dep_map_decl_body . - 68 dep_source_parameter = source_parameter_id { ',' source_parameter_id } ':' ( simple_types | type_reference ) . - 69 domain_rule = [ label ':' ] logical_expression . - 70 element = expression [ ':' repetition ] . - 71 entity_constructor = entity_reference '(' [ expression { ',' expression } ] ')' . - 72 entity_id = simple_id . - 73 entity_instantiation_loop = FOR instantiation_loop_control ';' map_project_clause . - 74 entity_reference = [ ( source_schema_ref | target_schema_ref | schema_ref ) '.' ] entity_ref . - 75 enumeration_reference = [ type_reference '.' ] enumeration_ref . - 76 escape_stmt = ESCAPE ';' . - 77 expression = simple_expression [ rel_op_extended simple_expression ] . - 78 expression_or_wild = expression | '_' . - 79 extent_reference = source_entity_reference | view_reference . - 80 factor = simple_factor [ '**' simple_factor ] . - 81 foreach_expr = EACH variable_id IN expression [ where_clause ] RETURN expression . - 82 forloop_expr = repeat_control RETURN expression . - 83 formal_parameter = parameter_id { ',' parameter_id } ':' parameter_type . - 84 forward_path_qualifier = '::' attribute_ref [ path_condition ] . - 85 for_expr = FOR ( foreach_expr | forloop_expr ) . - 86 from_clause = FROM source_parameter ';' { source_parameter ';' } . - 87 function_call = ( built_in_function | function_ref ) [ actual_parameter_list ] . - 88 function_decl = function_head [ algorithm_head ] stmt { stmt } END_FUNCTION ';' . - 89 function_head = FUNCTION function_id [ '(' formal_parameter { ';' formal_parameter } ')' ] ':' parameter_type ';' . - 90 function_id = simple_id . - 91 generalized_types = aggregate_type | general_aggregation_types | generic_type . - 92 general_aggregation_types = general_array_type | general_bag_type | general_list_type | general_set_type . - 93 general_array_type = ARRAY [ bound_spec ] OF [ OPTIONAL ] [ UNIQUE ] parameter_type . - 94 general_attribute_qualifier = '.' ( attribute_ref | view_attribute_ref ) . - 95 general_bag_type = BAG [ bound_spec ] OF parameter_type . - 96 general_list_type = LIST [ bound_spec ] OF [ UNIQUE ] parameter_type . - 97 general_or_map_call = general_ref [ '@' map_call ] . - 98 general_ref = parameter_ref | variable_ref . - 99 general_schema_alias_id = schema_id | schema_map_id | schema_view_id . -100 general_schema_ref = schema_ref | schema_map_ref | schema_view_ref . -101 general_set_type = SET [ bound_spec ] OF parameter_type . -102 generic_type = GENERIC [ ':' type_label ] . -103 group_qualifier = '\' entity_ref . -104 identified_by_clause = IDENTIFIED_BY id_parameter ';' { id_parameter ';' } . -105 id_parameter = [ id_parameter_id ':' ] expression . -106 id_parameter_id = parameter_id . -107 if_expr = IF logical_expression THEN expression { ELSIF logical_expression expression } [ ELSE expression ] END_IF . -108 if_stmt = IF logical_expression THEN stmt { stmt } [ ELSE stmt { stmt } ] END_IF ';' . -109 increment = numeric_expression . -110 increment_control = variable_id ':=' bound_1 TO bound_2 [ BY increment ] . -111 index = numeric_expression . -112 index_1 = index . -113 index_2 = index . -114 index_qualifier = '[' index_1 [ ':' index_2 ] ']' . -115 instantiation_foreach_control = EACH variable_id IN source_attribute_reference INDEXING variable_id . -116 instantiation_loop_control = instantiation_foreach_control | repeat_control . -117 integer_type = INTEGER . -118 interval = '{' interval_low interval_op interval_item interval_op interval_high '}' . -119 interval_high = simple_expression . -120 interval_item = simple_expression . -121 interval_low = simple_expression . -122 interval_op = '<' | '<=' . -123 label = simple_id . -124 list_type = LIST [ bound_spec ] OF [ UNIQUE ] base_type . -125 literal = binary_literal | integer_literal | logical_literal | real_literal | string_literal . -126 local_decl = LOCAL local_variable { local_variable } END_LOCAL ';' . -127 local_variable = variable_id { ',' variable_id } ':' parameter_type [ ':=' expression ] ';' . -128 logical_expression = expression . -129 logical_literal = FALSE | TRUE | UNKNOWN . -130 logical_type = LOGICAL . -131 map_attribute_declaration = ( [ target_parameter_ref [ index_qualifier ] [ group_qualifier ] '.' ] attribute_ref [ index_qualifier ]) | ( variable_id [ index_qualifier ] [ [ group_qualifier ] '.' attribute_ref [ index_qualifier ] ] ) ':=' expression ';' . -132 map_call = map_ref [ partition_qualification ] '(' expression_or_wild { ',' expression_or_wild } ')' . -133 map_decl = MAP map_id AS target_parameter ';' { target_parameter ';' } ( map_subtype_of_clause subtype_binding_header map_decl_body ) | ( binding_header map_decl_body { binding_header map_decl_body } ) END_MAP ';' . -134 map_decl_body = ( entity_instantiation_loop { entity_instantiation_loop } ) | map_project_clause | ( RETURN expression ';' ) . -135 map_id = simple_id . -136 map_project_clause = SELECT map_attribute_declaration { map_attribute_declaration } . -137 map_ref = map_id . -138 map_reference = [ schema_map_ref '.' ] map_ref . -139 map_subtype_of_clause = SUBTYPE OF '(' map_reference ')' ';' . -140 multiplication_like_op = '*' | '/' | DIV | MOD | AND | '||' . -141 named_types = entity_reference | type_reference | view_reference . -142 null_stmt = ';' . -143 number_type = NUMBER . -144 numeric_expression = simple_expression . -145 one_of = ONEOF '(' supertype_expression { ',' supertype_expression } ')' . -146 ordered_by_clause = ORDERED_BY expression { ',' expression } ';' . -147 parameter = expression . -148 parameter_id = simple_id . -149 parameter_type = generalized_types | named_types | simple_types . -150 partition_id = simple_id . -151 partition_qualification = '\' partition_ref . -152 path_condition = '{' extent_reference [ '|' logical_expression ] '}' . -153 path_qualifier = forward_path_qualifier | backward_path_qualifier . -154 population = entity_reference . -155 precision_spec = numeric_expression . -156 primary = literal | ( qualifiable_factor { qualifier } ) . -157 procedure_call_stmt = ( built_in_procedure | procedure_ref ) [ actual_parameter_list ] ';' . -158 procedure_decl = procedure_head [ algorithm_head ] { stmt } END_PROCEDURE ';' . -159 procedure_head = PROCEDURE procedure_id [ '(' [ VAR ] formal_parameter { ';' [ VAR ] formal_parameter } ')' ] ';' . -160 procedure_id = simple_id . -161 qualifiable_factor = attribute_ref | constant_factor | function_call | general_or_map_call | population | view_attribute_ref | view_call . -162 qualifier = general_attribute_qualifier | group_qualifier | index_qualifier | path_qualifier . -163 query_expression = QUERY '(' variable_id '<*' aggregate_source '|' logical_expression ')' . -164 real_type = REAL [ '(' precision_spec ')' ] . -165 reference_clause = REFERENCE FROM schema_ref_or_rename [ '(' resource_or_rename { ',' resource_or_rename } ')' ] [ AS ( SOURCE | TARGET ) ] ';' . -166 rel_op = '<' | '>' | '<=' | '>=' | '<>' | '=' | ':<>:' | ':=:' . -167 rel_op_extended = rel_op | IN | LIKE . -168 rename_id = constant_id | entity_id | function_id | procedure_id | type_id . -169 repeat_control = [ increment_control ] [ while_control ] [ until_control ] . -170 repeat_stmt = REPEAT repeat_control ';' stmt { stmt } END_REPEAT ';' . -171 repetition = numeric_expression . -172 resource_or_rename = resource_ref [ AS rename_id ] . -173 resource_ref = constant_ref | entity_ref | function_ref | procedure_ref | type_ref | view_ref | map_ref . -174 return_stmt = RETURN [ '(' expression ')' ] ';' . -175 rule_decl = rule_head [ algorithm_head ] { stmt } where_clause END_RULE ';' . -176 rule_head = RULE rule_id FOR '(' entity_ref { ',' entity_ref } ')' ';' . -177 rule_id = simple_id . -178 schema_id = simple_id . -179 schema_map_body_element = function_decl | procedure_decl | view_decl | map_decl | dependent_map_decl | rule_decl . -180 schema_map_body_element_list = schema_map_body_element { schema_map_body_element } . -181 schema_map_decl = SCHEMA_MAP schema_map_id ';' reference_clause { reference_clause } [ constant_decl ] schema_map_body_element_list END_SCHEMA_MAP ';' . -182 schema_map_id = simple_id . -183 schema_ref_or_rename = [ general_schema_alias_id ':' ] general_schema_ref . -184 schema_view_body_element = function_decl | procedure_decl | view_decl | rule_decl . -185 schema_view_body_element_list = schema_view_body_element { schema_view_body_element } . -186 schema_view_decl = SCHEMA_VIEW schema_view_id ';' { reference_clause } [ constant_decl ] schema_view_body_element_list END_SCHEMA_VIEW ';' . -187 schema_view_id = simple_id . -188 selector = expression . -189 set_type = SET [ bound_spec ] OF base_type . -190 simple_expression = term { add_like_op term } . -191 simple_factor = aggregate_initializer | entity_constructor | enumeration_reference | interval | query_expression | ( [ unary_op ] ( '(' expression ')' | primary ) ) | case_expr | for_expr | if_expr . -192 simple_types = binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_type . -193 skip_stmt = SKIP ';' . -194 source_attribute_reference = parameter_ref '.' ( attribute_ref | view_attribute_ref ) . -195 source_entity_reference = entity_reference . -196 source_parameter = source_parameter_id ':' extent_reference . -197 source_parameter_id = parameter_id . -198 stmt = assignment_stmt | case_stmt | compound_stmt | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt . -199 string_literal = simple_string_literal | encoded_string_literal . -200 string_type = STRING [ width_spec ] . -201 subsuper = [ supertype_constraint ] [ subtype_declaration ] . -202 subtype_binding_header = [ PARTITION partition_id ';' ] where_clause . -203 subtype_constraint = OF '(' supertype_expression ')' . -204 subtype_declaration = SUBTYPE OF '(' view_ref { ',' view_ref } ')' . -205 supertype_constraint = abstract_supertype_declaration | supertype_rule . -206 supertype_expression = supertype_factor { ANDOR supertype_factor } . -207 supertype_factor = supertype_term { AND supertype_term } . -208 supertype_rule = SUPERTYPE [ subtype_constraint ] . -209 supertype_term = view_ref | one_of | '(' supertype_expression ')' . -210 syntax_x = schema_map_decl | schema_view_decl . -211 target_entity_reference = entity_reference { '&' entity_reference } . -212 target_parameter = target_parameter_id { ',' target_parameter_id } ':' [ AGGREGATE [ bound_spec ] OF ] target_entity_reference . -213 target_parameter_id = parameter_id . -214 target_parameter_ref = target_parameter_id . -215 term = factor { multiplication_like_op factor } . -216 type_id = simple_id . -217 type_label = type_label_id | type_label_ref . -218 type_label_id = simple_id . -219 type_reference = [ schema_ref '.' ] type_ref . -220 unary_op = '+' | '-' | NOT . -221 until_control = UNTIL logical_expression . -222 variable_id = simple_id . -223 view_attribute_decl = view_attribute_id ':' [ OPTIONAL ] [ source_schema_ref '.' ] base_type ':=' expression ';' . -224 view_attribute_id = simple_id . -225 view_attr_decl_stmt_list = view_attribute_decl { view_attribute_decl } . -226 view_call = view_reference [ partition_qualification ] '(' [ expression_or_wild { ',' expression_or_wild } ] ')' . -227 view_decl = VIEW view_id [ ':' base_type ] subsuper ';' ( subtype_binding_header view_project_clause { subtype_binding_header view_project_clause } ) | ( binding_header view_project_clause { binding_header view_project_clause } ) END_VIEW ';' . -228 view_id = simple_id . -229 view_project_clause = ( SELECT view_attr_decl_stmt_list ) | ( RETURN expression ) . -230 view_reference = [ ( schema_map_ref | schema_view_ref ) '.' ] view_ref . -231 where_clause = WHERE domain_rule ';' { domain_rule ';' } . -232 while_control = WHILE logical_expression . -233 width = numeric_expression . -234 width_spec = '(' width ')' [ FIXED ] . diff --git a/content/bnf/iso-10303-21-1994.bnf b/content/bnf/iso-10303-21-1994.bnf deleted file mode 100644 index 011bbd0..0000000 --- a/content/bnf/iso-10303-21-1994.bnf +++ /dev/null @@ -1,52 +0,0 @@ -; ISO 10303-21:1994 - -alphabet = reverse_solidus 'P' upper reverse_solidus . -apostrophe = '''' . -arbitrary = reverse_solidus 'X' reverse_solidus hex_one . -binary = '"' ( '0' | '1' | '2' | '3' ) { hex } '"' . -character = space | digit | lower | upper | special | reverse_solidus | apostrophe . -complex_entity_instance = entity_instance_name '=' [ scope ] subsuper_record ';' . -control_directive = page | alphabet | extended2 | extended4 | arbitrary . -data_section = 'DATA' ';' entity_instance_list 'ENDSEC' ';' . -digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . -end_extended = reverse_solidus 'X0' reverse_solidus . -entity_instance = simple_entity_instance | complex_entity_instance . -entity_instance_list = entity_instance { entity_instance } . -entity_instance_name = '#' digit { digit } . -enumeration = '.' upper { upper | digit } '.' . -exchange_file = 'ISO-10303-21' ';' header_section data_section 'END-ISO-10303-21' ';' . -export_list = '/' entity_instance_name { ',' entity_instance_name } '/' . -extended2 = reverse_solidus 'X2' reverse_solidus hex_two { hex_two } end_extended . -extended4 = reverse_solidus 'X4' reverse_solidus hex_four { hex_four } end_extended . -header_entity = keyword '(' [ parameter_list ] ')' ';' . -header_entity_list = header_entity { header_entity } . -header_section = 'HEADER' ';' header_entity header_entity header_entity [ header_entity_list ] 'ENDSEC' ';' . -hex = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' . -hex_four = hex_two hex_two . -hex_one = hex hex . -hex_two = hex_one hex_one . -integer = [ sign ] digit { digit } . -keyword = user_defined_keyword | standard_keyword . -list = '(' [ parameter { ',' parameter } ] ')' . -lower = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' . -non_q_char = special | digit | space | lower | upper . -omitted_parameter = '*' . -page = reverse_solidus 'S' reverse_solidus character . -parameter = typed_parameter | untyped_parameter | omitted_parameter . -parameter_list = parameter { ',' parameter } . -real = [ sign ] digit { digit } '.' { digit } [ 'E' [ sign ] digit { digit } ] . -reverse_solidus = '\' . -scope = '&' 'SCOPE' entity_instance_list 'ENDSCOPE' [ export_list ] . -sign = '+' | '-' . -simple_entity_instance = entity_instance_name '=' [ scope ] simple_record ';' . -simple_record = keyword '(' [ parameter_list ] ')' . -simple_record_list = simple_record { simple_record } . -space = ' ' . -special = '!' | '"' | '*' | '$' | '%' | '&' | '.' | '#' | '+' | ',' | '-' | '(' | ')' | '?' | '/' | ':' | ';' | '<' | '=' | '>' | '@' | '[' | ']' | '{' | '|' | '}' | '^' | '`' . -standard_keyword = upper { upper | digit } . -string = '''' { non_q_char | apostrophe apostrophe | reverse_solidus reverse_solidus | control_directive } '''' . -subsuper_record = '(' simple_record_list ')' . -typed_parameter = keyword '(' parameter ')' . -untyped_parameter = '$' | integer | real | string | entity_instance_name | enumeration | binary | list . -upper = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' . -user_defined_keyword = '!' upper { upper | digit } . diff --git a/content/bnf/iso-10303-21-2002.bnf b/content/bnf/iso-10303-21-2002.bnf deleted file mode 100644 index 3adb2c1..0000000 --- a/content/bnf/iso-10303-21-2002.bnf +++ /dev/null @@ -1,50 +0,0 @@ -; ISO 10303-21:2002 - -alphabet = reverse_solidus 'P' upper reverse_solidus . -apostrophe = '''' . -arbitrary = reverse_solidus 'X' reverse_solidus hex_one . -binary = '"' ( '0' | '1' | '2' | '3' ) { hex } '"' . -character = space | digit | lower | upper | special | reverse_solidus | apostrophe . -complex_entity_instance = entity_instance_name '=' subsuper_record ';' . -control_directive = page | alphabet | extended2 | extended4 | arbitrary . -data_section = 'DATA' [ '(' parameter_list ')' ] ';' entity_instance_list 'ENDSEC;' . -digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . -end_extended = reverse_solidus 'X0' reverse_solidus . -entity_instance = simple_entity_instance | complex_entity_instance . -entity_instance_list = { entity_instance } . -entity_instance_name = '#' digit { digit } . -enumeration = '.' upper { upper | digit } '.' . -exchange_file = 'ISO-10303-21;' header_section data_section { data_section } 'END-ISO-10303-21;' . -extended2 = reverse_solidus 'X2' reverse_solidus hex_two { hex_two } end_extended . -extended4 = reverse_solidus 'X4' reverse_solidus hex_four { hex_four } end_extended . -header_entity = keyword '(' [ parameter_list ] ')' ';' . -header_entity_list = header_entity { header_entity } . -header_section = 'HEADER;' header_entity header_entity header_entity [header_entity_list] 'ENDSEC;' . -hex = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' . -hex_four = hex_two hex_two . -hex_one = hex hex . -hex_two = hex_one hex_one . -integer = [ sign ] digit { digit } . -keyword = user_defined_keyword | standard_keyword . -list = '(' [ parameter { ',' parameter } ] ')' . -lower = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' . -non_q_char = special | digit | space | lower | upper . -omitted_parameter = '*' . -page = reverse_solidus 'S' reverse_solidus character . -parameter = typed_parameter | untyped_parameter | omitted_parameter . -parameter_list = parameter { ',' parameter } . -real = [ sign ] digit { digit } '.' { digit } [ 'E' [ sign ] digit { digit } ] . -reverse_solidus = '\' . -sign = '+' | '-' . -simple_entity_instance = entity_instance_name '=' simple_record ';' . -simple_record = keyword '(' [ parameter_list ] ')' . -simple_record_list = simple_record { simple_record } . -space = ' ' . -special = '!' | '"' | '*' | '$' | '%' | '&' | '.' | '#' | '+' | ',' | '-' | '(' | ')' | '?' | '/' | ':' | ';' | '<' | '=' | '>' | '@' | '[' | ']' | '{' | '|' | '}' | '^' | '`' | '~' . -standard_keyword = upper { upper | digit } . -string = '''' { non_q_char | apostrophe apostrophe | reverse_solidus reverse_solidus | control_directive } '''' . -subsuper_record = '(' simple_record_list ')' . -typed_parameter = keyword '(' parameter ')' . -untyped_parameter = '$' | integer | real | string | entity_instance_name | enumeration | binary | list . -upper = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' | '_' . -user_defined_keyword = '!' upper { upper | digit } . diff --git a/content/bnf/iso-10303-patch-schema.bnf b/content/bnf/iso-10303-patch-schema.bnf deleted file mode 100644 index fc5f193..0000000 --- a/content/bnf/iso-10303-patch-schema.bnf +++ /dev/null @@ -1,19 +0,0 @@ -;; iso-10303 patch_schema - -;; These are in addition to the ISO 10303-11 BNF productions. - -DELETE = 'delete' . -END_PATCH_SCHEMA = 'end_patch_schema' . -PATCH_SCHEMA = 'patch_schema' . -RENAME = 'rename' . -TARGET = 'target' . - -decl_head = CONSTANT constant_id | ENTITY entity_id | FUNCTION function_id | PROCEDURE procedure_id - | RULE rule_id | SUBTYPE_CONSTRAINT subtype_constraint_id | TYPE type_id . -patch_cmd_delete = DELETE decl_head ';' . -patch_cmd_rename = RENAME decl_head AS simple_id ';' . -patch_command = patch_cmd_delete | patch_cmd_rename . -patch_constant_decl = CONSTANT constant_id ':' instantiable_type ':=' expression ';' -patch_schema_body = { patch_command | patch_constant_decl | declaration | rule_decl } . -patch_schema_decl = PATCH_SCHEMA schema_id TARGET schema_id ';' patch_schema_body END_PATCH_SCHEMA ';' . -syntax = patch_schema_decl | schema_decl . diff --git a/content/pages/language.adoc b/content/pages/language.adoc deleted file mode 100644 index a869047..0000000 --- a/content/pages/language.adoc +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Introducing the EXPRESS language family ---- - -== Purpose - -EXPRESS is an information modelling language that has been powering what is now -called "smart manufacturing". The language originated from the PDDI program, -which was created in 1982 by the US Air Force at McDonnell Aircraft (now merged -into Boeing). - -The rasion-de-etre of EXPRESS is reflected in its name -- to facilitate -"`expressiveness`" in modelling information. - -Today, EXPRESS is heavily used in advanced manufacturing, including in -the industries of: - -* aerospace -* automotive -* construction -* digital twins -* smart manufacturing - -Since then, EXPRESS has now grown into a family of information -modelling languages, including EXPRESS-G, EXPRESS-I and EXPRESS-X, collectively -referred to as the "`EXPRESS language family`". - -There are a few properties that separate EXPRESS from other information -modelling languages: - -* It is a machine-readable language. -* It is a data modelling language -- not a programming language, even though it -does provide algorithmic functionality - -== The EXPRESS language family - -Each member of the EXPRESS family of languages provides specific functionality -for the information modeller: - -* EXPRESS provides a lexical syntax for modelling information -* EXPRESS-G provides a graphical syntax for modelling information, mirroring -a subset of EXPRESS syntax -* EXPRESS-I provides a lexical syntax for information model instances -* EXPRESS-X provides a lexical syntax for mapping between information models - -== Standardization of EXPRESS - -Given that EXPRESS was immensely useful for the manufacturing supply chain, -it entered a standardization process at the National Bureau of Standards -(now NIST) in 1984. - -In 1986, EXPRESS was proposed by NBS to be an International Standard at ISO, -which the language specification was ultimately published in 1994 as ISO -10303-11:1994. - -In 1994, prior to its standardization, the first authoritative reference -and manual on EXPRESS was published by Doug Schenck and Peter Wilson, the -original inventor of EXPRESS and EXPRESS-G/EXPRESS-X respectively. - -In 2004, the second edition of the language reference ISO 10303-11:2004 -was published at ISO, with David Loffredo and Peter Wilson as its project leaders. - diff --git a/content/pages/references.adoc b/content/pages/references.adoc deleted file mode 100644 index c77fbbd..0000000 --- a/content/pages/references.adoc +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: EXPRESS language references ---- - -== EXPRESS grammar in BNF form - -The following EXPRESS BNF grammars are provided as language references. - -* link:/bnf/iso-10303-11-2004-raw.bnf[ISO 10303-11:2004 BNF (raw)] -* link:/bnf/iso-10303-11-2004.bnf[ISO 10303-11:2004 BNF] -* link:/bnf/iso-10303-14-raw.bnf[ISO 10303-14 BNF (raw)] -* link:/bnf/iso-10303-14.bnf[ISO 10303-14 BNF] -* link:/bnf/iso-10303-21-1994.bnf[ISO 10303-21:1994 BNF] -* link:/bnf/iso-10303-21-2002.bnf[ISO 10303-21:2002 BNF] -* link:/bnf/iso-10303-patch-schema.bnf[ISO 10303 patch schema BNF] - -== External references - -Some of our favorite references on the EXPRESS languages -are listed below. The citations are provided in the -https://www.iso.org/standard/72642.html[ISO 690] format. - -* Douglas SCHENCK, Peter WILSON, _Information modeling: the EXPRESS Way_. Oxford: Oxford University Press, 1994. -Available from: https://global.oup.com/academic/product/information-modeling-the-express-way-9780195087147 - -* Peter WILSON (ed.). _Proceedings of the EUG'91 -- First International EXPRESS User Group Conference_, Houston, TX: 17–18 October 1991 - -* Peter WILSON (ed.). _Proceedings of the EUG'92 – Second International EXPRESS User Group Conference_. Dallas, TX: 17–18 October 1992 - -* Peter WILSON (ed.). _Proceedings of the EUG'93 – Third International EXPRESS User Group Conference_. Berlin, Germany: 2-3 October 1993 - -* Peter WILSON (ed.). _Proceedings of the EUG'94 – 4th International EXPRESS User Group Conference_. Greenville, SC: 13-14 October 1994 - -* Peter WILSON (ed.). _Proceedings of the EUG'95, 5th Annual EXPRESS User Group International Conference_. Grenoble, France: 21-22 October 1995 - -* Peter WILSON (ed.). _Proceedings of the EUG'96, 6th Annual EXPRESS User Group International Conference_. Toronto, Canada: 5-6 October 1996 - -* Jon OWEN. _STEP: An Introduction_. Winchester: Information Geometers, 1993. - -* Object Management Group. _Express Metamodel, version 1.1_. 2015. -Available from: https://www.omg.org/spec/EXPRESS/ - - -//1996 “EXPRESS in STEP its uses, users, and future.” - diff --git a/package-lock.json b/package-lock.json index 6e23701..09de6e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,6 @@ "tsx": "^4.19.4", "typescript": "^5.7.3", "vite": "^5.4.14", - "vite-plugin-sitemap": "^0.7.1", "vite-ssg": "^0.23.7", "vue-tsc": "^2.2.7" } @@ -4096,12 +4095,6 @@ } } }, - "node_modules/vite-plugin-sitemap": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/vite-plugin-sitemap/-/vite-plugin-sitemap-0.7.1.tgz", - "integrity": "sha512-4NRTkiWytLuAmcikckrLcLl9iYA20+5v6l8XshcOrzxH1WR8H0O3S6sTQYfjMrE8su/LG6Y0cTodvOdcOIxaLw==", - "dev": true - }, "node_modules/vite-ssg": { "version": "0.23.8", "resolved": "https://registry.npmjs.org/vite-ssg/-/vite-ssg-0.23.8.tgz", diff --git a/package.json b/package.json index 387e36f..0e9af3b 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "tsx": "^4.19.4", "typescript": "^5.7.3", "vite": "^5.4.14", - "vite-plugin-sitemap": "^0.7.1", "vite-ssg": "^0.23.7", "vue-tsc": "^2.2.7" } diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png deleted file mode 100644 index 136bf47..0000000 Binary files a/public/favicon-16x16.png and /dev/null differ diff --git a/public/favicon.png b/public/favicon.png deleted file mode 100644 index 7d151a4..0000000 Binary files a/public/favicon.png and /dev/null differ diff --git a/public/logos/logo-lang-express.svg b/public/logos/logo-lang-express.svg deleted file mode 100644 index c641397..0000000 --- a/public/logos/logo-lang-express.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="38.27cm" height="11.92cm" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1084.81 338"><defs><linearGradient id="uuid-fa0851b6-d4b1-4808-9678-1fc337c07796" x1="80.41" y1="124.72" x2="300.75" y2="124.72" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".19" stop-color="#feffff" stop-opacity="0"/><stop offset=".22" stop-color="#feffff" stop-opacity="0"/><stop offset=".4" stop-color="#c9cece" stop-opacity=".22"/><stop offset=".69" stop-color="#3c4c49" stop-opacity=".83"/><stop offset=".76" stop-color="#152824"/></linearGradient><linearGradient id="uuid-06624f02-7d36-464a-8c34-0eda17d391d8" x1="230" y1="227.24" x2="121.35" y2="227.24" xlink:href="#uuid-fa0851b6-d4b1-4808-9678-1fc337c07796"/></defs><g style="isolation:isolate;"><g id="uuid-d7c00c36-1c5c-4b89-941f-618e4b237f84"><path d="m512.24,195.41v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#e99262; stroke-width:0px;"/><path d="m571.75,195.41l24-33.2v9.44l-22.96-32.24h14.64l15.92,22.4-6.24.16,15.84-22.56h14l-22.88,31.68v-9.28l24.24,33.6h-14.96l-16.48-23.76h5.92l-16.24,23.76h-14.8Z" style="fill:#e99262; stroke-width:0px;"/><path d="m644.48,195.41v-56h24.24c5.01,0,9.33.81,12.96,2.44,3.63,1.63,6.43,3.96,8.4,7,1.97,3.04,2.96,6.64,2.96,10.8s-.99,7.83-2.96,10.84c-1.97,3.01-4.77,5.35-8.4,7-3.63,1.65-7.95,2.48-12.96,2.48h-17.12l5.92-5.84v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Z" style="fill:#e99262; stroke-width:0px;"/><path d="m711.03,195.41v-56h23.92c7.79,0,13.84,1.8,18.16,5.4,4.32,3.6,6.48,8.55,6.48,14.84,0,4.21-.99,7.83-2.96,10.84-1.97,3.01-4.77,5.31-8.4,6.88-3.63,1.57-7.95,2.36-12.96,2.36h-17.12l5.92-5.6v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Zm22.64,19.84l-14.08-20.32h13.92l14.08,20.32h-13.92Z" style="fill:#e99262; stroke-width:0px;"/><path d="m779.23,195.41v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#e99262; stroke-width:0px;"/><path d="m859.49,196.37c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84-2.68,1.32-3.4,2.28c-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12s4.05,1.01,6.4,1.52c2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#e99262; stroke-width:0px;"/><path d="m921.07,196.37c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84-2.68,1.32-3.4,2.28c-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12s4.05,1.01,6.4,1.52c2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#e99262; stroke-width:0px;"/><path d="m204.85,225.43h-60.72c-17.43,0-31.61-14.18-31.61-31.61v-11.86h64.53v-31.79h-64.53v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.3-30.11c-11.32-13.02-24.3-15.58-30.78-15.99h-80.36c-34.96,0-63.4,28.44-63.4,63.4v43.95c0,34.96,28.44,63.4,63.4,63.4h32.94l27.77-31.79Z" style="fill:#e99262; stroke-width:0px;"/><g style="opacity:.5;"><path d="m255.26,102.45c-11.31-13.01-24.3-15.57-30.77-15.98h-80.36c-34.96,0-63.4,28.44-63.4,63.4v13.1l31.79-12.8v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.31-30.11Z" style="fill:url(#uuid-fa0851b6-d4b1-4808-9678-1fc337c07796); mix-blend-mode:multiply; stroke-width:0px;"/></g><path d="m376.86,241.58l-13.73-15.83h-.16s-39.85-45.61-39.85-45.61l-.04.04-68.9-78.87c-11.05-11.98-23.42-14.44-29.69-14.84h-25.49l67.64,77.42.04-.04,68.9,78.87c11.06,11.98,23.42,14.44,29.69,14.84h25.49l-.02-.02h13.72c-7.55-1.51-18.01-5.56-27.6-15.95Z" style="fill:#ea9262; stroke-width:0px;"/><path d="m257.12,180.18l-.04-.04-67.64,77.42h25.49c5.39,0,18.64-2.86,29.69-14.84l39.94-45-21.08-24.13-6.35,6.59Z" style="fill:#ea9262; stroke-width:0px;"/><path d="m177.07,257.22l27.77-31.79h-60.72c-16.27,0-29.7-12.36-31.41-28.18,1.8,33.36,29.43,59.97,63.23,59.97h1.13Z" style="fill:url(#uuid-06624f02-7d36-464a-8c34-0eda17d391d8); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m395.46,86.66s1.89-.19,2.12-.21c-9.53,0-16.38,0-16.37,0h-25.49c-.77,0-1.58.13-2.34.23-6.7.85-17.54,3.98-27.35,14.61l-29.66,33.88,21.1,24.15,29.26-33.39s.07-.06.11-.09l21.29-24.55c9.81-10.63,20.65-13.76,27.35-14.61Z" style="fill:#ea9262; stroke-width:0px;"/></g></g></svg> \ No newline at end of file diff --git a/public/logos/logo-lang-expressg.svg b/public/logos/logo-lang-expressg.svg deleted file mode 100644 index c802b43..0000000 --- a/public/logos/logo-lang-expressg.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="40.82cm" height="11.92cm" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1157.08 338"><defs><linearGradient id="uuid-dab2f83f-0595-44ea-898f-1621dadde45d" x1="49.76" y1="124.72" x2="270.1" y2="124.72" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".19" stop-color="#feffff" stop-opacity="0"/><stop offset=".22" stop-color="#feffff" stop-opacity="0"/><stop offset=".4" stop-color="#c9cece" stop-opacity=".22"/><stop offset=".69" stop-color="#3c4c49" stop-opacity=".83"/><stop offset=".76" stop-color="#152824"/></linearGradient><linearGradient id="uuid-b860bb22-00d9-4efd-9e2a-655b5fce30d3" x1="199.35" y1="227.24" x2="90.71" y2="227.24" xlink:href="#uuid-dab2f83f-0595-44ea-898f-1621dadde45d"/><linearGradient id="uuid-5897ce39-a715-43cd-aaba-78f670bc4f91" x1="296.11" y1="220.84" x2="375.76" y2="220.84" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".98" stop-color="#151e28" stop-opacity=".3"/></linearGradient><linearGradient id="uuid-71598ef1-6c9c-48a6-b5da-c0bac50122d7" x1="295.82" y1="117.57" x2="375.48" y2="117.57" xlink:href="#uuid-5897ce39-a715-43cd-aaba-78f670bc4f91"/><linearGradient id="uuid-498869ce-72fe-490f-8711-045486db956d" x1="957.48" y1="109.11" x2="880.99" y2="109.11" gradientTransform="translate(1284.31) rotate(-180) scale(.95 -1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".19" stop-color="#fdfefe" stop-opacity="0"/><stop offset=".22" stop-color="#fdfefe" stop-opacity="0"/><stop offset=".4" stop-color="#c9cbce" stop-opacity=".22"/><stop offset=".69" stop-color="#3c444c" stop-opacity=".83"/><stop offset=".76" stop-color="#151e28"/></linearGradient><linearGradient id="uuid-caaf0e8e-29e7-40bb-9d70-98d1872a895f" x1="448.81" y1="227.24" x2="340.16" y2="227.24" xlink:href="#uuid-dab2f83f-0595-44ea-898f-1621dadde45d"/></defs><g style="isolation:isolate;"><g id="uuid-e046855a-cec5-4c9b-9f54-3f74e88d2651"><path d="m542.58,197.25v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m602.09,197.25l24-33.2v9.44l-22.96-32.24h14.64l15.92,22.4-6.24.16,15.84-22.56h14l-22.88,31.68v-9.28l24.24,33.6h-14.96l-16.48-23.76h5.92l-16.24,23.76h-14.8Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m674.82,197.25v-56h24.24c5.01,0,9.33.81,12.96,2.44,3.63,1.63,6.43,3.96,8.4,7,1.97,3.04,2.96,6.64,2.96,10.8s-.99,7.83-2.96,10.84c-1.97,3.01-4.77,5.35-8.4,7-3.63,1.65-7.95,2.48-12.96,2.48h-17.12l5.92-5.84v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m741.37,197.25v-56h23.92c7.79,0,13.84,1.8,18.16,5.4,4.32,3.6,6.48,8.55,6.48,14.84,0,4.21-.99,7.83-2.96,10.84-1.97,3.01-4.77,5.31-8.4,6.88-3.63,1.57-7.95,2.36-12.96,2.36h-17.12l5.92-5.6v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Zm22.64,19.84l-14.08-20.32h13.92l14.08,20.32h-13.92Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m809.57,197.25v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m889.83,198.21c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64s1.8,4.36,1.8,7.24c0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m951.41,198.21c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64s1.8,4.36,1.8,7.24c0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m992.97,179.73v-10h22.64v10h-22.64Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m1066.26,198.21c-4.43,0-8.51-.71-12.24-2.12-3.73-1.41-6.96-3.43-9.68-6.04-2.72-2.61-4.84-5.68-6.36-9.2-1.52-3.52-2.28-7.39-2.28-11.6s.76-8.08,2.28-11.6c1.52-3.52,3.67-6.59,6.44-9.2,2.77-2.61,6.03-4.63,9.76-6.04,3.73-1.41,7.84-2.12,12.32-2.12,4.96,0,9.43.83,13.4,2.48,3.97,1.65,7.32,4.05,10.04,7.2l-8.24,7.68c-2.08-2.19-4.32-3.8-6.72-4.84-2.4-1.04-5.04-1.56-7.92-1.56-2.67,0-5.12.44-7.36,1.32-2.24.88-4.17,2.12-5.8,3.72-1.63,1.6-2.88,3.49-3.76,5.68-.88,2.19-1.32,4.61-1.32,7.28s.44,4.95,1.32,7.16c.88,2.21,2.13,4.12,3.76,5.72,1.63,1.6,3.55,2.85,5.76,3.76,2.21.91,4.65,1.36,7.32,1.36s5.05-.43,7.48-1.28c2.43-.85,4.79-2.27,7.08-4.24l7.36,9.36c-3.09,2.35-6.64,4.12-10.64,5.32s-8,1.8-12,1.8Zm22.64-7.12l-11.84-1.76v-20.96h11.84v22.72Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m174.2,225.43h-60.72c-17.43,0-31.61-14.18-31.61-31.61v-11.86h64.53v-31.79h-64.53v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.3-30.11c-11.32-13.02-24.3-15.58-30.78-15.99h-80.36c-34.96,0-63.4,28.44-63.4,63.4v43.95c0,34.96,28.44,63.4,63.4,63.4h32.94l27.77-31.79Z" style="fill:#4ec0aa; stroke-width:0px;"/><g style="opacity:.5;"><path d="m224.61,102.45c-11.31-13.01-24.3-15.57-30.77-15.98h-80.36c-34.96,0-63.4,28.44-63.4,63.4v13.1l31.79-12.8v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.31-30.11Z" style="fill:url(#uuid-dab2f83f-0595-44ea-898f-1621dadde45d); mix-blend-mode:multiply; stroke-width:0px;"/></g><path d="m346.21,241.58l-13.73-15.83h-.16s-39.85-45.61-39.85-45.61l-.04.04-68.9-78.87c-11.05-11.98-23.42-14.44-29.69-14.84h-25.49l67.64,77.42.04-.04,68.9,78.87c11.06,11.98,23.42,14.44,29.69,14.84h25.49l-.02-.02h13.72c-7.55-1.51-18.01-5.56-27.6-15.95Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m226.48,180.18l-.04-.04-67.64,77.42h25.49c5.39,0,18.64-2.86,29.69-14.84l39.94-45-21.08-24.13-6.35,6.59Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m146.42,257.22l27.77-31.79h-60.72c-16.27,0-29.7-12.36-31.41-28.18,1.8,33.36,29.43,59.97,63.23,59.97h1.13Z" style="fill:url(#uuid-b860bb22-00d9-4efd-9e2a-655b5fce30d3); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m364.82,86.66s1.89-.19,2.12-.21c-9.53,0-16.38,0-16.37,0h-25.49c-.77,0-1.58.13-2.34.23-6.7.85-17.54,3.98-27.35,14.61l-29.66,33.88,21.1,24.15,29.26-33.39s.07-.06.11-.09l21.29-24.55c9.81-10.63,20.65-13.76,27.35-14.61Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m346.5,241.58l-13.73-15.83h-.16s-36.37-41.63-36.37-41.63l-.13,28.75c0,10.04,3.81,20.88,10.2,30.98,10.77,10.99,22.54,13.34,28.6,13.72h25.49l-.02-.02h13.49s0-.04,0-.04c-7.53-1.56-17.88-5.63-27.38-15.92Z" style="fill:url(#uuid-5897ce39-a715-43cd-aaba-78f670bc4f91); stroke-width:0px;"/><path d="m316.18,125.82l21.29-24.55c9.81-10.63,20.65-13.76,27.35-14.61,0,0,1.89-.19,2.12-.21-9.53,0-16.38,0-16.37,0h-25.49c-.77,0-1.58.13-2.34.23-2.74.35-6.19,1.09-9.96,2.56-10.11,11.71-16.55,24.95-16.55,35.72l-.11,23.75,19.96-22.78s.07-.06.11-.09Z" style="fill:url(#uuid-71598ef1-6c9c-48a6-b5da-c0bac50122d7); stroke-width:0px;"/><path d="m438.2,131.73h32.4c-1.07-22.63-32.4-45.31-51.09-45.31h-31.03c-27.06,0-54.66,30.09-54.66,49.58l-.3,61.25c.8,28.5,23.87,56.06,56.96,59.97h32.84c23.53-3.85,49.11-21.07,49.11-55.76l-.07-51.79h-68.81v29.68h37.94s.15,11.84.15,17.22c0,20.29-10.67,28.6-25.48,29.14l-21.76-.04c-14.37-.32-29.69-10.68-30.21-26.54l.08-57.27c0-10.12,13.79-23.58,28.94-23.58,0,0,25.78,0,25.86,0,10.98.05,14.04,5.44,19.13,13.45Z" style="fill:#4ec0aa; stroke-width:0px;"/><path d="m384.46,86.48c43.35,0,53.79,45.26,53.79,45.26,0,0-2.15-13.72-19.13-13.55l-24.07.08-10.6-31.79Z" style="fill:url(#uuid-498869ce-72fe-490f-8711-045486db956d); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m395.88,257.22l27.77-31.79h-60.72c-16.27,0-29.7-12.36-31.41-28.18,1.8,33.36,29.43,59.97,63.23,59.97h1.13Z" style="fill:url(#uuid-caaf0e8e-29e7-40bb-9d70-98d1872a895f); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/></g></g></svg> \ No newline at end of file diff --git a/public/logos/logo-lang-expressi.svg b/public/logos/logo-lang-expressi.svg deleted file mode 100644 index 7a10b5c..0000000 --- a/public/logos/logo-lang-expressi.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="38.27cm" height="11.92cm" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1084.81 338"><defs><linearGradient id="uuid-fd7dc90f-ca44-435c-9c61-5fb262e57675" x1="80.41" y1="124.72" x2="300.75" y2="124.72" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".19" stop-color="#feffff" stop-opacity="0"/><stop offset=".22" stop-color="#feffff" stop-opacity="0"/><stop offset=".4" stop-color="#c9cece" stop-opacity=".22"/><stop offset=".69" stop-color="#3c4c49" stop-opacity=".83"/><stop offset=".76" stop-color="#152824"/></linearGradient><linearGradient id="uuid-0be09724-4e37-4c1f-aa23-a233111bce74" x1="230" y1="227.24" x2="121.35" y2="227.24" xlink:href="#uuid-fd7dc90f-ca44-435c-9c61-5fb262e57675"/><linearGradient id="uuid-8da3d3cc-0916-4e40-ad04-d6d0a998ebff" x1="368.09" y1="272.25" x2="404.46" y2="272.25" gradientTransform="translate(0 524.06) scale(1 -1.03)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".19" stop-color="#fdfefe" stop-opacity="0"/><stop offset=".22" stop-color="#fdfefe" stop-opacity="0"/><stop offset=".29" stop-color="#9ea2a6" stop-opacity=".41"/><stop offset=".39" stop-color="#50575e" stop-opacity=".74"/><stop offset=".52" stop-color="#222b34" stop-opacity=".94"/><stop offset=".76" stop-color="#151e28"/></linearGradient><linearGradient id="uuid-f68385c5-3130-460a-9861-bc9359fbd377" x1="335.2" y1="158.69" x2="404.46" y2="158.69" gradientTransform="translate(0 396.42) scale(1 -1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".05" stop-color="#feffff" stop-opacity="0"/><stop offset=".06" stop-color="#feffff" stop-opacity="0"/><stop offset=".65" stop-color="#505e5b" stop-opacity=".22"/><stop offset=".79" stop-color="#152824" stop-opacity=".3"/></linearGradient><linearGradient id="uuid-80e42f50-8d99-49bf-9938-5e05c0d2b84f" x1="326.03" y1="106.13" x2="397.58" y2="106.13" gradientTransform="matrix(1,0,0,1,0,0)" xlink:href="#uuid-f68385c5-3130-460a-9861-bc9359fbd377"/></defs><g style="isolation:isolate;"><g id="uuid-b31f6b14-1016-4b68-b4cc-7be5febf11de"><path d="m512.24,197.25v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#d85577; stroke-width:0px;"/><path d="m571.75,197.25l24-33.2v9.44l-22.96-32.24h14.64l15.92,22.4-6.24.16,15.84-22.56h14l-22.88,31.68v-9.28l24.24,33.6h-14.96l-16.48-23.76h5.92l-16.24,23.76h-14.8Z" style="fill:#d85577; stroke-width:0px;"/><path d="m644.48,197.25v-56h24.24c5.01,0,9.33.81,12.96,2.44,3.63,1.63,6.43,3.96,8.4,7,1.97,3.04,2.96,6.64,2.96,10.8s-.99,7.83-2.96,10.84c-1.97,3.01-4.77,5.35-8.4,7-3.63,1.65-7.95,2.48-12.96,2.48h-17.12l5.92-5.84v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Z" style="fill:#d85577; stroke-width:0px;"/><path d="m711.03,197.25v-56h23.92c7.79,0,13.84,1.8,18.16,5.4,4.32,3.6,6.48,8.55,6.48,14.84,0,4.21-.99,7.83-2.96,10.84-1.97,3.01-4.77,5.31-8.4,6.88-3.63,1.57-7.95,2.36-12.96,2.36h-17.12l5.92-5.6v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Zm22.64,19.84l-14.08-20.32h13.92l14.08,20.32h-13.92Z" style="fill:#d85577; stroke-width:0px;"/><path d="m779.23,197.25v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#d85577; stroke-width:0px;"/><path d="m859.49,198.21c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84-2.68,1.32-3.4,2.28c-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12s4.05,1.01,6.4,1.52c2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#d85577; stroke-width:0px;"/><path d="m921.07,198.21c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84-2.68,1.32-3.4,2.28c-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12s4.05,1.01,6.4,1.52c2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#d85577; stroke-width:0px;"/><path d="m962.63,179.73v-10h22.64v10h-22.64Z" style="fill:#d85577; stroke-width:0px;"/><path d="m1006.43,197.25v-56h13.04v56h-13.04Z" style="fill:#d85577; stroke-width:0px;"/><path d="m204.85,225.43h-60.72c-17.43,0-31.61-14.18-31.61-31.61v-11.86h64.53v-31.79h-64.53v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.3-30.11c-11.32-13.02-24.3-15.58-30.78-15.99h-80.36c-34.96,0-63.4,28.44-63.4,63.4v43.95c0,34.96,28.44,63.4,63.4,63.4h32.94l27.77-31.79Z" style="fill:#d85577; stroke-width:0px;"/><g style="opacity:.5;"><path d="m255.26,102.45c-11.31-13.01-24.3-15.57-30.77-15.98h-80.36c-34.96,0-63.4,28.44-63.4,63.4v13.1l31.79-12.8v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.31-30.11Z" style="fill:url(#uuid-fd7dc90f-ca44-435c-9c61-5fb262e57675); mix-blend-mode:multiply; stroke-width:0px;"/></g><path d="m376.86,241.58l-13.73-15.83-40.01-45.61-.04.04-68.9-78.87c-11.05-11.98-23.42-14.44-29.69-14.84h-25.49l67.64,77.42.04-.04,68.9,78.87c11.06,11.98,23.42,14.44,29.69,14.84h25.49l-.02-.02h13.72c-7.55-1.51-18.01-5.56-27.6-15.95Z" style="fill:#d85577; stroke-width:0px;"/><path d="m257.12,180.18l-.04-.04-67.64,77.42h25.49c5.39,0,18.64-2.86,29.69-14.84l39.94-45-21.08-24.13-6.35,6.59Z" style="fill:#d85577; stroke-width:0px;"/><path d="m177.07,257.22l27.77-31.79h-60.72c-16.27,0-29.7-12.36-31.41-28.18,1.8,33.36,29.43,59.97,63.23,59.97h1.13Z" style="fill:url(#uuid-0be09724-4e37-4c1f-aa23-a233111bce74); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m395.46,86.66s1.89-.19,2.12-.21c-9.53,0-16.38,0-16.37,0h-25.49c-.77,0-1.58.13-2.34.23-6.7.85-17.54,3.98-27.35,14.61l-29.66,33.88,21.1,24.15,29.26-33.39s.07-.06.11-.09l21.29-24.55c9.81-10.63,20.65-13.76,27.35-14.61Z" style="fill:#d85577; stroke-width:0px;"/><path d="m404.46,257.56l-36.37-.1v-30.3c4.26,21.29,29.67,29.52,36.37,30.39Z" style="fill:url(#uuid-8da3d3cc-0916-4e40-ad04-d6d0a998ebff); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><g style="mix-blend-mode:multiply;"><path d="m404.46,257.55s-14.09-.28-14.09-.27h-25.49c-.77,0-1.58-.13-2.34-.23-6.7-.85-17.54-3.98-27.35-14.61,0,0,20.77-24.57,20.8-24.54l21.29,24.55c9.81,10.63,20.48,14.25,27.18,15.1Z" style="fill:url(#uuid-f68385c5-3130-460a-9861-bc9359fbd377); stroke-width:0px;"/></g><g style="mix-blend-mode:multiply;"><path d="m395.46,86.66s1.89-.19,2.12-.21c-9.53,0-16.38,0-16.37,0h-25.49c-.77,0-1.58.13-2.34.23-6.7.85-17.54,3.98-27.35,14.61,0,0,20.77,24.57,20.8,24.54l21.29-24.55c9.81-10.63,20.65-13.76,27.35-14.61Z" style="fill:url(#uuid-80e42f50-8d99-49bf-9938-5e05c0d2b84f); stroke-width:0px;"/></g><rect x="397.58" y="86.44" width="36.37" height="171.02" style="fill:#d85577; stroke-width:0px;"/></g></g></svg> \ No newline at end of file diff --git a/public/logos/logo-lang-expressq.svg b/public/logos/logo-lang-expressq.svg deleted file mode 100644 index b2a723c..0000000 --- a/public/logos/logo-lang-expressq.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="40.82cm" height="11.92cm" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1157.08 338"><defs><linearGradient id="uuid-7c02d728-3ff4-4f71-bc74-9e2dd38dbb45" x1="28.46" y1="143.54" x2="248.8" y2="143.54" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".19" stop-color="#feffff" stop-opacity="0"/><stop offset=".22" stop-color="#feffff" stop-opacity="0"/><stop offset=".4" stop-color="#c9cece" stop-opacity=".22"/><stop offset=".69" stop-color="#3c4c49" stop-opacity=".83"/><stop offset=".76" stop-color="#152824"/></linearGradient><linearGradient id="uuid-b8d3ba02-dfd3-4136-a547-ebfc52a35d29" x1="178.06" y1="246.05" x2="69.41" y2="246.05" xlink:href="#uuid-7c02d728-3ff4-4f71-bc74-9e2dd38dbb45"/><linearGradient id="uuid-b6c39ed8-5605-4987-aa61-88a6e2ef8c3e" x1="274.81" y1="239.65" x2="354.47" y2="239.65" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".98" stop-color="#151e28" stop-opacity=".3"/></linearGradient><linearGradient id="uuid-ae63dae5-a499-49d2-9841-fb8c86d9eb7a" x1="274.53" y1="136.39" x2="354.19" y2="136.39" xlink:href="#uuid-b6c39ed8-5605-4987-aa61-88a6e2ef8c3e"/><linearGradient id="uuid-7adf9194-75e6-4962-9591-e44828950591" x1="977.31" y1="127.92" x2="900.82" y2="127.92" gradientTransform="translate(1284.31) rotate(-180) scale(.95 -1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".19" stop-color="#fdfefe" stop-opacity="0"/><stop offset=".22" stop-color="#fdfefe" stop-opacity="0"/><stop offset=".4" stop-color="#c9cbce" stop-opacity=".22"/><stop offset=".69" stop-color="#3c444c" stop-opacity=".83"/><stop offset=".76" stop-color="#151e28"/></linearGradient><linearGradient id="uuid-7c912ff4-f6d1-4cd3-9203-38d3f399b1a9" x1="343.71" y1="323.7" x2="237.82" y2="323.7" gradientTransform="translate(82.82 -77.65)" xlink:href="#uuid-7c02d728-3ff4-4f71-bc74-9e2dd38dbb45"/></defs><g style="isolation:isolate;"><g id="uuid-b634545b-64d8-428e-9ae4-e2c1d13b1a95"><path d="m542.58,197.25v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m602.09,197.25l24-33.2v9.44l-22.96-32.24h14.64l15.92,22.4-6.24.16,15.84-22.56h14l-22.88,31.68v-9.28l24.24,33.6h-14.96l-16.48-23.76h5.92l-16.24,23.76h-14.8Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m674.82,197.25v-56h24.24c5.01,0,9.33.81,12.96,2.44,3.63,1.63,6.43,3.96,8.4,7,1.97,3.04,2.96,6.64,2.96,10.8s-.99,7.83-2.96,10.84c-1.97,3.01-4.77,5.35-8.4,7-3.63,1.65-7.95,2.48-12.96,2.48h-17.12l5.92-5.84v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m741.37,197.25v-56h23.92c7.79,0,13.84,1.8,18.16,5.4,4.32,3.6,6.48,8.55,6.48,14.84,0,4.21-.99,7.83-2.96,10.84-1.97,3.01-4.77,5.31-8.4,6.88-3.63,1.57-7.95,2.36-12.96,2.36h-17.12l5.92-5.6v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Zm22.64,19.84l-14.08-20.32h13.92l14.08,20.32h-13.92Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m809.57,197.25v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m889.83,198.21c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64s1.8,4.36,1.8,7.24c0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m951.41,198.21c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64s1.8,4.36,1.8,7.24c0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m992.97,179.73v-10h22.64v10h-22.64Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m1066.34,198.21c-4.37,0-8.43-.72-12.16-2.16-3.73-1.44-6.99-3.47-9.76-6.08-2.77-2.61-4.92-5.68-6.44-9.2-1.52-3.52-2.28-7.36-2.28-11.52s.76-8.07,2.28-11.56c1.52-3.49,3.67-6.55,6.44-9.16,2.77-2.61,6.01-4.64,9.72-6.08,3.71-1.44,7.77-2.16,12.2-2.16s8.49.71,12.2,2.12c3.71,1.41,6.95,3.43,9.72,6.04,2.77,2.61,4.92,5.68,6.44,9.2,1.52,3.52,2.28,7.39,2.28,11.6s-.76,8.01-2.28,11.56c-1.52,3.55-3.67,6.63-6.44,9.24-2.77,2.61-6.01,4.63-9.72,6.04-3.71,1.41-7.77,2.12-12.2,2.12Zm0-10.96c2.51,0,4.81-.44,6.92-1.32,2.11-.88,3.96-2.12,5.56-3.72,1.6-1.6,2.84-3.51,3.72-5.72.88-2.21,1.32-4.63,1.32-7.24s-.44-5.09-1.32-7.28c-.88-2.19-2.12-4.08-3.72-5.68-1.6-1.6-3.45-2.84-5.56-3.72-2.11-.88-4.41-1.32-6.92-1.32s-4.83.44-6.96,1.32c-2.13.88-3.99,2.12-5.56,3.72-1.57,1.6-2.8,3.49-3.68,5.68-.88,2.19-1.32,4.61-1.32,7.28s.44,5.03,1.32,7.24c.88,2.21,2.11,4.12,3.68,5.72,1.57,1.6,3.43,2.84,5.56,3.72,2.13.88,4.45,1.32,6.96,1.32Zm18.32,22.88c-2.19,0-4.25-.25-6.2-.76-1.95-.51-3.87-1.29-5.76-2.36-1.89-1.07-3.85-2.49-5.88-4.28-2.03-1.79-4.29-4.01-6.8-6.68l13.68-3.44c1.44,1.97,2.77,3.55,4,4.72,1.23,1.17,2.41,2.01,3.56,2.52,1.15.51,2.36.76,3.64.76,3.41,0,6.45-1.41,9.12-4.24l5.76,6.88c-3.79,4.59-8.83,6.88-15.12,6.88Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m152.9,244.25h-60.72c-17.43,0-31.61-14.18-31.61-31.61v-11.86h64.53v-31.79H60.58v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.3-30.11c-11.32-13.02-24.3-15.58-30.78-15.99h-80.36c-34.96,0-63.4,28.44-63.4,63.4v43.95c0,34.96,28.44,63.4,63.4,63.4h32.94l27.77-31.79Z" style="fill:#ed1c24; stroke-width:0px;"/><g style="opacity:.5;"><path d="m203.31,121.27c-11.31-13.01-24.3-15.57-30.77-15.98h-80.36c-34.96,0-63.4,28.44-63.4,63.4v13.1l31.79-12.8v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.31-30.11Z" style="fill:url(#uuid-7c02d728-3ff4-4f71-bc74-9e2dd38dbb45); mix-blend-mode:multiply; stroke-width:0px;"/></g><path d="m324.92,260.4l-13.73-15.83h-.16s-39.85-45.61-39.85-45.61l-.04.04-68.9-78.87c-11.05-11.98-23.42-14.44-29.69-14.84h-25.49l67.64,77.42.04-.04,68.9,78.87c11.06,11.98,23.42,14.44,29.69,14.84h25.49l-.02-.02h13.72c-7.55-1.51-18.01-5.56-27.6-15.95Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m205.18,198.99l-.04-.04-67.64,77.42h25.49c5.39,0,18.64-2.86,29.69-14.84l39.94-45-21.08-24.13-6.35,6.59Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m125.13,276.04l27.77-31.79h-60.72c-16.27,0-29.7-12.36-31.41-28.18,1.8,33.36,29.43,59.97,63.23,59.97h1.13Z" style="fill:url(#uuid-b8d3ba02-dfd3-4136-a547-ebfc52a35d29); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m343.52,105.48s1.89-.19,2.12-.21c-9.53,0-16.38,0-16.37,0h-25.49c-.77,0-1.58.13-2.34.23-6.7.85-17.54,3.98-27.35,14.61l-29.66,33.88,21.1,24.15,29.26-33.39s.07-.06.11-.09l21.29-24.55c9.81-10.63,20.65-13.76,27.35-14.61Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m325.2,260.4l-13.73-15.83h-.16s-36.37-41.63-36.37-41.63l-.13,28.75c0,10.04,3.81,20.88,10.2,30.98,10.77,10.99,22.54,13.34,28.6,13.72h25.49l-.02-.02h13.49s0-.04,0-.04c-7.53-1.56-17.88-5.63-27.38-15.92Z" style="fill:url(#uuid-b6c39ed8-5605-4987-aa61-88a6e2ef8c3e); stroke-width:0px;"/><path d="m294.89,144.64l21.29-24.55c9.81-10.63,20.65-13.76,27.35-14.61,0,0,1.89-.19,2.12-.21-9.53,0-16.38,0-16.37,0h-25.49c-.77,0-1.58.13-2.34.23-2.74.35-6.19,1.09-9.96,2.56-10.11,11.71-16.55,24.95-16.55,35.72l-.11,23.75,19.96-22.78s.07-.06.11-.09Z" style="fill:url(#uuid-ae63dae5-a499-49d2-9841-fb8c86d9eb7a); stroke-width:0px;"/><path d="m419.32,150.55s-5.91-12.32-19.13-13.55l-24.07.08-10.6-31.79c43.35,0,53.79,45.26,53.79,45.26" style="fill:url(#uuid-7adf9194-75e6-4962-9591-e44828950591); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><polygon points="422.08 270.07 421.54 269.52 421.54 269.52 422.08 270.07 429.47 277.45 472.28 278.29 472.28 278.29 429.47 277.45 422.08 270.07" style="fill:none; stroke-width:0px;"/><path d="m382.38,244.51l-9.28-.02c-14.37-.32-29.69-10.69-30.21-26.54l.08-57.27c0-10.12,13.79-23.58,28.94-23.58,0,0,25.78,0,25.86,0,10.98.05,16.46,5.44,21.55,13.45l.1.12s-.14,42.24-.19,60.43l6.95,6.95,20.57,20.57c1.54-5.33,2.4-11.27,2.4-17.86l.13-70.23h.01v-4.01c-1.07-22.63-32.4-41.29-51.09-41.29h-31.03c-27.06,0-54.66,30.09-54.66,49.58l-.3,61.25c.8,28.5,23.87,56.06,56.96,59.97h32.84c3.21-.53,6.42-1.3,9.57-2.32l-22.21-22.21-7-7Z" style="fill:#ed1c24; stroke-width:0px;"/><polygon points="443.11 249.13 472.28 278.29 472.28 278.29 443.11 249.13 442.68 248.7 442.68 248.7 443.11 249.13" style="fill:#fff; stroke-width:0px;"/><path d="m413.68,237.15c.9-.96,1.72-2.04,2.44-3.24-.72,1.2-1.54,2.27-2.44,3.24Z" style="fill:#fff; stroke-width:0px;"/><path d="m443.11,249.13l-.43-.43-23.57-23.57c-.51,3.49-1.56,6.39-3,8.79-.72,1.2-1.54,2.27-2.44,3.24-2.7,2.88-6.11,4.74-9.76,5.88-.71.22-1.43.41-2.16.58-1.73.43-3.5.69-5.27.83-.01,0-.02,0-.03,0l25.08,25.08.55.55,7.38,7.38,42.82.84-29.17-29.17Z" style="fill:#ed1c24; stroke-width:0px;"/><path d="m402.02,276.04l-19.64-31.53-37.27-.26c-16.87.19-31.17-12.36-32.89-28.18,1.8,33.36,28.27,59.97,64.7,59.97h25.09Z" style="fill:url(#uuid-7c912ff4-f6d1-4cd3-9203-38d3f399b1a9); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m419.32,150.55s-6.96-14.08-21.55-13.45h-21.64s-10.6-31.8-10.6-31.8c43.35,0,53.79,45.26,53.79,45.26" style="fill:url(#uuid-7adf9194-75e6-4962-9591-e44828950591); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/></g></g></svg> \ No newline at end of file diff --git a/public/logos/logo-lang-expressx.svg b/public/logos/logo-lang-expressx.svg deleted file mode 100644 index 9f20350..0000000 --- a/public/logos/logo-lang-expressx.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="40.82cm" height="11.92cm" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1157.08 338"><defs><linearGradient id="uuid-6d2b71a2-255e-424a-9d77-ac93e3ddc274" x1="49.76" y1="124.72" x2="270.1" y2="124.72" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".19" stop-color="#feffff" stop-opacity="0"/><stop offset=".22" stop-color="#feffff" stop-opacity="0"/><stop offset=".4" stop-color="#c9cece" stop-opacity=".22"/><stop offset=".69" stop-color="#3c4c49" stop-opacity=".83"/><stop offset=".76" stop-color="#152824"/></linearGradient><linearGradient id="uuid-27dd3906-d055-4c12-899f-c441da7ef202" x1="199.35" y1="227.24" x2="90.71" y2="227.24" xlink:href="#uuid-6d2b71a2-255e-424a-9d77-ac93e3ddc274"/></defs><g style="isolation:isolate;"><g id="uuid-b03cfe87-074f-4350-94fd-e9027916ebab"><path d="m481.59,197.25v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#077783; stroke-width:0px;"/><path d="m541.1,197.25l24-33.2v9.44l-22.96-32.24h14.64l15.92,22.4-6.24.16,15.84-22.56h14l-22.88,31.68v-9.28l24.24,33.6h-14.96l-16.48-23.76h5.92l-16.24,23.76h-14.8Z" style="fill:#077783; stroke-width:0px;"/><path d="m613.83,197.25v-56h24.24c5.01,0,9.33.81,12.96,2.44,3.63,1.63,6.43,3.96,8.4,7,1.97,3.04,2.96,6.64,2.96,10.8s-.99,7.83-2.96,10.84c-1.97,3.01-4.77,5.35-8.4,7-3.63,1.65-7.95,2.48-12.96,2.48h-17.12l5.92-5.84v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Z" style="fill:#077783; stroke-width:0px;"/><path d="m680.38,197.25v-56h23.92c7.79,0,13.84,1.8,18.16,5.4,4.32,3.6,6.48,8.55,6.48,14.84,0,4.21-.99,7.83-2.96,10.84-1.97,3.01-4.77,5.31-8.4,6.88-3.63,1.57-7.95,2.36-12.96,2.36h-17.12l5.92-5.6v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Zm22.64,19.84l-14.08-20.32h13.92l14.08,20.32h-13.92Z" style="fill:#077783; stroke-width:0px;"/><path d="m748.58,197.25v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#077783; stroke-width:0px;"/><path d="m828.84,198.21c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#077783; stroke-width:0px;"/><path d="m890.42,198.21c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#077783; stroke-width:0px;"/><path d="m931.98,179.73v-10h22.64v10h-22.64Z" style="fill:#077783; stroke-width:0px;"/><path d="m966.08,197.25l24-33.2v9.44l-22.96-32.24h14.64l15.92,22.4-6.24.16,15.84-22.56h14l-22.88,31.68v-9.28l24.24,33.6h-14.96l-16.48-23.76h5.92l-16.24,23.76h-14.8Z" style="fill:#077783; stroke-width:0px;"/><path d="m174.2,225.43h-60.72c-17.43,0-31.61-14.18-31.61-31.61v-11.86h64.53v-31.79h-64.53v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.3-30.11c-11.32-13.02-24.3-15.58-30.78-15.99h-80.36c-34.96,0-63.4,28.44-63.4,63.4v43.95c0,34.96,28.44,63.4,63.4,63.4h32.94l27.77-31.79Z" style="fill:#077783; stroke-width:0px;"/><g style="opacity:.5;"><path d="m224.61,102.45c-11.31-13.01-24.3-15.57-30.77-15.98h-80.36c-34.96,0-63.4,28.44-63.4,63.4v13.1l31.79-12.8v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.31-30.11Z" style="fill:url(#uuid-6d2b71a2-255e-424a-9d77-ac93e3ddc274); mix-blend-mode:multiply; stroke-width:0px;"/></g><path d="m346.21,241.58l-13.73-15.83h-.16s-39.85-45.61-39.85-45.61l-.04.04-68.9-78.87c-11.05-11.98-23.42-14.44-29.69-14.84h-25.49l67.64,77.42.04-.04,68.9,78.87c11.06,11.98,23.42,14.44,29.69,14.84h25.49l-.02-.02h13.72c-7.55-1.51-18.01-5.56-27.6-15.95Z" style="fill:#077783; stroke-width:0px;"/><path d="m146.42,257.22l27.77-31.79h-60.72c-16.27,0-29.7-12.36-31.41-28.18,1.8,33.36,29.43,59.97,63.23,59.97h1.13Z" style="fill:url(#uuid-27dd3906-d055-4c12-899f-c441da7ef202); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m401.26,241.58l-13.73-15.83h-.16s-39.85-45.61-39.85-45.61l-.04.04-68.9-78.87c-11.05-11.98-23.42-14.44-29.69-14.84h-25.49l67.64,77.42.04-.04,68.9,78.87c11.06,11.98,23.42,14.44,29.69,14.84h25.49l-.02-.02h13.72c-7.55-1.51-18.01-5.56-27.6-15.95Z" style="fill:#87a4a5; stroke-width:0px;"/><path d="m428.22,86.66s1.89-.19,2.12-.21c-9.53,0-16.38,0-16.37,0h-25.49c-.77,0-1.58.13-2.34.23-6.7.85-17.54,3.98-27.35,14.61l-33.66,37.88,21.1,24.15,33.26-37.39s.07-.06.11-.09l21.29-24.55c9.81-10.63,20.65-13.76,27.35-14.61Z" style="fill:#87a4a5; stroke-width:0px;"/><path d="m226.48,180.18l-.04-.04-67.64,77.42h25.49c5.39,0,18.64-2.86,29.69-14.84l39.94-45-21.08-24.13-6.35,6.59Z" style="fill:#077783; stroke-width:0px;"/><path d="m214.98,257.56h25.34c5.39,0,18.64-2.86,29.69-14.84l11.08-14.12-21.14-24.19-44.98,53.15Z" style="fill:#87a4a5; stroke-width:0px;"/><path d="m309.07,95.2l-12.96,13.54,20.86,22.89,27.39-30.36c9.81-10.63,20.65-13.76,27.35-14.61,0,0,1.89-.19,2.12-.21-9.53,0-16.38,0-16.37,0h-25.49c-.77,0-1.58.13-2.34.23-5.18.66-12.84,2.7-20.58,8.49.01.01.03.03.04.04Z" style="fill:#077783; stroke-width:0px;"/></g></g></svg> \ No newline at end of file diff --git a/public/logos/logo-long-black.svg b/public/logos/logo-long-black.svg deleted file mode 100644 index 0b7c61d..0000000 --- a/public/logos/logo-long-black.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><svg id="uuid-e7e66bd5-0f7e-4759-8010-ceb2df4d370b" xmlns="http://www.w3.org/2000/svg" width="36.09cm" height="11.92cm" viewBox="0 0 1023 338"><path d="m347.17,146.22l-15.27,17.89h51.68l23-26.67h-41.9c-4.78.14-10.9,1.82-17.51,8.78Z" style="fill:#231f20; stroke-width:0px;"/><path d="m346.72,125.91c5.47-4.64,10.52-7.36,15.3-7.66l65.48-.02,27.42-31.79s-73.74.02-73.72,0h-25.49c-.77,0-1.58.13-2.34.23-6.7.85-17.54,3.98-27.35,14.61l-29.66,33.88,21.1,24.15,29.26-33.39Z" style="fill:#231f20; stroke-width:0px;"/><path d="m323.13,180.14l-.04.04-41.56-47.57.04-.04-26.3-30.11c-11.32-13.02-24.3-15.58-30.78-15.99h-80.36c-34.96,0-63.4,28.44-63.4,63.4v43.95c0,34.96,28.44,63.4,63.4,63.4h32.94l27.77-31.79h-60.72c-17.43,0-31.61-14.18-31.61-31.61v-11.86h64.53v-31.79h-64.53v-.3c0-17.43,14.18-31.61,31.61-31.61h82.65l39.87,45.63.04-.04,68.9,78.87c11.06,11.98,23.42,14.44,29.69,14.84h25.49l-.02-.02,22.8.02,27.41-31.78-77.98-.03-39.85-45.61Z" style="fill:#231f20; stroke-width:0px;"/><path d="m257.12,180.18l-.04-.04-67.64,77.42h25.49c5.39,0,18.64-2.86,29.69-14.84l39.94-45-21.08-24.13-6.35,6.59Z" style="fill:#231f20; stroke-width:0px;"/><path d="m505.6,174.39v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#231f20; stroke-width:0px;"/><path d="m565.11,174.39l24-33.2v9.44l-22.96-32.24h14.64l15.92,22.4-6.24.16,15.84-22.56h14l-22.88,31.68v-9.28l24.24,33.6h-14.96l-16.48-23.76h5.92l-16.24,23.76h-14.8Z" style="fill:#231f20; stroke-width:0px;"/><path d="m637.84,174.39v-56h24.24c5.01,0,9.33.81,12.96,2.44,3.63,1.63,6.43,3.96,8.4,7,1.97,3.04,2.96,6.64,2.96,10.8s-.99,7.83-2.96,10.84c-1.97,3.01-4.77,5.35-8.4,7-3.63,1.65-7.95,2.48-12.96,2.48h-17.12l5.92-5.84v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Z" style="fill:#231f20; stroke-width:0px;"/><path d="m704.39,174.39v-56h23.92c7.79,0,13.84,1.8,18.16,5.4,4.32,3.6,6.48,8.55,6.48,14.84,0,4.21-.99,7.83-2.96,10.84-1.97,3.01-4.77,5.31-8.4,6.88-3.63,1.57-7.95,2.36-12.96,2.36h-17.12l5.92-5.6v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Zm22.64,19.84l-14.08-20.32h13.92l14.08,20.32h-13.92Z" style="fill:#231f20; stroke-width:0px;"/><path d="m772.59,174.39v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#231f20; stroke-width:0px;"/><path d="m852.85,175.35c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#231f20; stroke-width:0px;"/><path d="m914.43,175.35c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#231f20; stroke-width:0px;"/><path d="m507.75,218.02v-21h3v18.39h11.37v2.61h-14.37Z" style="fill:#231f20; stroke-width:0px;"/><path d="m535.41,218.2c-1.18,0-2.21-.2-3.1-.6-.89-.4-1.58-.96-2.06-1.66-.48-.71-.72-1.52-.72-2.42s.21-1.64.62-2.34c.41-.7,1.08-1.26,2.01-1.68s2.18-.63,3.76-.63h5.04v2.07h-4.92c-1.44,0-2.41.24-2.91.72s-.75,1.06-.75,1.74c0,.78.31,1.4.93,1.88.62.47,1.48.71,2.58.71s2.02-.24,2.83-.72c.81-.48,1.39-1.18,1.75-2.1l.57,1.98c-.38.94-1.05,1.68-2.01,2.23-.96.55-2.17.83-3.63.83Zm5.22-.18v-3.36l-.15-.63v-5.73c0-1.22-.36-2.17-1.07-2.83s-1.78-1-3.19-1c-.94,0-1.86.16-2.76.46-.9.31-1.66.73-2.28,1.25l-1.2-2.16c.82-.66,1.8-1.16,2.96-1.51,1.15-.35,2.35-.52,3.61-.52,2.18,0,3.86.53,5.04,1.59,1.18,1.06,1.77,2.68,1.77,4.86v9.6h-2.73Z" style="fill:#231f20; stroke-width:0px;"/><path d="m553.57,218.02v-15.9h2.76v4.29l-.45-1.14c.52-1.04,1.32-1.85,2.4-2.43,1.08-.58,2.34-.87,3.78-.87,1.3,0,2.45.25,3.44.75.99.5,1.76,1.26,2.33,2.28.56,1.02.84,2.31.84,3.87v9.15h-2.88v-8.82c0-1.54-.38-2.7-1.12-3.48-.75-.78-1.81-1.17-3.17-1.17-1.02,0-1.91.2-2.67.6-.76.4-1.35.99-1.76,1.77-.41.78-.61,1.75-.61,2.91v8.19h-2.88Z" style="fill:#231f20; stroke-width:0px;"/><path d="m585.81,217.36c-1.54,0-2.92-.32-4.12-.97-1.21-.65-2.17-1.55-2.88-2.71s-1.07-2.5-1.07-4.02.36-2.88,1.07-4.04,1.67-2.04,2.88-2.69c1.21-.64,2.58-.96,4.12-.96,1.36,0,2.6.27,3.72.82,1.12.55,2.01,1.39,2.69,2.54.67,1.14,1,2.58,1,4.32s-.33,3.15-1,4.29c-.67,1.14-1.57,2-2.69,2.57-1.12.57-2.36.85-3.72.85Zm.36,6.66c-1.46,0-2.88-.21-4.25-.62-1.37-.41-2.49-.99-3.35-1.75l1.38-2.22c.74.64,1.65,1.14,2.73,1.52,1.08.37,2.21.55,3.39.55,1.88,0,3.26-.44,4.14-1.32s1.32-2.22,1.32-4.02v-3.36l.3-3.15-.15-3.18v-4.35h2.73v13.74c0,2.8-.7,4.86-2.1,6.18-1.4,1.32-3.45,1.98-6.15,1.98Zm-.03-9.18c1.06,0,2-.22,2.82-.66.82-.44,1.46-1.05,1.93-1.83.47-.78.71-1.68.71-2.7s-.24-1.92-.71-2.7-1.12-1.38-1.93-1.82c-.82-.43-1.76-.64-2.82-.64s-2.01.21-2.83.64c-.83.43-1.48,1.04-1.95,1.82s-.71,1.68-.71,2.7.24,1.92.71,2.7c.47.78,1.12,1.39,1.95,1.83.83.44,1.77.66,2.83.66Z" style="fill:#231f20; stroke-width:0px;"/><path d="m611.45,218.2c-1.36,0-2.55-.25-3.58-.75s-1.83-1.26-2.4-2.3c-.57-1.03-.85-2.32-.85-3.88v-9.15h2.88v8.82c0,1.56.38,2.73,1.12,3.51s1.8,1.17,3.17,1.17c1,0,1.87-.21,2.61-.62.74-.41,1.31-1.01,1.71-1.8.4-.79.6-1.74.6-2.87v-8.22h2.88v15.9h-2.73v-4.29l.45,1.14c-.52,1.06-1.3,1.88-2.34,2.46s-2.21.87-3.51.87Z" style="fill:#231f20; stroke-width:0px;"/><path d="m634.73,218.2c-1.18,0-2.21-.2-3.1-.6-.89-.4-1.58-.96-2.06-1.66-.48-.71-.72-1.52-.72-2.42s.21-1.64.62-2.34c.41-.7,1.08-1.26,2.01-1.68s2.18-.63,3.76-.63h5.04v2.07h-4.92c-1.44,0-2.41.24-2.91.72s-.75,1.06-.75,1.74c0,.78.31,1.4.93,1.88.62.47,1.48.71,2.58.71s2.02-.24,2.83-.72c.81-.48,1.39-1.18,1.75-2.1l.57,1.98c-.38.94-1.05,1.68-2.01,2.23-.96.55-2.17.83-3.63.83Zm5.22-.18v-3.36l-.15-.63v-5.73c0-1.22-.36-2.17-1.07-2.83s-1.78-1-3.19-1c-.94,0-1.86.16-2.76.46-.9.31-1.66.73-2.28,1.25l-1.2-2.16c.82-.66,1.8-1.16,2.96-1.51,1.15-.35,2.35-.52,3.61-.52,2.18,0,3.86.53,5.04,1.59,1.18,1.06,1.77,2.68,1.77,4.86v9.6h-2.73Z" style="fill:#231f20; stroke-width:0px;"/><path d="m659.9,217.36c-1.54,0-2.92-.32-4.12-.97-1.21-.65-2.17-1.55-2.88-2.71s-1.07-2.5-1.07-4.02.36-2.88,1.07-4.04,1.67-2.04,2.88-2.69c1.21-.64,2.58-.96,4.12-.96,1.36,0,2.6.27,3.72.82,1.12.55,2.01,1.39,2.69,2.54.67,1.14,1,2.58,1,4.32s-.33,3.15-1,4.29c-.67,1.14-1.57,2-2.69,2.57-1.12.57-2.36.85-3.72.85Zm.36,6.66c-1.46,0-2.88-.21-4.25-.62-1.37-.41-2.49-.99-3.35-1.75l1.38-2.22c.74.64,1.65,1.14,2.73,1.52,1.08.37,2.21.55,3.39.55,1.88,0,3.26-.44,4.14-1.32s1.32-2.22,1.32-4.02v-3.36l.3-3.15-.15-3.18v-4.35h2.73v13.74c0,2.8-.7,4.86-2.1,6.18-1.4,1.32-3.45,1.98-6.15,1.98Zm-.03-9.18c1.06,0,2-.22,2.82-.66.82-.44,1.46-1.05,1.93-1.83.47-.78.71-1.68.71-2.7s-.24-1.92-.71-2.7-1.12-1.38-1.93-1.82c-.82-.43-1.76-.64-2.82-.64s-2.01.21-2.83.64c-.83.43-1.48,1.04-1.95,1.82s-.71,1.68-.71,2.7.24,1.92.71,2.7c.47.78,1.12,1.39,1.95,1.83.83.44,1.77.66,2.83.66Z" style="fill:#231f20; stroke-width:0px;"/><path d="m686.39,218.2c-1.7,0-3.19-.35-4.48-1.05-1.29-.7-2.29-1.66-3-2.88-.71-1.22-1.07-2.62-1.07-4.2s.35-2.98,1.04-4.2c.69-1.22,1.64-2.17,2.85-2.87s2.58-1.03,4.1-1.03,2.9.34,4.08,1.02c1.18.68,2.1,1.63,2.77,2.87.67,1.23,1,2.67,1,4.3,0,.12,0,.26-.01.42-.01.16-.03.31-.04.45h-13.53v-2.07h12.03l-1.17.72c.02-1.02-.19-1.93-.63-2.73-.44-.8-1.05-1.42-1.82-1.88s-1.67-.67-2.68-.67-1.89.22-2.67.67c-.78.45-1.39,1.08-1.83,1.89-.44.81-.66,1.74-.66,2.78v.48c0,1.06.24,2,.74,2.83.49.83,1.17,1.48,2.05,1.94.88.46,1.89.69,3.03.69.94,0,1.79-.16,2.56-.48s1.45-.8,2.03-1.44l1.59,1.86c-.72.84-1.62,1.48-2.69,1.92-1.07.44-2.26.66-3.58.66Z" style="fill:#231f20; stroke-width:0px;"/><path d="m718.16,218.02v-21h14.82v2.61h-11.82v18.39h-3Zm2.7-8.49v-2.58h10.83v2.58h-10.83Z" style="fill:#231f20; stroke-width:0px;"/><path d="m748.88,218.2c-1.58,0-3-.35-4.25-1.05-1.25-.7-2.24-1.67-2.96-2.9s-1.08-2.62-1.08-4.18.36-2.97,1.08-4.19c.72-1.21,1.7-2.16,2.94-2.87,1.24-.7,2.66-1.05,4.26-1.05s3,.34,4.25,1.03,2.23,1.65,2.94,2.87,1.07,2.62,1.07,4.2-.36,2.98-1.07,4.2c-.71,1.22-1.69,2.18-2.94,2.88-1.25.7-2.67,1.05-4.25,1.05Zm0-2.52c1.02,0,1.93-.23,2.75-.69.81-.46,1.44-1.12,1.91-1.96.46-.85.69-1.83.69-2.96s-.23-2.12-.69-2.96c-.46-.83-1.1-1.47-1.91-1.94-.81-.46-1.73-.69-2.75-.69s-1.93.23-2.73.69c-.8.46-1.44,1.11-1.92,1.94-.48.83-.72,1.81-.72,2.96s.24,2.11.72,2.96c.48.85,1.12,1.5,1.92,1.96s1.71.69,2.73.69Z" style="fill:#231f20; stroke-width:0px;"/><path d="m773.09,218.2c-1.36,0-2.55-.25-3.58-.75s-1.83-1.26-2.4-2.3c-.57-1.03-.85-2.32-.85-3.88v-9.15h2.88v8.82c0,1.56.38,2.73,1.12,3.51s1.8,1.17,3.17,1.17c1,0,1.87-.21,2.61-.62.74-.41,1.31-1.01,1.71-1.8.4-.79.6-1.74.6-2.87v-8.22h2.88v15.9h-2.73v-4.29l.45,1.14c-.52,1.06-1.3,1.88-2.34,2.46s-2.21.87-3.51.87Z" style="fill:#231f20; stroke-width:0px;"/><path d="m791.51,218.02v-15.9h2.76v4.29l-.45-1.14c.52-1.04,1.32-1.85,2.4-2.43,1.08-.58,2.34-.87,3.78-.87,1.3,0,2.45.25,3.44.75.99.5,1.76,1.26,2.33,2.28.56,1.02.84,2.31.84,3.87v9.15h-2.88v-8.82c0-1.54-.38-2.7-1.12-3.48-.75-.78-1.81-1.17-3.17-1.17-1.02,0-1.91.2-2.67.6-.76.4-1.35.99-1.76,1.77-.41.78-.61,1.75-.61,2.91v8.19h-2.88Z" style="fill:#231f20; stroke-width:0px;"/><path d="m823.78,218.2c-1.54,0-2.92-.34-4.12-1.02-1.21-.68-2.17-1.63-2.87-2.85-.7-1.22-1.05-2.64-1.05-4.26s.35-3.04,1.05-4.25,1.66-2.16,2.87-2.83,2.58-1.02,4.12-1.02c1.34,0,2.55.3,3.63.9s1.95,1.5,2.6,2.7c.65,1.2.97,2.7.97,4.5s-.32,3.3-.95,4.5c-.63,1.2-1.48,2.11-2.56,2.71-1.08.61-2.31.92-3.69.92Zm.24-2.52c1,0,1.91-.23,2.71-.69.81-.46,1.45-1.12,1.92-1.96s.71-1.83.71-2.96-.24-2.12-.71-2.96-1.11-1.47-1.92-1.94c-.81-.46-1.71-.69-2.71-.69s-1.93.23-2.73.69c-.8.46-1.44,1.11-1.92,1.94-.48.83-.72,1.81-.72,2.96s.24,2.11.72,2.96c.48.85,1.12,1.5,1.92,1.96s1.71.69,2.73.69Zm5.43,2.34v-4.29l.18-3.69-.3-3.69v-10.59h2.88v22.26h-2.76Z" style="fill:#231f20; stroke-width:0px;"/><path d="m847.34,218.2c-1.18,0-2.21-.2-3.1-.6-.89-.4-1.58-.96-2.06-1.66-.48-.71-.72-1.52-.72-2.42s.21-1.64.62-2.34c.41-.7,1.08-1.26,2.01-1.68s2.18-.63,3.76-.63h5.04v2.07h-4.92c-1.44,0-2.41.24-2.91.72s-.75,1.06-.75,1.74c0,.78.31,1.4.93,1.88.62.47,1.48.71,2.58.71s2.02-.24,2.83-.72c.81-.48,1.39-1.18,1.75-2.1l.57,1.98c-.38.94-1.05,1.68-2.01,2.23-.96.55-2.17.83-3.63.83Zm5.22-.18v-3.36l-.15-.63v-5.73c0-1.22-.36-2.17-1.07-2.83s-1.78-1-3.19-1c-.94,0-1.86.16-2.76.46-.9.31-1.66.73-2.28,1.25l-1.2-2.16c.82-.66,1.8-1.16,2.96-1.51,1.15-.35,2.35-.52,3.61-.52,2.18,0,3.86.53,5.04,1.59,1.18,1.06,1.77,2.68,1.77,4.86v9.6h-2.73Z" style="fill:#231f20; stroke-width:0px;"/><path d="m863.09,204.49v-2.37h10.14v2.37h-10.14Zm7.74,13.71c-1.6,0-2.84-.43-3.72-1.29s-1.32-2.09-1.32-3.69v-14.58h2.88v14.46c0,.86.21,1.52.64,1.98.43.46,1.04.69,1.84.69.9,0,1.65-.25,2.25-.75l.9,2.07c-.44.38-.96.66-1.58.84s-1.25.27-1.9.27Z" style="fill:#231f20; stroke-width:0px;"/><path d="m884.31,199.06c-.56,0-1.03-.18-1.39-.54-.37-.36-.56-.8-.56-1.32s.18-.99.56-1.35c.37-.36.83-.54,1.39-.54s1.02.17,1.4.52c.37.35.55.79.55,1.31s-.18.99-.54,1.36-.83.56-1.41.56Zm-1.44,18.96v-15.9h2.88v15.9h-2.88Z" style="fill:#231f20; stroke-width:0px;"/><path d="m903.23,218.2c-1.58,0-3-.35-4.25-1.05-1.25-.7-2.24-1.67-2.96-2.9s-1.08-2.62-1.08-4.18.36-2.97,1.08-4.19c.72-1.21,1.7-2.16,2.94-2.87,1.24-.7,2.66-1.05,4.26-1.05s3,.34,4.25,1.03,2.23,1.65,2.94,2.87,1.07,2.62,1.07,4.2-.36,2.98-1.07,4.2c-.71,1.22-1.69,2.18-2.94,2.88-1.25.7-2.67,1.05-4.25,1.05Zm0-2.52c1.02,0,1.93-.23,2.75-.69.81-.46,1.44-1.12,1.91-1.96.46-.85.69-1.83.69-2.96s-.23-2.12-.69-2.96c-.46-.83-1.1-1.47-1.91-1.94-.81-.46-1.73-.69-2.75-.69s-1.93.23-2.73.69c-.8.46-1.44,1.11-1.92,1.94-.48.83-.72,1.81-.72,2.96s.24,2.11.72,2.96c.48.85,1.12,1.5,1.92,1.96s1.71.69,2.73.69Z" style="fill:#231f20; stroke-width:0px;"/><path d="m920.77,218.02v-15.9h2.76v4.29l-.45-1.14c.52-1.04,1.32-1.85,2.4-2.43,1.08-.58,2.34-.87,3.78-.87,1.3,0,2.45.25,3.44.75.99.5,1.76,1.26,2.33,2.28.56,1.02.84,2.31.84,3.87v9.15h-2.88v-8.82c0-1.54-.38-2.7-1.12-3.48-.75-.78-1.81-1.17-3.17-1.17-1.02,0-1.91.2-2.67.6-.76.4-1.35.99-1.76,1.77-.41.78-.61,1.75-.61,2.91v8.19h-2.88Z" style="fill:#231f20; stroke-width:0px;"/></svg> \ No newline at end of file diff --git a/public/logos/logo-long-blue.svg b/public/logos/logo-long-blue.svg deleted file mode 100644 index e1f27aa..0000000 --- a/public/logos/logo-long-blue.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="36.09cm" height="11.92cm" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1023 338"><defs><linearGradient id="uuid-df054957-c263-47c5-ba6e-19e7159a0d48" x1="80.41" y1="124.72" x2="300.75" y2="124.72" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".19" stop-color="#fdfefe" stop-opacity="0"/><stop offset=".22" stop-color="#fdfefe" stop-opacity="0"/><stop offset=".4" stop-color="#c9cbce" stop-opacity=".22"/><stop offset=".69" stop-color="#3c444c" stop-opacity=".83"/><stop offset=".76" stop-color="#151e28"/></linearGradient><linearGradient id="uuid-4b583589-0446-49ef-878d-fbf9dd604f3d" x1="483.27" y1="106.17" x2="336.41" y2="106.17" xlink:href="#uuid-df054957-c263-47c5-ba6e-19e7159a0d48"/><linearGradient id="uuid-355b5cbb-7193-42c5-8918-708bbd767e29" x1="461.32" y1="241.65" x2="355.69" y2="241.65" xlink:href="#uuid-df054957-c263-47c5-ba6e-19e7159a0d48"/><linearGradient id="uuid-ae6e61e1-a4e2-4f1f-966e-66dc39cbd270" x1="230" y1="227.24" x2="121.35" y2="227.24" xlink:href="#uuid-df054957-c263-47c5-ba6e-19e7159a0d48"/></defs><g style="isolation:isolate;"><g id="uuid-f515188d-757c-4920-9cae-ca05e787f21f"><rect x="0" y="0" width="1023" height="338" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m406.58,137.45h-41.9c-4.78.14-10.9,1.82-17.51,8.78l-15.27,17.89h51.68l23-26.67Z" style="fill:#fff; stroke-width:0px;"/><path d="m204.85,225.43h-60.72c-17.43,0-31.61-14.18-31.61-31.61v-11.86h64.53v-31.79h-64.53v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.3-30.11c-11.32-13.02-24.3-15.58-30.78-15.99h-80.36c-34.96,0-63.4,28.44-63.4,63.4v43.95c0,34.96,28.44,63.4,63.4,63.4h32.94l27.77-31.79Z" style="fill:#fff; stroke-width:0px;"/><g style="opacity:.4;"><path d="m255.26,102.45c-11.31-13.01-24.3-15.57-30.77-15.98h-80.36c-34.96,0-63.4,28.44-63.4,63.4v13.1l31.79-12.8v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.31-30.11Z" style="fill:url(#uuid-df054957-c263-47c5-ba6e-19e7159a0d48); mix-blend-mode:multiply; stroke-width:0px;"/></g><path d="m454.93,86.44s-73.74.02-73.72,0c0,0-25.48,0-25.49,0-.77,0-1.58.13-2.34.23-6.7.85-17.54,3.98-27.35,14.61l-29.66,33.88,21.1,24.15,29.26-33.39c5.47-4.64,10.52-7.36,15.3-7.66l65.48-.02,27.42-31.79Z" style="fill:#fff; stroke-width:0px;"/><path d="m454.96,86.44h-28.48s0,0,0,0h-28.88c-.12.02-2.15.22-2.15.22-6.7.85-17.54,3.98-27.35,14.61l-21.36,24.63c5.47-4.64,10.52-7.31,15.3-7.66l65.48-.02,27.41-31.78Z" style="fill:url(#uuid-4b583589-0446-49ef-878d-fbf9dd604f3d); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m413.54,257.56l27.41-31.78-77.98-.03-39.85-45.61-.04.04-68.9-78.87c-11.05-11.98-23.42-14.44-29.69-14.84h-25.49l67.64,77.42.04-.04,68.9,78.87c11.06,11.98,23.42,14.44,29.69,14.84h25.49l-.02-.02,22.8.02Z" style="fill:#fff; stroke-width:0px;"/><path d="m440.96,225.78l-77.82-.03,13.73,15.83c9.59,10.39,20.05,14.44,27.6,15.97h9.08s27.41-31.77,27.41-31.77Z" style="fill:url(#uuid-355b5cbb-7193-42c5-8918-708bbd767e29); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m257.12,180.18l-.04-.04-67.64,77.42h25.49c5.39,0,18.64-2.86,29.69-14.84l39.94-45-21.08-24.13-6.35,6.59Z" style="fill:#fff; stroke-width:0px;"/><path d="m177.07,257.22l27.77-31.79h-60.72c-16.27,0-29.7-12.36-31.41-28.18,1.8,33.36,29.43,59.97,63.23,59.97h1.13Z" style="fill:url(#uuid-ae6e61e1-a4e2-4f1f-966e-66dc39cbd270); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m505.09,174.39v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m564.6,174.39l24-33.2v9.44l-22.96-32.24h14.64l15.92,22.4-6.24.16,15.84-22.56h14l-22.88,31.68v-9.28l24.24,33.6h-14.96l-16.48-23.76h5.92l-16.24,23.76h-14.8Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m637.33,174.39v-56h24.24c5.01,0,9.33.81,12.96,2.44,3.63,1.63,6.43,3.96,8.4,7,1.97,3.04,2.96,6.64,2.96,10.8s-.99,7.83-2.96,10.84c-1.97,3.01-4.77,5.35-8.4,7-3.63,1.65-7.95,2.48-12.96,2.48h-17.12l5.92-5.84v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m703.88,174.39v-56h23.92c7.79,0,13.84,1.8,18.16,5.4,4.32,3.6,6.48,8.55,6.48,14.84,0,4.21-.99,7.83-2.96,10.84-1.97,3.01-4.77,5.31-8.4,6.88-3.63,1.57-7.95,2.36-12.96,2.36h-17.12l5.92-5.6v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Zm22.64,19.84l-14.08-20.32h13.92l14.08,20.32h-13.92Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m772.08,174.39v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m852.34,175.35c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24s-5.23-1.08-7.68-1.08-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m913.92,175.35c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24s-5.23-1.08-7.68-1.08-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m507.24,218.02v-21h3v18.39h11.37v2.61h-14.37Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m534.9,218.2c-1.18,0-2.21-.2-3.1-.6-.89-.4-1.58-.96-2.06-1.67-.48-.71-.72-1.51-.72-2.42s.21-1.64.62-2.34c.41-.7,1.08-1.26,2.01-1.68s2.18-.63,3.76-.63h5.04v2.07h-4.92c-1.44,0-2.41.24-2.91.72-.5.48-.75,1.06-.75,1.74,0,.78.31,1.41.93,1.88.62.47,1.48.71,2.58.71s2.02-.24,2.83-.72c.81-.48,1.39-1.18,1.75-2.1l.57,1.98c-.38.94-1.05,1.69-2.01,2.24s-2.17.83-3.63.83Zm5.22-.18v-3.36l-.15-.63v-5.73c0-1.22-.36-2.17-1.07-2.83s-1.78-1-3.19-1c-.94,0-1.86.16-2.76.46-.9.31-1.66.73-2.28,1.25l-1.2-2.16c.82-.66,1.8-1.17,2.96-1.51,1.15-.35,2.35-.53,3.61-.53,2.18,0,3.86.53,5.04,1.59,1.18,1.06,1.77,2.68,1.77,4.86v9.6h-2.73Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m553.06,218.02v-15.9h2.76v4.29l-.45-1.14c.52-1.04,1.32-1.85,2.4-2.43,1.08-.58,2.34-.87,3.78-.87,1.3,0,2.45.25,3.44.75.99.5,1.76,1.26,2.33,2.28.56,1.02.84,2.31.84,3.87v9.15h-2.88v-8.82c0-1.54-.38-2.7-1.12-3.48s-1.81-1.17-3.17-1.17c-1.02,0-1.91.2-2.67.6-.76.4-1.35.99-1.76,1.77s-.61,1.75-.61,2.91v8.19h-2.88Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m585.3,217.36c-1.54,0-2.92-.32-4.12-.97-1.21-.65-2.17-1.55-2.88-2.71s-1.07-2.5-1.07-4.02.36-2.88,1.07-4.03c.71-1.15,1.67-2.04,2.88-2.69,1.21-.64,2.58-.96,4.12-.96,1.36,0,2.6.28,3.72.83s2.01,1.39,2.69,2.54c.67,1.14,1,2.58,1,4.32s-.33,3.15-1,4.29c-.67,1.14-1.57,2-2.69,2.57s-2.36.85-3.72.85Zm.36,6.66c-1.46,0-2.88-.21-4.25-.62-1.37-.41-2.49-1-3.35-1.75l1.38-2.22c.74.64,1.65,1.14,2.73,1.51s2.21.56,3.39.56c1.88,0,3.26-.44,4.14-1.32.88-.88,1.32-2.22,1.32-4.02v-3.36l.3-3.15-.15-3.18v-4.35h2.73v13.74c0,2.8-.7,4.86-2.1,6.18-1.4,1.32-3.45,1.98-6.15,1.98Zm-.03-9.18c1.06,0,2-.22,2.82-.66.82-.44,1.46-1.05,1.93-1.83s.71-1.68.71-2.7-.24-1.92-.71-2.7c-.47-.78-1.12-1.38-1.93-1.82-.82-.43-1.76-.64-2.82-.64s-2.01.21-2.83.64c-.83.43-1.48,1.04-1.95,1.82-.47.78-.71,1.68-.71,2.7s.24,1.92.71,2.7,1.12,1.39,1.95,1.83c.83.44,1.77.66,2.83.66Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m610.94,218.2c-1.36,0-2.55-.25-3.58-.75s-1.83-1.26-2.4-2.3c-.57-1.03-.85-2.32-.85-3.88v-9.15h2.88v8.82c0,1.56.38,2.73,1.12,3.51.75.78,1.8,1.17,3.17,1.17,1,0,1.87-.21,2.61-.62.74-.41,1.31-1.01,1.71-1.8.4-.79.6-1.75.6-2.87v-8.22h2.88v15.9h-2.73v-4.29l.45,1.14c-.52,1.06-1.3,1.88-2.34,2.46s-2.21.87-3.51.87Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m634.22,218.2c-1.18,0-2.21-.2-3.1-.6-.89-.4-1.58-.96-2.06-1.67-.48-.71-.72-1.51-.72-2.42s.21-1.64.62-2.34c.41-.7,1.08-1.26,2.01-1.68s2.18-.63,3.76-.63h5.04v2.07h-4.92c-1.44,0-2.41.24-2.91.72-.5.48-.75,1.06-.75,1.74,0,.78.31,1.41.93,1.88.62.47,1.48.71,2.58.71s2.02-.24,2.83-.72c.81-.48,1.39-1.18,1.75-2.1l.57,1.98c-.38.94-1.05,1.69-2.01,2.24s-2.17.83-3.63.83Zm5.22-.18v-3.36l-.15-.63v-5.73c0-1.22-.36-2.17-1.07-2.83s-1.78-1-3.19-1c-.94,0-1.86.16-2.76.46-.9.31-1.66.73-2.28,1.25l-1.2-2.16c.82-.66,1.8-1.17,2.96-1.51,1.15-.35,2.35-.53,3.61-.53,2.18,0,3.86.53,5.04,1.59,1.18,1.06,1.77,2.68,1.77,4.86v9.6h-2.73Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m659.39,217.36c-1.54,0-2.92-.32-4.12-.97-1.21-.65-2.17-1.55-2.88-2.71s-1.07-2.5-1.07-4.02.36-2.88,1.07-4.03c.71-1.15,1.67-2.04,2.88-2.69,1.21-.64,2.58-.96,4.12-.96,1.36,0,2.6.28,3.72.83s2.01,1.39,2.69,2.54c.67,1.14,1,2.58,1,4.32s-.33,3.15-1,4.29c-.67,1.14-1.57,2-2.69,2.57s-2.36.85-3.72.85Zm.36,6.66c-1.46,0-2.88-.21-4.25-.62-1.37-.41-2.49-1-3.35-1.75l1.38-2.22c.74.64,1.65,1.14,2.73,1.51s2.21.56,3.39.56c1.88,0,3.26-.44,4.14-1.32.88-.88,1.32-2.22,1.32-4.02v-3.36l.3-3.15-.15-3.18v-4.35h2.73v13.74c0,2.8-.7,4.86-2.1,6.18-1.4,1.32-3.45,1.98-6.15,1.98Zm-.03-9.18c1.06,0,2-.22,2.82-.66.82-.44,1.46-1.05,1.93-1.83s.71-1.68.71-2.7-.24-1.92-.71-2.7c-.47-.78-1.12-1.38-1.93-1.82-.82-.43-1.76-.64-2.82-.64s-2.01.21-2.83.64c-.83.43-1.48,1.04-1.95,1.82-.47.78-.71,1.68-.71,2.7s.24,1.92.71,2.7,1.12,1.39,1.95,1.83c.83.44,1.77.66,2.83.66Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m685.88,218.2c-1.7,0-3.19-.35-4.48-1.05-1.29-.7-2.29-1.66-3-2.88-.71-1.22-1.07-2.62-1.07-4.2s.35-2.98,1.04-4.2c.69-1.22,1.64-2.18,2.85-2.87,1.21-.69,2.58-1.04,4.1-1.04s2.9.34,4.08,1.02c1.18.68,2.1,1.63,2.77,2.86.67,1.23,1,2.67,1,4.31,0,.12,0,.26-.01.42-.01.16-.03.31-.04.45h-13.53v-2.07h12.03l-1.17.72c.02-1.02-.19-1.93-.63-2.73-.44-.8-1.05-1.43-1.82-1.88-.77-.45-1.67-.68-2.68-.68s-1.89.23-2.67.68c-.78.45-1.39,1.08-1.83,1.89-.44.81-.66,1.74-.66,2.78v.48c0,1.06.24,2,.74,2.83.49.83,1.17,1.48,2.05,1.94.88.46,1.89.69,3.03.69.94,0,1.79-.16,2.56-.48.77-.32,1.45-.8,2.03-1.44l1.59,1.86c-.72.84-1.62,1.48-2.69,1.92-1.07.44-2.26.66-3.58.66Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m717.65,218.02v-21h14.82v2.61h-11.82v18.39h-3Zm2.7-8.49v-2.58h10.83v2.58h-10.83Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m748.37,218.2c-1.58,0-3-.35-4.25-1.05-1.25-.7-2.24-1.67-2.96-2.89-.72-1.23-1.08-2.62-1.08-4.19s.36-2.97,1.08-4.18,1.7-2.17,2.94-2.87c1.24-.7,2.66-1.05,4.26-1.05s3,.34,4.25,1.04c1.25.69,2.23,1.65,2.94,2.87s1.07,2.62,1.07,4.2-.36,2.98-1.07,4.2c-.71,1.22-1.69,2.18-2.94,2.88-1.25.7-2.67,1.05-4.25,1.05Zm0-2.52c1.02,0,1.93-.23,2.75-.69.81-.46,1.44-1.12,1.91-1.97.46-.85.69-1.83.69-2.96s-.23-2.12-.69-2.95c-.46-.83-1.1-1.48-1.91-1.94-.81-.46-1.73-.69-2.75-.69s-1.93.23-2.73.69-1.44,1.11-1.92,1.94c-.48.83-.72,1.81-.72,2.95s.24,2.11.72,2.96c.48.85,1.12,1.51,1.92,1.97s1.71.69,2.73.69Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m772.58,218.2c-1.36,0-2.55-.25-3.58-.75s-1.83-1.26-2.4-2.3c-.57-1.03-.85-2.32-.85-3.88v-9.15h2.88v8.82c0,1.56.38,2.73,1.12,3.51.75.78,1.8,1.17,3.17,1.17,1,0,1.87-.21,2.61-.62.74-.41,1.31-1.01,1.71-1.8.4-.79.6-1.75.6-2.87v-8.22h2.88v15.9h-2.73v-4.29l.45,1.14c-.52,1.06-1.3,1.88-2.34,2.46s-2.21.87-3.51.87Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m791,218.02v-15.9h2.76v4.29l-.45-1.14c.52-1.04,1.32-1.85,2.4-2.43,1.08-.58,2.34-.87,3.78-.87,1.3,0,2.45.25,3.44.75.99.5,1.76,1.26,2.33,2.28.56,1.02.84,2.31.84,3.87v9.15h-2.88v-8.82c0-1.54-.38-2.7-1.12-3.48s-1.81-1.17-3.17-1.17c-1.02,0-1.91.2-2.67.6-.76.4-1.35.99-1.76,1.77s-.61,1.75-.61,2.91v8.19h-2.88Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m823.27,218.2c-1.54,0-2.92-.34-4.12-1.02-1.21-.68-2.17-1.63-2.87-2.85s-1.05-2.64-1.05-4.26.35-3.03,1.05-4.24,1.66-2.16,2.87-2.83,2.58-1.02,4.12-1.02c1.34,0,2.55.3,3.63.9,1.08.6,1.95,1.5,2.6,2.7.65,1.2.97,2.7.97,4.5s-.32,3.3-.95,4.5c-.63,1.2-1.48,2.11-2.56,2.72s-2.31.92-3.69.92Zm.24-2.52c1,0,1.91-.23,2.71-.69.81-.46,1.45-1.12,1.92-1.97.47-.85.71-1.83.71-2.96s-.24-2.12-.71-2.95-1.11-1.48-1.92-1.94c-.81-.46-1.71-.69-2.71-.69s-1.93.23-2.73.69-1.44,1.11-1.92,1.94c-.48.83-.72,1.81-.72,2.95s.24,2.11.72,2.96c.48.85,1.12,1.51,1.92,1.97s1.71.69,2.73.69Zm5.43,2.34v-4.29l.18-3.69-.3-3.69v-10.59h2.88v22.26h-2.76Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m846.83,218.2c-1.18,0-2.21-.2-3.1-.6-.89-.4-1.58-.96-2.06-1.67-.48-.71-.72-1.51-.72-2.42s.21-1.64.62-2.34c.41-.7,1.08-1.26,2.01-1.68s2.18-.63,3.76-.63h5.04v2.07h-4.92c-1.44,0-2.41.24-2.91.72-.5.48-.75,1.06-.75,1.74,0,.78.31,1.41.93,1.88.62.47,1.48.71,2.58.71s2.02-.24,2.83-.72c.81-.48,1.39-1.18,1.75-2.1l.57,1.98c-.38.94-1.05,1.69-2.01,2.24s-2.17.83-3.63.83Zm5.22-.18v-3.36l-.15-.63v-5.73c0-1.22-.36-2.17-1.07-2.83s-1.78-1-3.19-1c-.94,0-1.86.16-2.76.46-.9.31-1.66.73-2.28,1.25l-1.2-2.16c.82-.66,1.8-1.17,2.96-1.51,1.15-.35,2.35-.53,3.61-.53,2.18,0,3.86.53,5.04,1.59,1.18,1.06,1.77,2.68,1.77,4.86v9.6h-2.73Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m862.58,204.49v-2.37h10.14v2.37h-10.14Zm7.74,13.71c-1.6,0-2.84-.43-3.72-1.29-.88-.86-1.32-2.09-1.32-3.69v-14.58h2.88v14.46c0,.86.21,1.52.64,1.98s1.04.69,1.84.69c.9,0,1.65-.25,2.25-.75l.9,2.07c-.44.38-.96.66-1.58.84s-1.25.27-1.9.27Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m883.8,199.06c-.56,0-1.03-.18-1.39-.54-.37-.36-.56-.8-.56-1.32s.18-.99.56-1.35c.37-.36.83-.54,1.39-.54s1.02.18,1.4.53c.37.35.55.79.55,1.3s-.18,1-.54,1.37-.83.55-1.41.55Zm-1.44,18.96v-15.9h2.88v15.9h-2.88Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m902.72,218.2c-1.58,0-3-.35-4.25-1.05-1.25-.7-2.24-1.67-2.96-2.89-.72-1.23-1.08-2.62-1.08-4.19s.36-2.97,1.08-4.18,1.7-2.17,2.94-2.87c1.24-.7,2.66-1.05,4.26-1.05s3,.34,4.25,1.04c1.25.69,2.23,1.65,2.94,2.87s1.07,2.62,1.07,4.2-.36,2.98-1.07,4.2c-.71,1.22-1.69,2.18-2.94,2.88-1.25.7-2.67,1.05-4.25,1.05Zm0-2.52c1.02,0,1.93-.23,2.75-.69.81-.46,1.44-1.12,1.91-1.97.46-.85.69-1.83.69-2.96s-.23-2.12-.69-2.95c-.46-.83-1.1-1.48-1.91-1.94-.81-.46-1.73-.69-2.75-.69s-1.93.23-2.73.69-1.44,1.11-1.92,1.94c-.48.83-.72,1.81-.72,2.95s.24,2.11.72,2.96c.48.85,1.12,1.51,1.92,1.97s1.71.69,2.73.69Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m920.26,218.02v-15.9h2.76v4.29l-.45-1.14c.52-1.04,1.32-1.85,2.4-2.43,1.08-.58,2.34-.87,3.78-.87,1.3,0,2.45.25,3.44.75.99.5,1.76,1.26,2.33,2.28.56,1.02.84,2.31.84,3.87v9.15h-2.88v-8.82c0-1.54-.38-2.7-1.12-3.48s-1.81-1.17-3.17-1.17c-1.02,0-1.91.2-2.67.6-.76.4-1.35.99-1.76,1.77s-.61,1.75-.61,2.91v8.19h-2.88Z" style="fill:#f1f2f2; stroke-width:0px;"/></g></g></svg> \ No newline at end of file diff --git a/public/logos/logo-long-dark.svg b/public/logos/logo-long-dark.svg deleted file mode 100644 index 0d36e5a..0000000 --- a/public/logos/logo-long-dark.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="36.09cm" height="11.92cm" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1023 338"><defs><linearGradient id="uuid-bf31cb13-8f4e-464f-b2e5-f1ef42d9a90e" x1="80.41" y1="124.72" x2="300.75" y2="124.72" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".19" stop-color="#fdfefe" stop-opacity="0"/><stop offset=".22" stop-color="#fdfefe" stop-opacity="0"/><stop offset=".4" stop-color="#c9cbce" stop-opacity=".22"/><stop offset=".69" stop-color="#3c444c" stop-opacity=".83"/><stop offset=".76" stop-color="#151e28"/></linearGradient><linearGradient id="uuid-b82db73e-d6b3-42e9-847a-8b5ae235b49c" x1="483.27" y1="106.17" x2="336.41" y2="106.17" xlink:href="#uuid-bf31cb13-8f4e-464f-b2e5-f1ef42d9a90e"/><linearGradient id="uuid-fe07aa67-409d-4226-a329-216dba945292" x1="461.32" y1="241.65" x2="355.69" y2="241.65" xlink:href="#uuid-bf31cb13-8f4e-464f-b2e5-f1ef42d9a90e"/><linearGradient id="uuid-98fc9ec2-4c2a-4332-9d2f-e62f3e69edbd" x1="230" y1="227.24" x2="121.35" y2="227.24" xlink:href="#uuid-bf31cb13-8f4e-464f-b2e5-f1ef42d9a90e"/></defs><g style="isolation:isolate;"><g id="uuid-dfced1ff-ee6b-47a3-9273-c5b9ad627453"><rect width="1023" height="338" style="fill:#231f20; stroke-width:0px;"/><path d="m406.58,137.45h-41.9c-4.78.14-10.9,1.82-17.51,8.78l-15.27,17.89h51.68l23-26.67Z" style="fill:#fff; stroke-width:0px;"/><path d="m204.85,225.43h-60.72c-17.43,0-31.61-14.18-31.61-31.61v-11.86h64.53v-31.79h-64.53v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.3-30.11c-11.32-13.02-24.3-15.58-30.78-15.99h-80.36c-34.96,0-63.4,28.44-63.4,63.4v43.95c0,34.96,28.44,63.4,63.4,63.4h32.94l27.77-31.79Z" style="fill:#fff; stroke-width:0px;"/><g style="opacity:.4;"><path d="m255.26,102.45c-11.31-13.01-24.3-15.57-30.77-15.98h-80.36c-34.96,0-63.4,28.44-63.4,63.4v13.1l31.79-12.8v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.31-30.11Z" style="fill:url(#uuid-bf31cb13-8f4e-464f-b2e5-f1ef42d9a90e); mix-blend-mode:multiply; stroke-width:0px;"/></g><path d="m454.93,86.44s-73.74.02-73.72,0c0,0-25.48,0-25.49,0-.77,0-1.58.13-2.34.23-6.7.85-17.54,3.98-27.35,14.61l-29.66,33.88,21.1,24.15,29.26-33.39c5.47-4.64,10.52-7.36,15.3-7.66l65.48-.02,27.42-31.79Z" style="fill:#fff; stroke-width:0px;"/><path d="m454.96,86.44h-28.48s0,0,0,0h-28.88c-.12.02-2.15.22-2.15.22-6.7.85-17.54,3.98-27.35,14.61l-21.36,24.63c5.47-4.64,10.52-7.31,15.3-7.66l65.48-.02,27.41-31.78Z" style="fill:url(#uuid-b82db73e-d6b3-42e9-847a-8b5ae235b49c); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m413.54,257.56l27.41-31.78-77.98-.03-39.85-45.61-.04.04-68.9-78.87c-11.05-11.98-23.42-14.44-29.69-14.84h-25.49l67.64,77.42.04-.04,68.9,78.87c11.06,11.98,23.42,14.44,29.69,14.84h25.49l-.02-.02,22.8.02Z" style="fill:#fff; stroke-width:0px;"/><path d="m440.96,225.78l-77.82-.03,13.73,15.83c9.59,10.39,20.05,14.44,27.6,15.97h9.08s27.41-31.77,27.41-31.77Z" style="fill:url(#uuid-fe07aa67-409d-4226-a329-216dba945292); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m257.12,180.18l-.04-.04-67.64,77.42h25.49c5.39,0,18.64-2.86,29.69-14.84l39.94-45-21.08-24.13-6.35,6.59Z" style="fill:#fff; stroke-width:0px;"/><path d="m177.07,257.22l27.77-31.79h-60.72c-16.27,0-29.7-12.36-31.41-28.18,1.8,33.36,29.43,59.97,63.23,59.97h1.13Z" style="fill:url(#uuid-98fc9ec2-4c2a-4332-9d2f-e62f3e69edbd); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m506.06,174.39v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m565.57,174.39l24-33.2v9.44l-22.96-32.24h14.64l15.92,22.4-6.24.16,15.84-22.56h14l-22.88,31.68v-9.28l24.24,33.6h-14.96l-16.48-23.76h5.92l-16.24,23.76h-14.8Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m638.3,174.39v-56h24.24c5.01,0,9.33.81,12.96,2.44,3.63,1.63,6.43,3.96,8.4,7,1.97,3.04,2.96,6.64,2.96,10.8s-.99,7.83-2.96,10.84c-1.97,3.01-4.77,5.35-8.4,7-3.63,1.65-7.95,2.48-12.96,2.48h-17.12l5.92-5.84v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m704.85,174.39v-56h23.92c7.79,0,13.84,1.8,18.16,5.4,4.32,3.6,6.48,8.55,6.48,14.84,0,4.21-.99,7.83-2.96,10.84-1.97,3.01-4.77,5.31-8.4,6.88-3.63,1.57-7.95,2.36-12.96,2.36h-17.12l5.92-5.6v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Zm22.64,19.84l-14.08-20.32h13.92l14.08,20.32h-13.92Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m773.05,174.39v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m853.31,175.35c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m914.89,175.35c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24-2.67-.72-5.23-1.08-7.68-1.08s-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m508.21,218.02v-21h3v18.39h11.37v2.61h-14.37Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m535.87,218.2c-1.18,0-2.21-.2-3.1-.6-.89-.4-1.58-.96-2.06-1.67-.48-.71-.72-1.51-.72-2.42s.21-1.64.62-2.34c.41-.7,1.08-1.26,2.01-1.68s2.18-.63,3.76-.63h5.04v2.07h-4.92c-1.44,0-2.41.24-2.91.72-.5.48-.75,1.06-.75,1.74,0,.78.31,1.41.93,1.88.62.47,1.48.71,2.58.71s2.02-.24,2.83-.72c.81-.48,1.39-1.18,1.75-2.1l.57,1.98c-.38.94-1.05,1.69-2.01,2.24s-2.17.83-3.63.83Zm5.22-.18v-3.36l-.15-.63v-5.73c0-1.22-.36-2.17-1.07-2.83s-1.78-1-3.19-1c-.94,0-1.86.16-2.76.46-.9.31-1.66.73-2.28,1.25l-1.2-2.16c.82-.66,1.8-1.17,2.96-1.51,1.15-.35,2.35-.53,3.61-.53,2.18,0,3.86.53,5.04,1.59,1.18,1.06,1.77,2.68,1.77,4.86v9.6h-2.73Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m554.03,218.02v-15.9h2.76v4.29l-.45-1.14c.52-1.04,1.32-1.85,2.4-2.43,1.08-.58,2.34-.87,3.78-.87,1.3,0,2.45.25,3.44.75.99.5,1.76,1.26,2.33,2.28.56,1.02.84,2.31.84,3.87v9.15h-2.88v-8.82c0-1.54-.38-2.7-1.12-3.48s-1.81-1.17-3.17-1.17c-1.02,0-1.91.2-2.67.6-.76.4-1.35.99-1.76,1.77s-.61,1.75-.61,2.91v8.19h-2.88Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m586.27,217.36c-1.54,0-2.92-.32-4.12-.97-1.21-.65-2.17-1.55-2.88-2.71s-1.07-2.5-1.07-4.02.36-2.88,1.07-4.03c.71-1.15,1.67-2.04,2.88-2.69,1.21-.64,2.58-.96,4.12-.96,1.36,0,2.6.28,3.72.83s2.01,1.39,2.69,2.54c.67,1.14,1,2.58,1,4.32s-.33,3.15-1,4.29c-.67,1.14-1.57,2-2.69,2.57s-2.36.85-3.72.85Zm.36,6.66c-1.46,0-2.88-.21-4.25-.62-1.37-.41-2.49-1-3.35-1.75l1.38-2.22c.74.64,1.65,1.14,2.73,1.51s2.21.56,3.39.56c1.88,0,3.26-.44,4.14-1.32.88-.88,1.32-2.22,1.32-4.02v-3.36l.3-3.15-.15-3.18v-4.35h2.73v13.74c0,2.8-.7,4.86-2.1,6.18-1.4,1.32-3.45,1.98-6.15,1.98Zm-.03-9.18c1.06,0,2-.22,2.82-.66.82-.44,1.46-1.05,1.93-1.83s.71-1.68.71-2.7-.24-1.92-.71-2.7c-.47-.78-1.12-1.38-1.93-1.82-.82-.43-1.76-.64-2.82-.64s-2.01.21-2.83.64c-.83.43-1.48,1.04-1.95,1.82-.47.78-.71,1.68-.71,2.7s.24,1.92.71,2.7,1.12,1.39,1.95,1.83c.83.44,1.77.66,2.83.66Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m611.91,218.2c-1.36,0-2.55-.25-3.58-.75s-1.83-1.26-2.4-2.3c-.57-1.03-.85-2.32-.85-3.88v-9.15h2.88v8.82c0,1.56.38,2.73,1.12,3.51.75.78,1.8,1.17,3.17,1.17,1,0,1.87-.21,2.61-.62.74-.41,1.31-1.01,1.71-1.8.4-.79.6-1.75.6-2.87v-8.22h2.88v15.9h-2.73v-4.29l.45,1.14c-.52,1.06-1.3,1.88-2.34,2.46s-2.21.87-3.51.87Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m635.19,218.2c-1.18,0-2.21-.2-3.1-.6-.89-.4-1.58-.96-2.06-1.67-.48-.71-.72-1.51-.72-2.42s.21-1.64.62-2.34c.41-.7,1.08-1.26,2.01-1.68s2.18-.63,3.76-.63h5.04v2.07h-4.92c-1.44,0-2.41.24-2.91.72-.5.48-.75,1.06-.75,1.74,0,.78.31,1.41.93,1.88.62.47,1.48.71,2.58.71s2.02-.24,2.83-.72c.81-.48,1.39-1.18,1.75-2.1l.57,1.98c-.38.94-1.05,1.69-2.01,2.24s-2.17.83-3.63.83Zm5.22-.18v-3.36l-.15-.63v-5.73c0-1.22-.36-2.17-1.07-2.83s-1.78-1-3.19-1c-.94,0-1.86.16-2.76.46-.9.31-1.66.73-2.28,1.25l-1.2-2.16c.82-.66,1.8-1.17,2.96-1.51,1.15-.35,2.35-.53,3.61-.53,2.18,0,3.86.53,5.04,1.59,1.18,1.06,1.77,2.68,1.77,4.86v9.6h-2.73Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m660.36,217.36c-1.54,0-2.92-.32-4.12-.97-1.21-.65-2.17-1.55-2.88-2.71s-1.07-2.5-1.07-4.02.36-2.88,1.07-4.03c.71-1.15,1.67-2.04,2.88-2.69,1.21-.64,2.58-.96,4.12-.96,1.36,0,2.6.28,3.72.83s2.01,1.39,2.69,2.54c.67,1.14,1,2.58,1,4.32s-.33,3.15-1,4.29c-.67,1.14-1.57,2-2.69,2.57s-2.36.85-3.72.85Zm.36,6.66c-1.46,0-2.88-.21-4.25-.62-1.37-.41-2.49-1-3.35-1.75l1.38-2.22c.74.64,1.65,1.14,2.73,1.51s2.21.56,3.39.56c1.88,0,3.26-.44,4.14-1.32.88-.88,1.32-2.22,1.32-4.02v-3.36l.3-3.15-.15-3.18v-4.35h2.73v13.74c0,2.8-.7,4.86-2.1,6.18-1.4,1.32-3.45,1.98-6.15,1.98Zm-.03-9.18c1.06,0,2-.22,2.82-.66.82-.44,1.46-1.05,1.93-1.83s.71-1.68.71-2.7-.24-1.92-.71-2.7c-.47-.78-1.12-1.38-1.93-1.82-.82-.43-1.76-.64-2.82-.64s-2.01.21-2.83.64c-.83.43-1.48,1.04-1.95,1.82-.47.78-.71,1.68-.71,2.7s.24,1.92.71,2.7,1.12,1.39,1.95,1.83c.83.44,1.77.66,2.83.66Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m686.85,218.2c-1.7,0-3.19-.35-4.48-1.05-1.29-.7-2.29-1.66-3-2.88-.71-1.22-1.07-2.62-1.07-4.2s.35-2.98,1.04-4.2c.69-1.22,1.64-2.18,2.85-2.87,1.21-.69,2.58-1.04,4.1-1.04s2.9.34,4.08,1.02c1.18.68,2.1,1.63,2.77,2.86.67,1.23,1,2.67,1,4.31,0,.12,0,.26-.01.42-.01.16-.03.31-.04.45h-13.53v-2.07h12.03l-1.17.72c.02-1.02-.19-1.93-.63-2.73-.44-.8-1.05-1.43-1.82-1.88-.77-.45-1.67-.68-2.68-.68s-1.89.23-2.67.68c-.78.45-1.39,1.08-1.83,1.89-.44.81-.66,1.74-.66,2.78v.48c0,1.06.24,2,.74,2.83.49.83,1.17,1.48,2.05,1.94.88.46,1.89.69,3.03.69.94,0,1.79-.16,2.56-.48.77-.32,1.45-.8,2.03-1.44l1.59,1.86c-.72.84-1.62,1.48-2.69,1.92-1.07.44-2.26.66-3.58.66Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m718.62,218.02v-21h14.82v2.61h-11.82v18.39h-3Zm2.7-8.49v-2.58h10.83v2.58h-10.83Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m749.34,218.2c-1.58,0-3-.35-4.25-1.05-1.25-.7-2.24-1.67-2.96-2.89-.72-1.23-1.08-2.62-1.08-4.19s.36-2.97,1.08-4.18,1.7-2.17,2.94-2.87c1.24-.7,2.66-1.05,4.26-1.05s3,.34,4.25,1.04c1.25.69,2.23,1.65,2.94,2.87s1.07,2.62,1.07,4.2-.36,2.98-1.07,4.2c-.71,1.22-1.69,2.18-2.94,2.88-1.25.7-2.67,1.05-4.25,1.05Zm0-2.52c1.02,0,1.93-.23,2.75-.69.81-.46,1.44-1.12,1.91-1.97.46-.85.69-1.83.69-2.96s-.23-2.12-.69-2.95c-.46-.83-1.1-1.48-1.91-1.94-.81-.46-1.73-.69-2.75-.69s-1.93.23-2.73.69-1.44,1.11-1.92,1.94c-.48.83-.72,1.81-.72,2.95s.24,2.11.72,2.96c.48.85,1.12,1.51,1.92,1.97s1.71.69,2.73.69Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m773.55,218.2c-1.36,0-2.55-.25-3.58-.75s-1.83-1.26-2.4-2.3c-.57-1.03-.85-2.32-.85-3.88v-9.15h2.88v8.82c0,1.56.38,2.73,1.12,3.51.75.78,1.8,1.17,3.17,1.17,1,0,1.87-.21,2.61-.62.74-.41,1.31-1.01,1.71-1.8.4-.79.6-1.75.6-2.87v-8.22h2.88v15.9h-2.73v-4.29l.45,1.14c-.52,1.06-1.3,1.88-2.34,2.46s-2.21.87-3.51.87Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m791.97,218.02v-15.9h2.76v4.29l-.45-1.14c.52-1.04,1.32-1.85,2.4-2.43,1.08-.58,2.34-.87,3.78-.87,1.3,0,2.45.25,3.44.75.99.5,1.76,1.26,2.33,2.28.56,1.02.84,2.31.84,3.87v9.15h-2.88v-8.82c0-1.54-.38-2.7-1.12-3.48s-1.81-1.17-3.17-1.17c-1.02,0-1.91.2-2.67.6-.76.4-1.35.99-1.76,1.77s-.61,1.75-.61,2.91v8.19h-2.88Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m824.23,218.2c-1.54,0-2.92-.34-4.12-1.02-1.21-.68-2.17-1.63-2.87-2.85s-1.05-2.64-1.05-4.26.35-3.03,1.05-4.24,1.66-2.16,2.87-2.83,2.58-1.02,4.12-1.02c1.34,0,2.55.3,3.63.9,1.08.6,1.95,1.5,2.6,2.7.65,1.2.97,2.7.97,4.5s-.32,3.3-.95,4.5c-.63,1.2-1.48,2.11-2.56,2.72s-2.31.92-3.69.92Zm.24-2.52c1,0,1.91-.23,2.71-.69.81-.46,1.45-1.12,1.92-1.97.47-.85.71-1.83.71-2.96s-.24-2.12-.71-2.95-1.11-1.48-1.92-1.94c-.81-.46-1.71-.69-2.71-.69s-1.93.23-2.73.69-1.44,1.11-1.92,1.94c-.48.83-.72,1.81-.72,2.95s.24,2.11.72,2.96c.48.85,1.12,1.51,1.92,1.97s1.71.69,2.73.69Zm5.43,2.34v-4.29l.18-3.69-.3-3.69v-10.59h2.88v22.26h-2.76Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m847.8,218.2c-1.18,0-2.21-.2-3.1-.6-.89-.4-1.58-.96-2.06-1.67-.48-.71-.72-1.51-.72-2.42s.21-1.64.62-2.34c.41-.7,1.08-1.26,2.01-1.68s2.18-.63,3.76-.63h5.04v2.07h-4.92c-1.44,0-2.41.24-2.91.72-.5.48-.75,1.06-.75,1.74,0,.78.31,1.41.93,1.88.62.47,1.48.71,2.58.71s2.02-.24,2.83-.72c.81-.48,1.39-1.18,1.75-2.1l.57,1.98c-.38.94-1.05,1.69-2.01,2.24s-2.17.83-3.63.83Zm5.22-.18v-3.36l-.15-.63v-5.73c0-1.22-.36-2.17-1.07-2.83s-1.78-1-3.19-1c-.94,0-1.86.16-2.76.46-.9.31-1.66.73-2.28,1.25l-1.2-2.16c.82-.66,1.8-1.17,2.96-1.51,1.15-.35,2.35-.53,3.61-.53,2.18,0,3.86.53,5.04,1.59,1.18,1.06,1.77,2.68,1.77,4.86v9.6h-2.73Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m863.55,204.49v-2.37h10.14v2.37h-10.14Zm7.74,13.71c-1.6,0-2.84-.43-3.72-1.29-.88-.86-1.32-2.09-1.32-3.69v-14.58h2.88v14.46c0,.86.21,1.52.64,1.98s1.04.69,1.84.69c.9,0,1.65-.25,2.25-.75l.9,2.07c-.44.38-.96.66-1.58.84s-1.25.27-1.9.27Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m884.77,199.06c-.56,0-1.03-.18-1.39-.54-.37-.36-.56-.8-.56-1.32s.18-.99.56-1.35c.37-.36.83-.54,1.39-.54s1.02.18,1.4.53c.37.35.55.79.55,1.3s-.18,1-.54,1.37-.83.55-1.41.55Zm-1.44,18.96v-15.9h2.88v15.9h-2.88Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m903.69,218.2c-1.58,0-3-.35-4.25-1.05-1.25-.7-2.24-1.67-2.96-2.89-.72-1.23-1.08-2.62-1.08-4.19s.36-2.97,1.08-4.18,1.7-2.17,2.94-2.87c1.24-.7,2.66-1.05,4.26-1.05s3,.34,4.25,1.04c1.25.69,2.23,1.65,2.94,2.87s1.07,2.62,1.07,4.2-.36,2.98-1.07,4.2c-.71,1.22-1.69,2.18-2.94,2.88-1.25.7-2.67,1.05-4.25,1.05Zm0-2.52c1.02,0,1.93-.23,2.75-.69.81-.46,1.44-1.12,1.91-1.97.46-.85.69-1.83.69-2.96s-.23-2.12-.69-2.95c-.46-.83-1.1-1.48-1.91-1.94-.81-.46-1.73-.69-2.75-.69s-1.93.23-2.73.69-1.44,1.11-1.92,1.94c-.48.83-.72,1.81-.72,2.95s.24,2.11.72,2.96c.48.85,1.12,1.51,1.92,1.97s1.71.69,2.73.69Z" style="fill:#f1f2f2; stroke-width:0px;"/><path d="m921.23,218.02v-15.9h2.76v4.29l-.45-1.14c.52-1.04,1.32-1.85,2.4-2.43,1.08-.58,2.34-.87,3.78-.87,1.3,0,2.45.25,3.44.75.99.5,1.76,1.26,2.33,2.28.56,1.02.84,2.31.84,3.87v9.15h-2.88v-8.82c0-1.54-.38-2.7-1.12-3.48s-1.81-1.17-3.17-1.17c-1.02,0-1.91.2-2.67.6-.76.4-1.35.99-1.76,1.77s-.61,1.75-.61,2.91v8.19h-2.88Z" style="fill:#f1f2f2; stroke-width:0px;"/></g></g></svg> \ No newline at end of file diff --git a/public/logos/logo-long-white.svg b/public/logos/logo-long-white.svg deleted file mode 100644 index 0a14b94..0000000 --- a/public/logos/logo-long-white.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="36.09cm" height="11.92cm" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1023 338"><defs><linearGradient id="uuid-32d78aee-1650-45e0-b182-253ceec80168" x1="80.41" y1="124.72" x2="300.75" y2="124.72" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".19" stop-color="#fdfefe" stop-opacity="0"/><stop offset=".22" stop-color="#fdfefe" stop-opacity="0"/><stop offset=".4" stop-color="#c9cbce" stop-opacity=".22"/><stop offset=".69" stop-color="#3c444c" stop-opacity=".83"/><stop offset=".76" stop-color="#151e28"/></linearGradient><linearGradient id="uuid-f1cb7dd3-31ed-4ce6-8ef6-c785108df844" x1="483.27" y1="106.17" x2="336.41" y2="106.17" xlink:href="#uuid-32d78aee-1650-45e0-b182-253ceec80168"/><linearGradient id="uuid-0eadf835-a85d-4dbc-bcfa-56072d023ae8" x1="461.32" y1="241.65" x2="355.69" y2="241.65" xlink:href="#uuid-32d78aee-1650-45e0-b182-253ceec80168"/><linearGradient id="uuid-9bcf6878-75d2-4d22-a8d0-e77186895d76" x1="230" y1="227.24" x2="121.35" y2="227.24" xlink:href="#uuid-32d78aee-1650-45e0-b182-253ceec80168"/></defs><g style="isolation:isolate;"><g id="uuid-5807c821-0337-465f-a6a5-296cebdabb21"><path d="m406.58,137.45h-41.9c-4.78.14-10.9,1.82-17.51,8.78l-15.27,17.89h51.68l23-26.67Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m204.85,225.43h-60.72c-17.43,0-31.61-14.18-31.61-31.61v-11.86h64.53v-31.79h-64.53v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.3-30.11c-11.32-13.02-24.3-15.58-30.78-15.99h-80.36c-34.96,0-63.4,28.44-63.4,63.4v43.95c0,34.96,28.44,63.4,63.4,63.4h32.94l27.77-31.79Z" style="fill:#3d7cc9; stroke-width:0px;"/><g style="opacity:.5;"><path d="m255.26,102.45c-11.31-13.01-24.3-15.57-30.77-15.98h-80.36c-34.96,0-63.4,28.44-63.4,63.4v13.1l31.79-12.8v-.3c0-17.43,14.18-31.61,31.61-31.61h82.73l31.48,36.03,23.23-21.73-26.31-30.11Z" style="fill:url(#uuid-32d78aee-1650-45e0-b182-253ceec80168); mix-blend-mode:multiply; stroke-width:0px;"/></g><path d="m454.93,86.44s-73.74.02-73.72,0c0,0-25.48,0-25.49,0-.77,0-1.58.13-2.34.23-6.7.85-17.54,3.98-27.35,14.61l-29.66,33.88,21.1,24.15,29.26-33.39c5.47-4.64,10.52-7.36,15.3-7.66l65.48-.02,27.42-31.79Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m454.96,86.44h-28.48s0,0,0,0h-28.88c-.12.02-2.15.22-2.15.22-6.7.85-17.54,3.98-27.35,14.61l-21.36,24.63c5.47-4.64,10.52-7.31,15.3-7.66l65.48-.02,27.41-31.78Z" style="fill:url(#uuid-f1cb7dd3-31ed-4ce6-8ef6-c785108df844); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m413.54,257.56l27.41-31.78-77.98-.03-39.85-45.61-.04.04-68.9-78.87c-11.05-11.98-23.42-14.44-29.69-14.84h-25.49l67.64,77.42.04-.04,68.9,78.87c11.06,11.98,23.42,14.44,29.69,14.84h25.49l-.02-.02,22.8.02Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m440.96,225.78l-77.82-.03,13.73,15.83c9.59,10.39,20.05,14.44,27.6,15.97h9.08s27.41-31.77,27.41-31.77Z" style="fill:url(#uuid-0eadf835-a85d-4dbc-bcfa-56072d023ae8); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m257.12,180.18l-.04-.04-67.64,77.42h25.49c5.39,0,18.64-2.86,29.69-14.84l39.94-45-21.08-24.13-6.35,6.59Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m177.07,257.22l27.77-31.79h-60.72c-16.27,0-29.7-12.36-31.41-28.18,1.8,33.36,29.43,59.97,63.23,59.97h1.13Z" style="fill:url(#uuid-9bcf6878-75d2-4d22-a8d0-e77186895d76); mix-blend-mode:multiply; opacity:.2; stroke-width:0px;"/><path d="m505.6,174.39v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m565.11,174.39l24-33.2v9.44l-22.96-32.24h14.64l15.92,22.4-6.24.16,15.84-22.56h14l-22.88,31.68v-9.28l24.24,33.6h-14.96l-16.48-23.76h5.92l-16.24,23.76h-14.8Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m637.84,174.39v-56h24.24c5.01,0,9.33.81,12.96,2.44,3.63,1.63,6.43,3.96,8.4,7,1.97,3.04,2.96,6.64,2.96,10.8s-.99,7.83-2.96,10.84c-1.97,3.01-4.77,5.35-8.4,7-3.63,1.65-7.95,2.48-12.96,2.48h-17.12l5.92-5.84v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m704.39,174.39v-56h23.92c7.79,0,13.84,1.8,18.16,5.4,4.32,3.6,6.48,8.55,6.48,14.84,0,4.21-.99,7.83-2.96,10.84-1.97,3.01-4.77,5.31-8.4,6.88-3.63,1.57-7.95,2.36-12.96,2.36h-17.12l5.92-5.6v21.28h-13.04Zm13.04-19.84l-5.92-6.16h16.4c3.95,0,6.93-.85,8.96-2.56,2.03-1.71,3.04-4.11,3.04-7.2s-1.01-5.48-3.04-7.16c-2.03-1.68-5.01-2.52-8.96-2.52h-16.4l5.92-6.16v31.76Zm22.64,19.84l-14.08-20.32h13.92l14.08,20.32h-13.92Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m772.59,174.39v-56h42.32v10.4h-29.44v35.2h30.48v10.4h-43.36Zm11.92-23.36v-10.16h26.96v10.16h-26.96Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m852.85,175.35c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24s-5.23-1.08-7.68-1.08-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m914.43,175.35c-4.48,0-8.79-.6-12.92-1.8-4.13-1.2-7.45-2.76-9.96-4.68l4.4-9.76c2.35,1.71,5.17,3.11,8.48,4.2,3.31,1.09,6.64,1.64,10,1.64,2.56,0,4.63-.27,6.2-.8,1.57-.53,2.73-1.24,3.48-2.12.75-.88,1.12-1.91,1.12-3.08,0-1.49-.59-2.68-1.76-3.56-1.17-.88-2.73-1.6-4.68-2.16-1.95-.56-4.07-1.09-6.36-1.6-2.29-.51-4.6-1.12-6.92-1.84-2.32-.72-4.45-1.68-6.4-2.88-1.95-1.2-3.49-2.77-4.64-4.72-1.15-1.95-1.72-4.39-1.72-7.32,0-3.2.85-6.12,2.56-8.76,1.71-2.64,4.31-4.75,7.8-6.32,3.49-1.57,7.88-2.36,13.16-2.36,3.52,0,7,.43,10.44,1.28,3.44.85,6.44,2.08,9,3.68l-4.08,9.76c-2.51-1.44-5.09-2.52-7.76-3.24s-5.23-1.08-7.68-1.08-4.61.28-6.16.84c-1.55.56-2.68,1.32-3.4,2.28-.72.96-1.08,2.03-1.08,3.2,0,1.49.59,2.69,1.76,3.6,1.17.91,2.72,1.61,4.64,2.12,1.92.51,4.05,1.01,6.4,1.52,2.35.51,4.67,1.13,6.96,1.88,2.29.75,4.4,1.69,6.32,2.84,1.92,1.15,3.48,2.69,4.68,4.64,1.2,1.95,1.8,4.36,1.8,7.24,0,3.15-.87,6.03-2.6,8.64-1.73,2.61-4.36,4.72-7.88,6.32-3.52,1.6-7.92,2.4-13.2,2.4Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m507.75,218.02v-21h3v18.39h11.37v2.61h-14.37Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m535.41,218.2c-1.18,0-2.21-.2-3.1-.6-.89-.4-1.58-.96-2.06-1.67-.48-.71-.72-1.52-.72-2.42s.21-1.64.62-2.34c.41-.7,1.08-1.26,2.01-1.68s2.18-.63,3.76-.63h5.04v2.07h-4.92c-1.44,0-2.41.24-2.91.72-.5.48-.75,1.06-.75,1.74,0,.78.31,1.41.93,1.88.62.47,1.48.71,2.58.71s2.02-.24,2.83-.72c.81-.48,1.39-1.18,1.75-2.1l.57,1.98c-.38.94-1.05,1.68-2.01,2.23-.96.55-2.17.83-3.63.83Zm5.22-.18v-3.36l-.15-.63v-5.73c0-1.22-.36-2.16-1.07-2.83-.71-.67-1.78-1-3.19-1-.94,0-1.86.16-2.76.46-.9.31-1.66.73-2.28,1.25l-1.2-2.16c.82-.66,1.8-1.17,2.96-1.52,1.15-.35,2.35-.52,3.61-.52,2.18,0,3.86.53,5.04,1.59,1.18,1.06,1.77,2.68,1.77,4.86v9.6h-2.73Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m553.57,218.02v-15.9h2.76v4.29l-.45-1.14c.52-1.04,1.32-1.85,2.4-2.43,1.08-.58,2.34-.87,3.78-.87,1.3,0,2.45.25,3.44.75.99.5,1.76,1.26,2.33,2.28.56,1.02.84,2.31.84,3.87v9.15h-2.88v-8.82c0-1.54-.38-2.7-1.12-3.48-.75-.78-1.81-1.17-3.17-1.17-1.02,0-1.91.2-2.67.6-.76.4-1.35.99-1.76,1.77-.41.78-.61,1.75-.61,2.91v8.19h-2.88Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m585.81,217.36c-1.54,0-2.92-.33-4.12-.97-1.21-.65-2.17-1.56-2.88-2.72-.71-1.16-1.07-2.5-1.07-4.02s.36-2.88,1.07-4.04c.71-1.15,1.67-2.04,2.88-2.68,1.21-.64,2.58-.96,4.12-.96,1.36,0,2.6.27,3.72.82,1.12.55,2.01,1.4,2.69,2.54.67,1.14,1,2.58,1,4.32s-.33,3.15-1,4.29c-.67,1.14-1.57,2-2.69,2.56-1.12.57-2.36.86-3.72.86Zm.36,6.66c-1.46,0-2.88-.21-4.25-.62-1.37-.41-2.49-1-3.35-1.75l1.38-2.22c.74.64,1.65,1.14,2.73,1.51s2.21.55,3.39.55c1.88,0,3.26-.44,4.14-1.32.88-.88,1.32-2.22,1.32-4.02v-3.36l.3-3.15-.15-3.18v-4.35h2.73v13.74c0,2.8-.7,4.86-2.1,6.18-1.4,1.32-3.45,1.98-6.15,1.98Zm-.03-9.18c1.06,0,2-.22,2.82-.66.82-.44,1.46-1.05,1.93-1.83.47-.78.71-1.68.71-2.7s-.24-1.92-.71-2.7-1.12-1.38-1.93-1.81c-.82-.43-1.76-.65-2.82-.65s-2.01.21-2.83.65c-.83.43-1.48,1.03-1.95,1.81s-.71,1.68-.71,2.7.24,1.92.71,2.7c.47.78,1.12,1.39,1.95,1.83.83.44,1.77.66,2.83.66Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m611.45,218.2c-1.36,0-2.55-.25-3.58-.75s-1.83-1.26-2.4-2.29c-.57-1.03-.85-2.33-.85-3.88v-9.15h2.88v8.82c0,1.56.38,2.73,1.12,3.51s1.8,1.17,3.17,1.17c1,0,1.87-.21,2.61-.62.74-.41,1.31-1.01,1.71-1.8.4-.79.6-1.74.6-2.87v-8.22h2.88v15.9h-2.73v-4.29l.45,1.14c-.52,1.06-1.3,1.88-2.34,2.46s-2.21.87-3.51.87Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m634.73,218.2c-1.18,0-2.21-.2-3.1-.6-.89-.4-1.58-.96-2.06-1.67-.48-.71-.72-1.52-.72-2.42s.21-1.64.62-2.34c.41-.7,1.08-1.26,2.01-1.68s2.18-.63,3.76-.63h5.04v2.07h-4.92c-1.44,0-2.41.24-2.91.72-.5.48-.75,1.06-.75,1.74,0,.78.31,1.41.93,1.88.62.47,1.48.71,2.58.71s2.02-.24,2.83-.72c.81-.48,1.39-1.18,1.75-2.1l.57,1.98c-.38.94-1.05,1.68-2.01,2.23-.96.55-2.17.83-3.63.83Zm5.22-.18v-3.36l-.15-.63v-5.73c0-1.22-.36-2.16-1.07-2.83-.71-.67-1.78-1-3.19-1-.94,0-1.86.16-2.76.46-.9.31-1.66.73-2.28,1.25l-1.2-2.16c.82-.66,1.8-1.17,2.96-1.52,1.15-.35,2.35-.52,3.61-.52,2.18,0,3.86.53,5.04,1.59,1.18,1.06,1.77,2.68,1.77,4.86v9.6h-2.73Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m659.9,217.36c-1.54,0-2.92-.33-4.12-.97-1.21-.65-2.17-1.56-2.88-2.72-.71-1.16-1.07-2.5-1.07-4.02s.36-2.88,1.07-4.04c.71-1.15,1.67-2.04,2.88-2.68,1.21-.64,2.58-.96,4.12-.96,1.36,0,2.6.27,3.72.82,1.12.55,2.01,1.4,2.69,2.54.67,1.14,1,2.58,1,4.32s-.33,3.15-1,4.29c-.67,1.14-1.57,2-2.69,2.56-1.12.57-2.36.86-3.72.86Zm.36,6.66c-1.46,0-2.88-.21-4.25-.62-1.37-.41-2.49-1-3.35-1.75l1.38-2.22c.74.64,1.65,1.14,2.73,1.51s2.21.55,3.39.55c1.88,0,3.26-.44,4.14-1.32.88-.88,1.32-2.22,1.32-4.02v-3.36l.3-3.15-.15-3.18v-4.35h2.73v13.74c0,2.8-.7,4.86-2.1,6.18-1.4,1.32-3.45,1.98-6.15,1.98Zm-.03-9.18c1.06,0,2-.22,2.82-.66.82-.44,1.46-1.05,1.93-1.83.47-.78.71-1.68.71-2.7s-.24-1.92-.71-2.7-1.12-1.38-1.93-1.81c-.82-.43-1.76-.65-2.82-.65s-2.01.21-2.83.65c-.83.43-1.48,1.03-1.95,1.81s-.71,1.68-.71,2.7.24,1.92.71,2.7c.47.78,1.12,1.39,1.95,1.83.83.44,1.77.66,2.83.66Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m686.39,218.2c-1.7,0-3.19-.35-4.48-1.05s-2.29-1.66-3-2.88-1.07-2.62-1.07-4.2.35-2.98,1.04-4.2c.69-1.22,1.64-2.17,2.85-2.87,1.21-.69,2.58-1.03,4.1-1.03s2.9.34,4.08,1.02c1.18.68,2.1,1.63,2.77,2.87.67,1.23,1,2.67,1,4.3,0,.12,0,.26-.01.42-.01.16-.03.31-.04.45h-13.53v-2.07h12.03l-1.17.72c.02-1.02-.19-1.93-.63-2.73-.44-.8-1.05-1.42-1.82-1.88s-1.67-.67-2.68-.67-1.89.22-2.67.67c-.78.45-1.39,1.08-1.83,1.89-.44.81-.66,1.74-.66,2.78v.48c0,1.06.24,2,.74,2.83.49.83,1.17,1.47,2.05,1.93.88.46,1.89.69,3.03.69.94,0,1.79-.16,2.56-.48.77-.32,1.45-.8,2.03-1.44l1.59,1.86c-.72.84-1.62,1.48-2.69,1.92-1.07.44-2.26.66-3.58.66Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m718.16,218.02v-21h14.82v2.61h-11.82v18.39h-3Zm2.7-8.49v-2.58h10.83v2.58h-10.83Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m748.88,218.2c-1.58,0-3-.35-4.25-1.05s-2.24-1.67-2.96-2.9c-.72-1.23-1.08-2.62-1.08-4.18s.36-2.97,1.08-4.18,1.7-2.17,2.94-2.87c1.24-.7,2.66-1.05,4.26-1.05s3,.34,4.25,1.03c1.25.69,2.23,1.65,2.94,2.87.71,1.22,1.07,2.62,1.07,4.2s-.36,2.98-1.07,4.2-1.69,2.18-2.94,2.88-2.67,1.05-4.25,1.05Zm0-2.52c1.02,0,1.93-.23,2.75-.69.81-.46,1.44-1.11,1.91-1.96.46-.85.69-1.83.69-2.96s-.23-2.12-.69-2.96c-.46-.83-1.1-1.47-1.91-1.93-.81-.46-1.73-.69-2.75-.69s-1.93.23-2.73.69-1.44,1.1-1.92,1.93c-.48.83-.72,1.82-.72,2.96s.24,2.11.72,2.96c.48.85,1.12,1.5,1.92,1.96s1.71.69,2.73.69Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m773.09,218.2c-1.36,0-2.55-.25-3.58-.75s-1.83-1.26-2.4-2.29c-.57-1.03-.85-2.33-.85-3.88v-9.15h2.88v8.82c0,1.56.38,2.73,1.12,3.51s1.8,1.17,3.17,1.17c1,0,1.87-.21,2.61-.62.74-.41,1.31-1.01,1.71-1.8.4-.79.6-1.74.6-2.87v-8.22h2.88v15.9h-2.73v-4.29l.45,1.14c-.52,1.06-1.3,1.88-2.34,2.46s-2.21.87-3.51.87Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m791.51,218.02v-15.9h2.76v4.29l-.45-1.14c.52-1.04,1.32-1.85,2.4-2.43,1.08-.58,2.34-.87,3.78-.87,1.3,0,2.45.25,3.44.75.99.5,1.76,1.26,2.33,2.28.56,1.02.84,2.31.84,3.87v9.15h-2.88v-8.82c0-1.54-.38-2.7-1.12-3.48-.75-.78-1.81-1.17-3.17-1.17-1.02,0-1.91.2-2.67.6-.76.4-1.35.99-1.76,1.77-.41.78-.61,1.75-.61,2.91v8.19h-2.88Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m823.78,218.2c-1.54,0-2.92-.34-4.12-1.02s-2.17-1.63-2.87-2.85c-.7-1.22-1.05-2.64-1.05-4.26s.35-3.04,1.05-4.25,1.66-2.15,2.87-2.83c1.21-.68,2.58-1.02,4.12-1.02,1.34,0,2.55.3,3.63.9,1.08.6,1.95,1.5,2.6,2.7.65,1.2.97,2.7.97,4.5s-.32,3.3-.95,4.5-1.48,2.11-2.56,2.71c-1.08.61-2.31.92-3.69.92Zm.24-2.52c1,0,1.91-.23,2.71-.69.81-.46,1.45-1.11,1.92-1.96.47-.85.71-1.83.71-2.96s-.24-2.12-.71-2.96-1.11-1.47-1.92-1.93c-.81-.46-1.71-.69-2.71-.69s-1.93.23-2.73.69-1.44,1.1-1.92,1.93c-.48.83-.72,1.82-.72,2.96s.24,2.11.72,2.96c.48.85,1.12,1.5,1.92,1.96s1.71.69,2.73.69Zm5.43,2.34v-4.29l.18-3.69-.3-3.69v-10.59h2.88v22.26h-2.76Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m847.34,218.2c-1.18,0-2.21-.2-3.1-.6-.89-.4-1.58-.96-2.06-1.67-.48-.71-.72-1.52-.72-2.42s.21-1.64.62-2.34c.41-.7,1.08-1.26,2.01-1.68s2.18-.63,3.76-.63h5.04v2.07h-4.92c-1.44,0-2.41.24-2.91.72-.5.48-.75,1.06-.75,1.74,0,.78.31,1.41.93,1.88.62.47,1.48.71,2.58.71s2.02-.24,2.83-.72c.81-.48,1.39-1.18,1.75-2.1l.57,1.98c-.38.94-1.05,1.68-2.01,2.23-.96.55-2.17.83-3.63.83Zm5.22-.18v-3.36l-.15-.63v-5.73c0-1.22-.36-2.16-1.07-2.83-.71-.67-1.78-1-3.19-1-.94,0-1.86.16-2.76.46-.9.31-1.66.73-2.28,1.25l-1.2-2.16c.82-.66,1.8-1.17,2.96-1.52,1.15-.35,2.35-.52,3.61-.52,2.18,0,3.86.53,5.04,1.59,1.18,1.06,1.77,2.68,1.77,4.86v9.6h-2.73Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m863.09,204.49v-2.37h10.14v2.37h-10.14Zm7.74,13.71c-1.6,0-2.84-.43-3.72-1.29-.88-.86-1.32-2.09-1.32-3.69v-14.58h2.88v14.46c0,.86.21,1.52.64,1.98.43.46,1.04.69,1.84.69.9,0,1.65-.25,2.25-.75l.9,2.07c-.44.38-.96.66-1.58.84-.61.18-1.25.27-1.9.27Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m884.31,199.06c-.56,0-1.03-.18-1.39-.54-.37-.36-.56-.8-.56-1.32s.18-.99.56-1.35c.37-.36.83-.54,1.39-.54s1.02.17,1.4.52c.37.35.55.79.55,1.31s-.18,1-.54,1.36c-.36.37-.83.56-1.41.56Zm-1.44,18.96v-15.9h2.88v15.9h-2.88Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m903.23,218.2c-1.58,0-3-.35-4.25-1.05s-2.24-1.67-2.96-2.9c-.72-1.23-1.08-2.62-1.08-4.18s.36-2.97,1.08-4.18,1.7-2.17,2.94-2.87c1.24-.7,2.66-1.05,4.26-1.05s3,.34,4.25,1.03c1.25.69,2.23,1.65,2.94,2.87.71,1.22,1.07,2.62,1.07,4.2s-.36,2.98-1.07,4.2-1.69,2.18-2.94,2.88-2.67,1.05-4.25,1.05Zm0-2.52c1.02,0,1.93-.23,2.75-.69.81-.46,1.44-1.11,1.91-1.96.46-.85.69-1.83.69-2.96s-.23-2.12-.69-2.96c-.46-.83-1.1-1.47-1.91-1.93-.81-.46-1.73-.69-2.75-.69s-1.93.23-2.73.69-1.44,1.1-1.92,1.93c-.48.83-.72,1.82-.72,2.96s.24,2.11.72,2.96c.48.85,1.12,1.5,1.92,1.96s1.71.69,2.73.69Z" style="fill:#3d7cc9; stroke-width:0px;"/><path d="m920.77,218.02v-15.9h2.76v4.29l-.45-1.14c.52-1.04,1.32-1.85,2.4-2.43,1.08-.58,2.34-.87,3.78-.87,1.3,0,2.45.25,3.44.75.99.5,1.76,1.26,2.33,2.28.56,1.02.84,2.31.84,3.87v9.15h-2.88v-8.82c0-1.54-.38-2.7-1.12-3.48-.75-.78-1.81-1.17-3.17-1.17-1.02,0-1.91.2-2.67.6-.76.4-1.35.99-1.76,1.77-.41.78-.61,1.75-.61,2.91v8.19h-2.88Z" style="fill:#3d7cc9; stroke-width:0px;"/></g></g></svg> \ No newline at end of file diff --git a/src/pages/references.vue b/src/pages/references.vue deleted file mode 100644 index 578f253..0000000 --- a/src/pages/references.vue +++ /dev/null @@ -1,28 +0,0 @@ -<script setup lang="ts"> -import { useContent, type ContentData } from '@/composables/useContent' -import AsciiDocContent from '@/components/content/AsciiDocContent.vue' - -const content: ContentData | null = await useContent('pages', 'references') -</script> - -<template> - <div> - <div class="bg-gradient-to-b from-slate-50 to-white dark:from-navy dark:to-navy-light/30 pt-12 pb-8"> - <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8"> - <nav class="text-sm text-gray-400 dark:text-gray-500 mb-6 flex items-center gap-1.5"> - <RouterLink to="/" class="hover:text-elf-blue dark:hover:text-elf-blue transition-colors">Home</RouterLink> - <span>/</span> - <span class="text-gray-700 dark:text-gray-300">{{ content?.title || 'References' }}</span> - </nav> - <p class="font-mono text-xs tracking-[0.2em] uppercase text-elf-blue dark:text-elf-blue mb-3">Resources</p> - <h1 class="text-3xl sm:text-4xl font-serif font-bold text-gray-900 dark:text-white">{{ content?.title || 'References' }}</h1> - </div> - </div> - <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 pb-20"> - <AsciiDocContent v-if="content" :html="content.body" /> - <div v-else class="text-center py-20 text-gray-400"> - <p class="font-mono text-sm">Content not available yet.</p> - </div> - </div> - </div> -</template> diff --git a/vite.config.ts b/vite.config.ts index e50f0ec..2ab5e41 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -3,6 +3,7 @@ import vue from '@vitejs/plugin-vue' import { resolve } from 'node:path' import { globby } from 'globby' import { basename } from 'node:path' + export default defineConfig({ plugins: [vue()], resolve: { @@ -23,7 +24,7 @@ export default defineConfig({ return [ '/', - '/about', '/membership', '/references', '/privacy', '/tos', + '/about', '/membership', '/privacy', '/tos', '/blog', '/learn', '/standards', '/languages', '/leadership', '/supporters', ...posts.map((p) => `/blog/${basename(p, '.json')}`), ...learn.map((p) => `/learn/tutorial/${basename(p, '.json')}`),