diff --git a/data/Keyword/_all.yml b/data/Keyword/_all.yml new file mode 100644 index 0000000..a158893 --- /dev/null +++ b/data/Keyword/_all.yml @@ -0,0 +1,489 @@ +- pk: alignas + name: 'alignas' + type: 'statement' +- pk: alignof + name: 'alignof' + type: 'expression' +- pk: and + name: 'and' + type: 'expression' +- pk: and_eq + name: 'and_eq' + type: 'expression' +- pk: asm + name: 'asm' + type: 'statement' +- pk: auto + name: 'auto' + type: 'statement' +- pk: bitand + name: 'bitand' + type: 'expression' +- pk: bitor + name: 'bitor' + type: 'expression' +- pk: bool + name: 'bool' + type: 'type' +- pk: break + name: 'break' + type: 'statement' +- pk: case + name: 'case' + type: 'statement' +- pk: catch + name: 'catch' + type: 'statement' +- pk: char + name: 'char' + type: 'type' +- pk: char16_t + name: 'char16_t' + type: 'type' +- pk: char32_t + name: 'char32_t' + type: 'type' +- pk: class + name: 'class' + type: 'statement' +- pk: compl + name: 'compl' + type: 'expression' +- pk: concept + name: 'concept' + type: 'statement' +- pk: const + name: 'const' + type: 'statement' +- pk: constexpr + name: 'constexpr' + type: 'statement' +- pk: const_cast + name: 'const_cast' + type: 'expression' +- pk: continue + name: 'continue' + type: 'statement' +- pk: decltype + name: 'decltype' + type: 'statement' +- pk: default + name: 'default' + type: 'statement' +- pk: delete + name: 'delete' + type: 'expression' +- pk: do + name: 'do' + type: 'statement' +- pk: double + name: 'double' + type: 'type' +- pk: dynamic_cast + name: 'dynamic_cast' + type: 'expression' +- pk: else + name: 'else' + type: 'statement' +- pk: enum + name: 'enum' + type: 'statement' +- pk: explicit + name: 'explicit' + type: 'statement' +- pk: export + name: 'export' + type: 'statement' +- pk: extern + name: 'extern' + type: 'statement' +- pk: false + name: 'false' + type: 'expression' +- pk: float + name: 'float' + type: 'type' +- pk: for + name: 'for' + type: 'statement' +- pk: friend + name: 'friend' + type: 'statement' +- pk: goto + name: 'goto' + type: 'statement' +- pk: if + name: 'if' + type: 'statement' +- pk: inline + name: 'inline' + type: 'statement' +- pk: int + name: 'int' + type: 'type' +- pk: long + name: 'long' + type: 'type' +- pk: mutable + name: 'mutable' + type: 'statement' +- pk: namespace + name: 'namespace' + type: 'statement' +- pk: new + name: 'new' + type: 'expression' +- pk: noexcept + name: 'noexcept' + type: 'expression' +- pk: not + name: 'not' + type: 'expression' +- pk: not_eq + name: 'not_eq' + type: 'expression' +- pk: nullptr + name: 'nullptr' + type: 'expression' +- pk: operator + name: 'operator' + type: 'statement' +- pk: or + name: 'or' + type: 'expression' +- pk: or_eq + name: 'or_eq' + type: 'expression' +- pk: private + name: 'private' + type: 'statement' +- pk: protected + name: 'protected' + type: 'statement' +- pk: public + name: 'public' + type: 'statement' +- pk: register + name: 'register' + type: 'statement' +- pk: reinterpret_cast + name: 'reinterpret_cast' + type: 'expression' +- pk: requires + name: 'requires' + type: 'statement' +- pk: return + name: 'return' + type: 'statement' +- pk: short + name: 'short' + type: 'type' +- pk: signed + name: 'signed' + type: 'type' +- pk: sizeof + name: 'sizeof' + type: 'expression' +- pk: static + name: 'static' + type: 'statement' +- pk: static_assert + name: 'static_assert' + type: 'statement' +- pk: static_cast + name: 'static_cast' + type: 'expression' +- pk: struct + name: 'struct' + type: 'type' +- pk: switch + name: 'switch' + type: 'statement' +- pk: template + name: 'template' + type: 'statement' +- pk: this + name: 'this' + type: 'expression' +- pk: thread_local + name: 'thread_local' + type: 'statement' +- pk: throw + name: 'throw' + type: 'statement' +- pk: true + name: 'true' + type: 'expression' +- pk: try + name: 'try' + type: 'statement' +- pk: typedef + name: 'typedef' + type: 'statement' +- pk: typeid + name: 'typeid' + type: 'expression' +- pk: typename + name: 'typename' + type: 'statement' +- pk: union + name: 'union' + type: 'type' +- pk: unsigned + name: 'unsigned' + type: 'type' +- pk: using + name: 'using' + type: 'statement' +- pk: virtual + name: 'virtual' + type: 'statement' +- pk: void + name: 'void' + name: 'void' + type: 'statement' +- pk: volatile + name: 'volatile' + type: 'statement' +- pk: wchar_t + name: 'wchar_t' + name: 'wchar_t' + type: 'type' +- pk: while + name: 'while' + name: 'while' + type: 'statement' +- pk: xor + name: 'xor' + type: 'expression' +- pk: xor_eq + name: 'xor_eq' + type: 'expression' +- pk: '#include' + name: '#include' + type: 'statement' +- pk: '#define' + name: '#define' + type: 'statement' +- pk: '#undef' + name: '#undef' + type: 'statement' +- pk: '#ifdef' + name: '#ifdef' + type: 'statement' +- pk: '#ifndef' + name: '#ifndef' + type: 'statement' +- pk: '#if' + name: '#if' + type: 'statement' +- pk: '#endif' + name: '#endif' + type: 'statement' +- pk: '#else' + name: '#else' + type: 'statement' +- pk: '#elif' + name: '#elif' + type: 'statement' +- pk: '#line' + name: '#line' + type: 'statement' +- pk: '#pragma' + name: '#pragma' + type: 'statement' +- pk: PRINT + name: 'PRINT' + type: 'statement' +- pk: IF + name: 'IF' + type: 'statement' +- pk: THEN + name: 'THEN' + type: 'statement' +- pk: GOTO + name: 'GOTO' + type: 'statement' +- pk: INPUT + name: 'INPUT' + type: 'statement' +- pk: LET + name: 'LET' + type: 'statement' +- pk: GOSUB + name: 'GOSUB' + type: 'statement' +- pk: RETURN + name: 'RETURN' + type: 'statement' +- pk: CLEAR + name: 'CLEAR' + type: 'statement' +- pk: LIST + name: 'LIST' + type: 'statement' +- pk: RUN + name: 'RUN' + type: 'statement' +- pk: END + name: 'END' + type: 'statement' +- pk: PR + name: 'PR' + type: 'statement' +- pk: RND + name: 'RND' + type: 'expression' +- pk: USR + name: 'USR' + type: 'statement' +- pk: '__halt_compiler' + name: '__halt_compiler' + type: 'expression' +- pk: abstract + name: 'abstract' + type: 'statement' +- pk: array + name: 'array' + type: 'expression' +- pk: as + name: 'as' + type: 'statement' +- pk: callable + name: 'callable' + type: 'type' +- pk: clone + name: 'clone' + type: 'expression' +- pk: declare + name: 'declare' + type: 'statement' +- pk: die + name: 'die' + type: 'statement' +- pk: echo + name: 'echo' + type: 'statement' +- pk: elseif + name: 'elseif' + type: 'statement' +- pk: empty + name: 'empty' + type: 'expression' +- pk: enddeclare + name: 'enddeclare' + type: 'statement' +- pk: endfor + name: 'endfor' + type: 'statement' +- pk: endforeach + name: 'endforeach' + type: 'statement' +- pk: endif + name: 'endif' + type: 'statement' +- pk: endswitch + name: 'endswitch' + type: 'statement' +- pk: endwhile + name: 'endwhile' + type: 'statement' +- pk: eval + name: 'eval' + type: 'expression' +- pk: exit + name: 'exit' + type: 'statement' +- pk: extends + name: 'extends' + type: 'statement' +- pk: final + name: 'final' + type: 'statement' +- pk: foreach + name: 'foreach' + type: 'statement' +- pk: function + name: 'function' + type: 'statement' +- pk: global + name: 'global' + type: 'statement' +- pk: implements + name: 'implements' + type: 'statement' +- pk: include + name: 'include' + type: 'statement' +- pk: include_once + name: 'include_once' + type: 'statement' +- pk: instanceof + name: 'instanceof' + type: 'expression' +- pk: insteadof + name: 'insteadof' + type: 'statement' +- pk: interface + name: 'interface' + type: 'statement' +- pk: isset + name: 'isset' + type: 'expression' +- pk: list + name: 'list' + type: 'expression' +- pk: print + name: 'print' + type: 'statement' +- pk: require + name: 'require' + type: 'statement' +- pk: require_once + name: 'require_once' + type: 'statement' +- pk: trait + name: 'trait' + type: 'statement' +- pk: unset + name: 'unset' + type: 'statement' +- pk: use + name: 'use' + type: 'statement' +- pk: var + name: 'var' + type: 'statement' +- pk: chan + name: 'chan' + type: 'type' +- pk: defer + name: 'defer' + type: 'statement' +- pk: fallthrough + name: 'fallthrough' + type: 'statement' +- pk: func + name: 'func' + type: 'statement' +- pk: go + name: 'go' + type: 'statement' +- pk: import + name: 'import' + type: 'statement' +- pk: map + name: 'map' + type: 'type' +- pk: package + name: 'package' + type: 'statement' +- pk: range + name: 'range' + type: 'statement' +- pk: select + name: 'select' + type: 'statement' +- pk: type + name: 'type' + type: 'statement' diff --git a/models/Keyword.yaml b/models/Keyword.yaml index 8845d6f..b4308d2 100644 --- a/models/Keyword.yaml +++ b/models/Keyword.yaml @@ -1 +1,2 @@ -# pk: String +type: String +name: String diff --git a/templates/Language.html.jinja2 b/templates/Language.html.jinja2 index 3767831..946b609 100644 --- a/templates/Language.html.jinja2 +++ b/templates/Language.html.jinja2 @@ -40,12 +40,14 @@ {{ m.show_delimiter_list(language.delimiters, delimiter_type_block) }} - - Keywords - - {{ m.show_list(language.keywords) }} - - + {% for keyword in keywords %} + + {{ keyword }} keywords + + {{ m.show_keywords_list(language.keywords, keyword) }} + + + {% endfor %} diff --git a/templates/macros.jinja2 b/templates/macros.jinja2 index 6edf15c..d6b7855 100644 --- a/templates/macros.jinja2 +++ b/templates/macros.jinja2 @@ -27,3 +27,13 @@ {% endfor %} {% endmacro %} + +{% macro show_keywords_list(keywords, type) %} + +{% endmacro %} diff --git a/views/languages.yaml b/views/languages.yaml index afb898f..1e16af8 100644 --- a/views/languages.yaml +++ b/views/languages.yaml @@ -4,6 +4,8 @@ path: language: session.query(Language).all() template: Language context: + static: + keywords: ['statement', 'expression', 'type'] dynamic: delimiter_type_comment: session.query(EnumDelimiterType).filter(EnumDelimiterType.name == 'comment').one() delimiter_type_string: session.query(EnumDelimiterType).filter(EnumDelimiterType.name == 'string').one()