crokus 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be5b5ebda83413fed630ed6069d00528c985cc2a29b7d977e5a3ce31b781e267
4
- data.tar.gz: 2f450a1c765c7aed5f4707f50b83bdf6d3ec1f9b8e4e5bc2173a41f1c21be556
3
+ metadata.gz: 6b12095d7e84e7b72f5e38eaa2901dc98044ffd7c42b582a80a72364be03ef29
4
+ data.tar.gz: 43dbd24919d3ec3e73981d8b9f22345a6f0885b5d1487ace5fbcc00d84070394
5
5
  SHA512:
6
- metadata.gz: 1b0788d72e8c057b4c2a01581a164e106b33c21c122e2de6a77751e264fdd173f11b5a43044dced72e389eceabf78c4d601912067c486b7a6fc794d94e1c17b7
7
- data.tar.gz: 8ff0cc75ee7c2866f611e324439ac278b9c01d57e9df14bfc14cdd8d7c6047ffad0f6a1991caf03f126bce65e098946bb6ece4811e777d02a0fe4416169cdbab
6
+ metadata.gz: 43c1ab8d6bf5f8a798c8d97ca65de2b04e12ed6f6ce6e76f45ab91813c7484a8c37726c4133056c940cf2366386d8bbd3020afac5ed663dbc14809b7de58f5af
7
+ data.tar.gz: ada4e46905d24b2cda56582b03f8569baac7bce9b104f548cba1fb594799c901b54c3f7722478dd3a2275b918c0a0f6b962d1f3d74df11d7d562b35ddcee6c46
@@ -34,7 +34,8 @@ module Crokus
34
34
  pretty_print
35
35
 
36
36
  if options[:trojan]
37
- insert_trojan
37
+ return_code=insert_trojan
38
+ return return_code
38
39
  end
39
40
 
40
41
  build_tac
@@ -108,9 +109,11 @@ module Crokus
108
109
  if infected_ast
109
110
  code=PrettyPrinter.new.visit(infected_ast)
110
111
  pp_c=@base_name+"_troj.c"
111
- puts code
112
112
  File.open(pp_c,'w'){|f| f.puts code}
113
- puts " |--> saved as #{pp_c}" unless options[:mute]
113
+ puts " "*5+"|--> saved as #{pp_c}" unless options[:mute]
114
+ return true
115
+ else
116
+ return false
114
117
  end
115
118
  end
116
119
 
@@ -159,7 +159,7 @@ module Crokus
159
159
  fname=func.name.accept(self)
160
160
  args =func.args.collect{|arg| arg.accept(self)}
161
161
  args=args.join(",")
162
- code = "\n#{tname} #{fname}(#{args})"
162
+ code = "\n#{tname} #{fname}(#{args});"
163
163
  return code
164
164
  end
165
165
 
@@ -194,7 +194,7 @@ module Crokus
194
194
  if assign.rhs.is_a? Parenth
195
195
  rhs=assign.rhs.expr.accept(self)
196
196
  end
197
- ret="#{lhs} #{op} #{rhs};"
197
+ ret="#{lhs} #{op} #{rhs}"
198
198
  ret
199
199
  end
200
200
 
@@ -434,7 +434,9 @@ module Crokus
434
434
  code << "{"
435
435
  code.indent=2
436
436
  body.each do |stmt|
437
- code << stmt.accept(self,true)
437
+ kode_stmt = stmt.accept(self,true)
438
+ kode_stmt << ";"
439
+ code << kode_stmt
438
440
  end
439
441
  code.indent=0
440
442
  code << "}"
@@ -28,7 +28,10 @@ module Crokus
28
28
  puts " "*1+"|--[+] func #{func.name}"
29
29
  func_troj=super(func,args)
30
30
  success=insert_trojan(func_troj)
31
- @nb_trojans+=1 if success
31
+ if success
32
+ @nb_trojans+=1
33
+ func_troj.name=Ident.new(Token.create "#{func.name}_troj")
34
+ end
32
35
  func_troj
33
36
  end
34
37
 
@@ -137,7 +140,7 @@ module Crokus
137
140
 
138
141
  def get_arg_names args
139
142
  ret=[]
140
- ret << args.map{|formal_arg|
143
+ args.each{|formal_arg|
141
144
  case (type=formal_arg.type)
142
145
  when ArrayOf
143
146
  if type.size.is_a?(IntLit)
@@ -148,10 +151,11 @@ module Crokus
148
151
  end
149
152
  end
150
153
  else
151
- formal_arg.name
154
+ ret << formal_arg.name
152
155
  end
153
156
  }
154
157
  ret.flatten!
158
+ ret
155
159
  end
156
160
 
157
161
 
@@ -1,3 +1,3 @@
1
1
  module Crokus
2
- VERSION="0.1.0"
2
+ VERSION="0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crokus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Christophe Le Lann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-07 00:00:00.000000000 Z
11
+ date: 2020-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: distribution