Add new coding style rules and fix appeared issues.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
This commit is contained in:
@@ -476,7 +476,8 @@ ecma_gc_run (void)
|
||||
obj_prev_p = obj_iter_p;
|
||||
}
|
||||
}
|
||||
} while (marked_anything_during_current_iteration);
|
||||
}
|
||||
while (marked_anything_during_current_iteration);
|
||||
|
||||
/* Sweeping objects that are currently unmarked */
|
||||
for (ecma_object_t *obj_iter_p = ecma_gc_objects_lists[ECMA_GC_COLOR_WHITE_GRAY], *obj_next_p;
|
||||
|
||||
@@ -22,8 +22,7 @@ typedef struct
|
||||
uint8_t element_size;
|
||||
size_t len;
|
||||
size_t size;
|
||||
}
|
||||
array_list_header;
|
||||
} array_list_header;
|
||||
|
||||
static array_list_header *
|
||||
extract_header (array_list al)
|
||||
|
||||
@@ -26,8 +26,7 @@ typedef struct
|
||||
uint8_t key_size;
|
||||
uint8_t value_size;
|
||||
mem_heap_alloc_term_t alloc_term;
|
||||
}
|
||||
hash_table_int;
|
||||
} hash_table_int;
|
||||
|
||||
static hash_table_int *
|
||||
extract_header (hash_table ht)
|
||||
|
||||
@@ -23,8 +23,7 @@ typedef struct linked_list_header
|
||||
{
|
||||
struct linked_list_header *next;
|
||||
uint16_t element_size;
|
||||
}
|
||||
linked_list_header;
|
||||
} linked_list_header;
|
||||
|
||||
#define ASSERT_LIST(list) \
|
||||
do { \
|
||||
|
||||
@@ -25,8 +25,7 @@ typedef struct
|
||||
size_t current_bucket_pos;
|
||||
literal_index_t *raw_buckets;
|
||||
literal_index_t **buckets;
|
||||
}
|
||||
lit_id_hash_table;
|
||||
} lit_id_hash_table;
|
||||
|
||||
lit_id_hash_table *lit_id_hash_table_init (size_t, size_t);
|
||||
void lit_id_hash_table_free (lit_id_hash_table *);
|
||||
|
||||
@@ -24,8 +24,7 @@ typedef struct
|
||||
const ecma_char_t *str;
|
||||
ecma_length_t length;
|
||||
ecma_string_hash_t hash;
|
||||
}
|
||||
lp_string;
|
||||
} lp_string;
|
||||
|
||||
bool lp_string_equal (lp_string, lp_string);
|
||||
bool lp_string_equal_s (lp_string, const char *);
|
||||
|
||||
@@ -124,8 +124,7 @@ static TYPE *convert_##NAME##_to_raw_data (void) { \
|
||||
{ \
|
||||
return NULL; \
|
||||
} \
|
||||
size_t size = mem_heap_recommend_allocation_size ( \
|
||||
array_list_len (NAME.data) * sizeof (NAME##_stack_value_type)); \
|
||||
size_t size = mem_heap_recommend_allocation_size (array_list_len (NAME.data) * sizeof (NAME##_stack_value_type)); \
|
||||
TYPE *DATA = (TYPE *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_LONG_TERM); \
|
||||
if (DATA == NULL) \
|
||||
{ \
|
||||
|
||||
@@ -76,8 +76,7 @@ typedef enum __attr_packed___
|
||||
KW_WHILE,
|
||||
KW_WITH,
|
||||
KW_YIELD
|
||||
}
|
||||
keyword;
|
||||
} keyword;
|
||||
|
||||
|
||||
/* Type of tokens. */
|
||||
@@ -152,8 +151,7 @@ typedef enum __attr_packed___
|
||||
TOK_DIV, // /
|
||||
TOK_DIV_EQ, // /=
|
||||
TOK_EMPTY,
|
||||
}
|
||||
token_type;
|
||||
} token_type;
|
||||
|
||||
typedef size_t locus;
|
||||
|
||||
@@ -163,8 +161,7 @@ typedef struct
|
||||
locus loc;
|
||||
token_type type;
|
||||
literal_index_t uid;
|
||||
}
|
||||
token;
|
||||
} token;
|
||||
|
||||
void lexer_init (const char *, size_t, bool);
|
||||
void lexer_free (void);
|
||||
|
||||
@@ -25,8 +25,7 @@ typedef enum __attr_packed___
|
||||
LIT_STR,
|
||||
LIT_MAGIC_STR,
|
||||
LIT_NUMBER
|
||||
}
|
||||
literal_type;
|
||||
} literal_type;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@@ -36,11 +35,9 @@ typedef struct
|
||||
ecma_number_t num;
|
||||
lp_string lp;
|
||||
void *none;
|
||||
}
|
||||
data;
|
||||
} data;
|
||||
literal_type type;
|
||||
}
|
||||
literal;
|
||||
} literal;
|
||||
|
||||
#define LITERAL_TO_REWRITE (INVALID_VALUE - 1)
|
||||
|
||||
|
||||
@@ -24,8 +24,7 @@ typedef enum __attr_packed___
|
||||
{
|
||||
OPERAND_LITERAL,
|
||||
OPERAND_TMP
|
||||
}
|
||||
operand_type;
|
||||
} operand_type;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@@ -34,10 +33,8 @@ typedef struct
|
||||
{
|
||||
idx_t uid;
|
||||
literal_index_t lit_id;
|
||||
}
|
||||
data;
|
||||
}
|
||||
operand;
|
||||
} data;
|
||||
} operand;
|
||||
|
||||
typedef enum __attr_packed___
|
||||
{
|
||||
@@ -47,8 +44,7 @@ typedef enum __attr_packed___
|
||||
VARG_OBJ_DECL,
|
||||
VARG_CONSTRUCT_EXPR,
|
||||
VARG_CALL_EXPR
|
||||
}
|
||||
varg_list_type;
|
||||
} varg_list_type;
|
||||
|
||||
operand empty_operand (void);
|
||||
operand literal_operand (literal_index_t);
|
||||
|
||||
@@ -29,16 +29,14 @@ typedef struct
|
||||
{
|
||||
literal_index_t lit_id[3];
|
||||
opcode_t op;
|
||||
}
|
||||
op_meta;
|
||||
} op_meta;
|
||||
|
||||
typedef struct tree_header
|
||||
{
|
||||
struct tree_header *parent;
|
||||
linked_list children;
|
||||
uint8_t children_num;
|
||||
}
|
||||
tree_header;
|
||||
} tree_header;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@@ -46,8 +44,7 @@ typedef struct
|
||||
linked_list opcodes;
|
||||
opcode_counter_t opcodes_num;
|
||||
unsigned strict_mode:1;
|
||||
}
|
||||
scopes_tree_int;
|
||||
} scopes_tree_int;
|
||||
|
||||
typedef scopes_tree_int * scopes_tree;
|
||||
|
||||
|
||||
@@ -24,8 +24,7 @@ typedef struct
|
||||
{
|
||||
prop_type type;
|
||||
literal lit;
|
||||
}
|
||||
prop_literal;
|
||||
} prop_literal;
|
||||
|
||||
enum
|
||||
{
|
||||
|
||||
@@ -85,8 +85,7 @@ typedef enum __attr_packed___
|
||||
PROP_SET,
|
||||
PROP_GET,
|
||||
VARG
|
||||
}
|
||||
prop_type;
|
||||
} prop_type;
|
||||
|
||||
void syntax_init (void);
|
||||
void syntax_free (void);
|
||||
|
||||
@@ -279,7 +279,6 @@ OP_ARGS_LIST (GETOP_DECL)
|
||||
typedef struct
|
||||
{
|
||||
uint8_t uids[4];
|
||||
}
|
||||
raw_opcode;
|
||||
} raw_opcode;
|
||||
|
||||
#endif /* OPCODES_H */
|
||||
|
||||
@@ -1,4 +1,14 @@
|
||||
set rules {
|
||||
jerry_always_curly
|
||||
jerry_braces_on_separate_line
|
||||
jerry_braces_same_line_or_column
|
||||
jerry_funcname_space_parentheses
|
||||
jerry_identifier_no_space_bracket
|
||||
jerry_indentation
|
||||
jerry_max_line_length
|
||||
jerry_no_space_after_opening_parentheses
|
||||
jerry_no_space_before_closing_parentheses
|
||||
jerry_no_tabs
|
||||
jerry_no_trailing_spaces
|
||||
jerry_switch_case
|
||||
}
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
#!/usr/bin/tclsh
|
||||
|
||||
# Copyright 2015 Samsung Electronics Co., Ltd.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
foreach file_name [getSourceFileNames] {
|
||||
set state "control"
|
||||
set do_marks {}
|
||||
set prev_tok_type ""
|
||||
set prev_ctrl ""
|
||||
set expect_while false
|
||||
set expect_open_brace false
|
||||
set paren_count 0
|
||||
|
||||
foreach token [getTokens $file_name 1 0 -1 -1 {if do while else for leftparen rightparen semicolon leftbrace rightbrace}] {
|
||||
set tok_val [lindex $token 0]
|
||||
set line_num [lindex $token 1]
|
||||
set col_num [lindex $token 2]
|
||||
set tok_type [lindex $token 3]
|
||||
|
||||
if {$state == "expression"} {
|
||||
# puts "expression $paren_count $tok_type ($line_num , $col_num)"
|
||||
if {$tok_type == "leftparen"} {
|
||||
incr paren_count
|
||||
} elseif {$tok_type == "rightparen"} {
|
||||
incr paren_count -1
|
||||
if {$paren_count == 0} {
|
||||
set state "control"
|
||||
set expect_open_brace true
|
||||
} elseif {$paren_count < 0 } {
|
||||
report $file_name $line_num "unexpected right parentheses"
|
||||
}
|
||||
} elseif {$tok_type != "semicolon"} {
|
||||
report $file_name $line_num "unexpected token: $tok_type"
|
||||
}
|
||||
} else {
|
||||
if {$expect_open_brace == true} {
|
||||
if {$tok_type == "if" && $prev_tok_type == "else"} {
|
||||
# empty
|
||||
} elseif {$tok_type != "leftbrace"} {
|
||||
report $file_name [lindex $prev_ctrl 1] "brace after \'[lindex $prev_ctrl 3]\' required"
|
||||
}
|
||||
set expect_open_brace false
|
||||
}
|
||||
|
||||
if {$tok_type == "while" && ($expect_while == true || [lindex $prev_ctrl 3] == "do")} {
|
||||
set expect_while false
|
||||
set prev_ctrl ""
|
||||
} elseif {$tok_type in {if for while}} {
|
||||
set state "expression"
|
||||
set prev_ctrl $token
|
||||
} elseif {$tok_type in {do else}} {
|
||||
set expect_open_brace true
|
||||
set prev_ctrl $token
|
||||
} elseif {$tok_type == "leftbrace"} {
|
||||
if {[lindex $prev_ctrl 3] == "do"} {
|
||||
lappend do_marks 1
|
||||
} else {
|
||||
lappend do_marks 0
|
||||
}
|
||||
set prev_ctrl ""
|
||||
} elseif {$tok_type == "rightbrace"} {
|
||||
if {[llength $do_marks] > 0} {
|
||||
if {[lindex $do_marks end] == 1} {
|
||||
set expect_while true
|
||||
}
|
||||
set do_marks [lreplace $do_marks end end]
|
||||
} else {
|
||||
report $file_name $line_num "unmatched brace"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
set prev_tok_type $tok_type
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
#!/usr/bin/tclsh
|
||||
|
||||
# Copyright 2015 Samsung Electronics Co., Ltd.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
foreach file_name [getSourceFileNames] {
|
||||
set state "normal"
|
||||
set lines {}
|
||||
set cols {}
|
||||
set struct_marks {}
|
||||
set expect_struct_name false
|
||||
set prev_tok ""
|
||||
set def_start false
|
||||
set expect_newline false
|
||||
set check_newline true
|
||||
|
||||
foreach token [getTokens $file_name 1 0 -1 -1 {}] {
|
||||
set tok_val [lindex $token 0]
|
||||
set line_num [lindex $token 1]
|
||||
set col_num [lindex $token 2]
|
||||
set tok_type [lindex $token 3]
|
||||
|
||||
if {$state == "macro"} {
|
||||
if {$col_num == 0} {
|
||||
set state "normal"
|
||||
} else {
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if {$tok_type in {space ccomment cppcomment newline}} {
|
||||
continue
|
||||
}
|
||||
|
||||
if {$tok_type == "pp_define"} {
|
||||
set state "macro"
|
||||
set prev_tok ""
|
||||
set def_start false
|
||||
continue
|
||||
}
|
||||
|
||||
if {$expect_struct_name == true} {
|
||||
if {$tok_type == "identifier" && $line_num != [lindex $prev_tok 1]} {
|
||||
report $file_name $line_num "type name should be on the same line with the rightbrace"
|
||||
}
|
||||
set expect_struct_name false
|
||||
}
|
||||
|
||||
# check that rightbrace and typename (in struct, union and enum definitons) are on the same line
|
||||
if {$tok_type in {struct enum union}} {
|
||||
set def_start true
|
||||
} elseif {$tok_type == "semicolon"} {
|
||||
set def_start false
|
||||
} elseif {$tok_type == "leftbrace"} {
|
||||
lappend cols $col_num
|
||||
lappend lines $line_num
|
||||
if {$def_start == true} {
|
||||
lappend struct_marks 1
|
||||
set def_start false
|
||||
} elseif {[lindex $prev_tok 3] == "assign"} {
|
||||
lappend struct_marks 2
|
||||
set check_newline false
|
||||
} else {
|
||||
lappend struct_marks 0
|
||||
}
|
||||
} elseif {$tok_type == "rightbrace"} {
|
||||
if {[llength $lines] > 0} {
|
||||
if {[lindex $struct_marks end] == 1} {
|
||||
set expect_struct_name true
|
||||
set check_newline false
|
||||
} elseif {[lindex $struct_marks end] == 2} {
|
||||
set check_newline false
|
||||
}
|
||||
set lines [lreplace $lines end end]
|
||||
set cols [lreplace $cols end end]
|
||||
set struct_marks [lreplace $struct_marks end end]
|
||||
} else {
|
||||
report $file_name $line_num "unmatched brace"
|
||||
}
|
||||
}
|
||||
|
||||
# check that braces are on separate lines
|
||||
if {$check_newline == true} {
|
||||
if {$expect_newline == true} {
|
||||
if {$tok_type == "semicolon"} {
|
||||
# empty
|
||||
} elseif {[lindex $prev_tok 1] == $line_num} {
|
||||
report $file_name $line_num "brace should be placed on a separate line"
|
||||
} else {
|
||||
set expect_newline false
|
||||
}
|
||||
} elseif {$tok_type in {leftbrace rightbrace}} {
|
||||
if {[lindex $prev_tok 1] == $line_num} {
|
||||
report $file_name $line_num "brace should be placed on a separate line"
|
||||
}
|
||||
set expect_newline true
|
||||
}
|
||||
} else {
|
||||
set check_newline true
|
||||
}
|
||||
|
||||
set prev_tok $token
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/tclsh
|
||||
|
||||
# Copyright 2015 Samsung Electronics Co., Ltd.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
foreach file_name [getSourceFileNames] {
|
||||
set state "normal"
|
||||
set lines {}
|
||||
set cols {}
|
||||
|
||||
foreach token [getTokens $file_name 1 0 -1 -1 {}] {
|
||||
set tok_val [lindex $token 0]
|
||||
set line_num [lindex $token 1]
|
||||
set col_num [lindex $token 2]
|
||||
set tok_type [lindex $token 3]
|
||||
|
||||
if {$state == "macro"} {
|
||||
if {$col_num == 0} {
|
||||
set state "normal"
|
||||
} else {
|
||||
set prev_tok_line $line_num
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if {$tok_type in {space ccomment cppcomment newline}} {
|
||||
continue
|
||||
}
|
||||
|
||||
if {$tok_type == "pp_define"} {
|
||||
set state "macro"
|
||||
continue
|
||||
}
|
||||
|
||||
if {$tok_type == "leftbrace"} {
|
||||
lappend cols $col_num
|
||||
lappend lines $line_num
|
||||
} elseif {$tok_type == "rightbrace"} {
|
||||
if {[llength $lines] > 0} {
|
||||
if {[lindex $lines end] != $line_num && [lindex $cols end] != $col_num} {
|
||||
report $file_name $line_num "matching braces should be on the same line or column"
|
||||
}
|
||||
set lines [lreplace $lines end end]
|
||||
set cols [lreplace $cols end end]
|
||||
} else {
|
||||
report $file_name $line_num "unmatched brace"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/tclsh
|
||||
|
||||
# Copyright 2015 Samsung Electronics Co., Ltd.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
proc check_part_of_the_file {file line_num col_start col_end} {
|
||||
if {$col_start == $col_end} {
|
||||
return
|
||||
}
|
||||
set line [getLine $file $line_num]
|
||||
|
||||
if {[regexp {^\s*#[ ]*define} $line]} {
|
||||
return
|
||||
}
|
||||
|
||||
set line [string range $line $col_start $col_end]
|
||||
|
||||
if {[regexp {([[:alnum:]][\s]{2,}\()|([[:alnum:]]\()} $line]} {
|
||||
report $file $line_num "there should be exactly one space before left parentheses"
|
||||
}
|
||||
}
|
||||
|
||||
foreach fileName [getSourceFileNames] {
|
||||
set checkLine 1
|
||||
set checkColStart 0
|
||||
set seenOmitToken false
|
||||
foreach token [getTokens $fileName 1 0 -1 -1 {}] {
|
||||
set lineNumber [lindex $token 1]
|
||||
set colNumber [lindex $token 2]
|
||||
set tokenType [lindex $token 3]
|
||||
|
||||
if {$checkLine != $lineNumber} {
|
||||
if {!$seenOmitToken} {
|
||||
check_part_of_the_file $fileName $checkLine $checkColStart end
|
||||
}
|
||||
set checkColStart $colNumber
|
||||
set checkLine $lineNumber
|
||||
} elseif {$seenOmitToken} {
|
||||
set checkColStart $colNumber
|
||||
}
|
||||
|
||||
if {$tokenType in {ccomment cppcomment stringlit}} {
|
||||
check_part_of_the_file $fileName $checkLine $checkColStart $colNumber
|
||||
set seenOmitToken true
|
||||
} else {
|
||||
set seenOmitToken false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/tclsh
|
||||
|
||||
# Copyright 2015 Samsung Electronics Co., Ltd.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
proc check_part_of_the_file {file line_num col_start col_end} {
|
||||
if {$col_start == $col_end} {
|
||||
return
|
||||
}
|
||||
|
||||
set line [getLine $file $line_num]
|
||||
set line [string range $line $col_start $col_end]
|
||||
|
||||
if {[regexp {[[:alnum:]_][\s]+\[} $line]} {
|
||||
report $file $line_num "there should be no spaces between identifier and left bracket"
|
||||
}
|
||||
}
|
||||
|
||||
foreach fileName [getSourceFileNames] {
|
||||
set checkLine 1
|
||||
set checkColStart 0
|
||||
set seenOmitToken false
|
||||
foreach token [getTokens $fileName 1 0 -1 -1 {}] {
|
||||
set lineNumber [lindex $token 1]
|
||||
set colNumber [lindex $token 2]
|
||||
set tokenType [lindex $token 3]
|
||||
|
||||
if {$checkLine != $lineNumber} {
|
||||
if {!$seenOmitToken} {
|
||||
check_part_of_the_file $fileName $checkLine $checkColStart end
|
||||
}
|
||||
set checkColStart $colNumber
|
||||
set checkLine $lineNumber
|
||||
} elseif {$seenOmitToken} {
|
||||
set checkColStart $colNumber
|
||||
}
|
||||
|
||||
if {$tokenType in {ccomment cppcomment stringlit}} {
|
||||
check_part_of_the_file $fileName $checkLine $checkColStart $colNumber
|
||||
set seenOmitToken true
|
||||
} else {
|
||||
set seenOmitToken false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/tclsh
|
||||
|
||||
# Copyright 2015 Samsung Electronics Co., Ltd.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set maxLen 120
|
||||
|
||||
foreach f [getSourceFileNames] {
|
||||
set lineNumber 1
|
||||
foreach line [getAllLines $f] {
|
||||
if {[string length $line] > $maxLen} {
|
||||
report $f $lineNumber "line is longer than ${maxLen} characters"
|
||||
}
|
||||
incr lineNumber
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/tclsh
|
||||
|
||||
# Copyright 2015 Samsung Electronics Co., Ltd.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
proc check_part_of_the_file {file line_num col_start col_end} {
|
||||
if {$col_start == $col_end} {
|
||||
return
|
||||
}
|
||||
|
||||
set line [getLine $file $line_num]
|
||||
set line [string range $line $col_start $col_end]
|
||||
|
||||
if {[regexp {\(+[[:blank:]]} $line]} {
|
||||
report $file $line_num "there should be no blank characters after opening parentheses"
|
||||
}
|
||||
}
|
||||
|
||||
foreach fileName [getSourceFileNames] {
|
||||
set checkLine 1
|
||||
set checkColStart 0
|
||||
set seenOmitToken false
|
||||
foreach token [getTokens $fileName 1 0 -1 -1 {}] {
|
||||
set lineNumber [lindex $token 1]
|
||||
set colNumber [lindex $token 2]
|
||||
set tokenType [lindex $token 3]
|
||||
|
||||
if {$checkLine != $lineNumber} {
|
||||
if {!$seenOmitToken} {
|
||||
check_part_of_the_file $fileName $checkLine $checkColStart end
|
||||
}
|
||||
set checkColStart $colNumber
|
||||
set checkLine $lineNumber
|
||||
} elseif {$seenOmitToken} {
|
||||
set checkColStart $colNumber
|
||||
}
|
||||
|
||||
if {$tokenType in {ccomment cppcomment stringlit}} {
|
||||
check_part_of_the_file $fileName $checkLine $checkColStart $colNumber
|
||||
set seenOmitToken true
|
||||
} else {
|
||||
set seenOmitToken false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/tclsh
|
||||
|
||||
# Copyright 2015 Samsung Electronics Co., Ltd.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
foreach f [getSourceFileNames] {
|
||||
set lineNumber 1
|
||||
foreach line [getAllLines $f] {
|
||||
if {[regexp {[[:graph:]][[:blank:]]+\)} $line]} {
|
||||
report $f $lineNumber "there should be no blank characters before closing parentheses"
|
||||
}
|
||||
incr lineNumber
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/tclsh
|
||||
|
||||
# Copyright 2015 Samsung Electronics Co., Ltd.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
foreach f [getSourceFileNames] {
|
||||
set lineNumber 1
|
||||
foreach line [getAllLines $f] {
|
||||
if {[regexp {\t} $line]} {
|
||||
report $f $lineNumber "tabs are not allowed"
|
||||
}
|
||||
incr lineNumber
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/tclsh
|
||||
|
||||
# Copyright 2015 Samsung Electronics Co., Ltd.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
foreach f [getSourceFileNames] {
|
||||
set lineNumber 1
|
||||
foreach line [getAllLines $f] {
|
||||
if {[regexp {[[:blank:]]$} $line]} {
|
||||
report $f $lineNumber "trailing space is not allowed"
|
||||
}
|
||||
incr lineNumber
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user