From 923609de6022ea79443938bd26b5ee97a54bb497 Mon Sep 17 00:00:00 2001 From: RazvanMitrica Date: Mon, 5 Nov 2018 14:05:10 +0200 Subject: [PATCH] .coafile: Check yaml files and templates This entrypoint adds a .coafile for .yaml and .jinja2 files. Closes https://github.com/coala/coAST/issues/33 --- .coafile | 7 ++ data/Language/CSharp.yaml | 159 +++++++++++++++++---------------- data/Language/JSON.yaml | 2 +- data/Language/Java.yaml | 4 +- data/Language/JavaScript.yaml | 3 +- data/Language/Python.yaml | 3 +- data/Language/TinyBasic.yaml | 3 +- models/DataType.yaml | 4 +- templates/Language.html.jinja2 | 2 +- templates/home.html.jinja2 | 2 +- templates/macros.jinja2 | 14 +-- views/languages.yaml | 9 +- 12 files changed, 113 insertions(+), 99 deletions(-) create mode 100644 .coafile diff --git a/.coafile b/.coafile new file mode 100644 index 0000000..cf26458 --- /dev/null +++ b/.coafile @@ -0,0 +1,7 @@ +[jinja2] +bears = Jinja2Bear +files = **.jinja2 + +[yaml] +bears = YAMLLintBear +files = *.yml, **.yaml diff --git a/data/Language/CSharp.yaml b/data/Language/CSharp.yaml index 96f57b0..626f955 100644 --- a/data/Language/CSharp.yaml +++ b/data/Language/CSharp.yaml @@ -1,7 +1,8 @@ identifier: CSharp full_name: C# wikidata: Q2370 -grammar_file: https://github.com/antlr/grammars-v4/tree/master/csharp/CSharpParser.g4 +grammar_file: https://github.com/antlr/grammars-v4/tree/master/csharp/ + CSharpParser.g4 aliases: - C Sharp - CS @@ -18,81 +19,81 @@ delimiters: - verbatim - curly_braces keywords: -- abstract -- as -- base -- bool -- break -- byte -- case -- catch -- char -- checked -- class -- const -- continue -- decimal -- default -- delegate -- do -- double -- else -- enum -- event -- explicit -- extern -- false -- finally -- fixed -- float -- for -- foreach -- goto -- if -- implicit -- in -- int -- interface -- internal -- is -- lock -- long -- namespace -- new -- 'null' -- object -- operator -- out -- override -- params -- private -- protected -- public -- readonly -- ref -- return -- sbyte -- sealed -- short -- sizeof -- stackalloc -- static -- string -- struct -- switch -- this -- throw -- true -- try -- typeof -- uint -- ulong -- unchecked -- unsafe -- ushort -- using -- using static -- virtual -- void -- volatile -- while + - abstract + - as + - base + - bool + - break + - byte + - case + - catch + - char + - checked + - class + - const + - continue + - decimal + - default + - delegate + - do + - double + - else + - enum + - event + - explicit + - extern + - false + - finally + - fixed + - float + - for + - foreach + - goto + - if + - implicit + - in + - int + - interface + - internal + - is + - lock + - long + - namespace + - new + - 'null' + - object + - operator + - out + - override + - params + - private + - protected + - public + - readonly + - ref + - return + - sbyte + - sealed + - short + - sizeof + - stackalloc + - static + - string + - struct + - switch + - this + - throw + - true + - try + - typeof + - uint + - ulong + - unchecked + - unsafe + - ushort + - using + - using static + - virtual + - void + - volatile + - while diff --git a/data/Language/JSON.yaml b/data/Language/JSON.yaml index ee38ff4..9d79c31 100644 --- a/data/Language/JSON.yaml +++ b/data/Language/JSON.yaml @@ -2,7 +2,7 @@ identifier: JSON wikidata: Q2063 full_name: JavaScript Object Notation grammar_file: https://github.com/antlr/grammars-v4/tree/master/json/JSON.g4 -extensions: +extensions: - json aliases: - json diff --git a/data/Language/Java.yaml b/data/Language/Java.yaml index 820b69a..247ecf6 100644 --- a/data/Language/Java.yaml +++ b/data/Language/Java.yaml @@ -5,14 +5,14 @@ full_name: Java grammar_file: https://github.com/antlr/grammars-v4/blob/master/java8/Java8.g4 aliases: - java -extensions: +extensions: - java delimiters: # comment delimters: - double_slash - multiline_slash_star # string delimiters: - - double_quote_slash_escape + - double_quote_slash_escape datatypes: - boolean_java - byte_java diff --git a/data/Language/JavaScript.yaml b/data/Language/JavaScript.yaml index 2adf90a..44ed5cb 100644 --- a/data/Language/JavaScript.yaml +++ b/data/Language/JavaScript.yaml @@ -1,6 +1,7 @@ identifier: JavaScript wikidata: Q2005 -grammar_file: https://github.com/antlr/grammars-v4/tree/master/javascript/JavaScriptParser.g4 +grammar_file: https://github.com/antlr/grammars-v4/tree/master/javascript/ + JavaScriptParser.g4 aliases: - js - ecmascript diff --git a/data/Language/Python.yaml b/data/Language/Python.yaml index 87b6b53..2f6ff85 100644 --- a/data/Language/Python.yaml +++ b/data/Language/Python.yaml @@ -1,7 +1,8 @@ identifier: Python wikidata: Q28865 versions: 2.7, 3.3, 3.4, 3.5, 3.6 -grammar_file: https://github.com/antlr/grammars-v4/tree/master/python3/Python3.g4 +grammar_file: https://github.com/antlr/grammars-v4/tree/master/python3/ + Python3.g4 aliases: - py extensions: diff --git a/data/Language/TinyBasic.yaml b/data/Language/TinyBasic.yaml index 7e90c4f..b0d99bb 100644 --- a/data/Language/TinyBasic.yaml +++ b/data/Language/TinyBasic.yaml @@ -1,7 +1,8 @@ identifier: TinyBasic full_name: TinyBasic wikidata: Q586622 -grammar_file: https://github.com/antlr/grammars-v4/tree/master/tinybasic/tinybasic.g4 +grammar_file: https://github.com/antlr/grammars-v4/tree/master/tinybasic/ + tinybasic.g4 aliases: - TB extensions: diff --git a/models/DataType.yaml b/models/DataType.yaml index 37ad339..7687e7e 100644 --- a/models/DataType.yaml +++ b/models/DataType.yaml @@ -3,5 +3,5 @@ keyword: String # Keyword that identifies the type i.e. int, str integer-min: String # String representing minium integer or uncertain integer-max: String # String represetinng maximum integer or uncertain integer-signed: Boolean # Whether the datatype is signed integer or not -delimiters: Delimiter[] # If the datatype has any delimiters -literals: Keyword[] # List of literals for a datatype +delimiters: Delimiter[] # If the datatype has any delimiters +literals: Keyword[] # List of literals for a datatype diff --git a/templates/Language.html.jinja2 b/templates/Language.html.jinja2 index 2cef427..5762ea2 100644 --- a/templates/Language.html.jinja2 +++ b/templates/Language.html.jinja2 @@ -14,7 +14,7 @@ Grammar File - + {{ m.show_grammar(language.grammar_file) }} diff --git a/templates/home.html.jinja2 b/templates/home.html.jinja2 index 544913e..f87d6a3 100644 --- a/templates/home.html.jinja2 +++ b/templates/home.html.jinja2 @@ -13,7 +13,7 @@ diff --git a/templates/macros.jinja2 b/templates/macros.jinja2 index a66fc79..7d6eb30 100644 --- a/templates/macros.jinja2 +++ b/templates/macros.jinja2 @@ -3,17 +3,17 @@ {{ language.full_name }} {% else %} {{ language.identifier }} -{% endif %} +{% endif %}{# if language.full_name #} {% endmacro %} {% macro show_grammar(grammar_file) %} - {{grammar_file}} + {{ grammar_file }} {% endmacro %} {% macro show_list(list, separator=',') %} {% for item in list %} - {{ item.pk | escape }}{% if not loop.last %}{{separator}} {% endif %} - {% endfor %} + {{ item.pk | escape }}{% if not loop.last %}{{ separator }} {% endif %} + {% endfor %}{# for item in list #} {% endmacro %} {% macro show_delimiter_list(delimiters, type) %} @@ -25,9 +25,9 @@ {{ item.end | escape }} {% else %} (EOL) - {% endif %} + {% endif %}{# if item.end #} - {% endif %} - {% endfor %} + {% endif %}{# if item.type == type #} + {% endfor %}{# for item in delimiters #} {% endmacro %} diff --git a/views/languages.yaml b/views/languages.yaml index afb898f..c62e2ef 100644 --- a/views/languages.yaml +++ b/views/languages.yaml @@ -5,6 +5,9 @@ path: template: Language context: dynamic: - delimiter_type_comment: session.query(EnumDelimiterType).filter(EnumDelimiterType.name == 'comment').one() - delimiter_type_string: session.query(EnumDelimiterType).filter(EnumDelimiterType.name == 'string').one() - delimiter_type_block: session.query(EnumDelimiterType).filter(EnumDelimiterType.name == 'block').one() + delimiter_type_comment: session.query(EnumDelimiterType).filter + (EnumDelimiterType.name == 'comment').one() + delimiter_type_string: session.query(EnumDelimiterType).filter + (EnumDelimiterType.name == 'string').one() + delimiter_type_block: session.query(EnumDelimiterType).filter + (EnumDelimiterType.name == 'block').one()