crokus 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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