bake-toolkit 2.20.4 → 2.21.0

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.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile.rb +3 -3
  3. data/bin/bake +46 -46
  4. data/bin/bake-doc +11 -11
  5. data/bin/bakery +179 -179
  6. data/bin/createVSProjects +213 -213
  7. data/documentation/_build/html/_sources/changelog.txt +456 -451
  8. data/documentation/_build/html/_sources/commandline/commandline.txt +107 -107
  9. data/documentation/_build/html/_sources/concepts/build_hierarchy.txt +34 -34
  10. data/documentation/_build/html/_sources/concepts/concepts.txt +14 -14
  11. data/documentation/_build/html/_sources/concepts/inject.txt +65 -65
  12. data/documentation/_build/html/_sources/concepts/link_order.txt +91 -91
  13. data/documentation/_build/html/_sources/concepts/prebuild.txt +56 -56
  14. data/documentation/_build/html/_sources/concepts/the_main_project.txt +45 -45
  15. data/documentation/_build/html/_sources/concepts/the_project_meta_file.txt +72 -72
  16. data/documentation/_build/html/_sources/ide/eclipse/eclipse.txt +25 -25
  17. data/documentation/_build/html/_sources/ide/eclipse/how_to_convert_existing_cdt_workspace.txt +31 -31
  18. data/documentation/_build/html/_sources/ide/eclipse/how_to_create_a_new_project_in_eclipse.txt +18 -18
  19. data/documentation/_build/html/_sources/ide/eclipse/how_to_create_a_workspace_in_eclipse.txt +27 -27
  20. data/documentation/_build/html/_sources/ide/eclipse/how_to_debug_in_eclipse.txt +38 -38
  21. data/documentation/_build/html/_sources/ide/eclipse/how_to_install_eclipse_plugin.txt +44 -44
  22. data/documentation/_build/html/_sources/ide/eclipse/how_to_use_bake_in_eclipse.txt +86 -86
  23. data/documentation/_build/html/_sources/ide/ide_integrations.txt +8 -8
  24. data/documentation/_build/html/_sources/ide/vs/how_to_create_vs_projects.txt +15 -15
  25. data/documentation/_build/html/_sources/ide/vs/how_to_debug_in_vs.txt +35 -35
  26. data/documentation/_build/html/_sources/ide/vs/how_to_used_bake_in_vs.txt +35 -35
  27. data/documentation/_build/html/_sources/ide/vs/vs.txt +10 -10
  28. data/documentation/_build/html/_sources/ide/vs/vs_install.txt +43 -43
  29. data/documentation/_build/html/_sources/index.txt +33 -33
  30. data/documentation/_build/html/_sources/install/install_bake.txt +112 -112
  31. data/documentation/_build/html/_sources/internal.txt +50 -50
  32. data/documentation/_build/html/_sources/known_issues.txt +9 -9
  33. data/documentation/_build/html/_sources/license.txt +4 -4
  34. data/documentation/_build/html/_sources/performance/performance.txt +104 -104
  35. data/documentation/_build/html/_sources/quickstart/quickstart.txt +70 -70
  36. data/documentation/_build/html/_sources/syntax/adapt_configs.txt +143 -143
  37. data/documentation/_build/html/_sources/syntax/auto_adjustment.txt +43 -43
  38. data/documentation/_build/html/_sources/syntax/derive_configs.txt +93 -94
  39. data/documentation/_build/html/_sources/syntax/project_meta_syntax.txt +19 -19
  40. data/documentation/_build/html/_sources/syntax/syntax.txt +11 -11
  41. data/documentation/_build/html/_sources/syntax/variable_substitutions.txt +147 -147
  42. data/documentation/_build/html/_sources/tips_and_tricks/dot.txt +34 -34
  43. data/documentation/_build/html/_sources/tips_and_tricks/how_to_use_bake_with_cygwin.txt +62 -62
  44. data/documentation/_build/html/_sources/tips_and_tricks/static_code_analysis.txt +122 -122
  45. data/documentation/_build/html/_sources/tips_and_tricks/the_bakery.txt +72 -72
  46. data/documentation/_build/html/_sources/tips_and_tricks/the_clang.txt +43 -43
  47. data/documentation/_build/html/_sources/tips_and_tricks/tips_and_tricks.txt +34 -34
  48. data/documentation/_build/html/_sources/why_bake/why_bake.txt +40 -40
  49. data/documentation/_build/html/changelog.html +7 -0
  50. data/documentation/_build/html/commandline/commandline.html +2 -2
  51. data/documentation/_build/html/concepts/link_order.html +2 -2
  52. data/documentation/_build/html/concepts/prebuild.html +2 -2
  53. data/documentation/_build/html/index.html +4 -4
  54. data/documentation/_build/html/performance/performance.html +2 -2
  55. data/documentation/_build/html/searchindex.js +1 -1
  56. data/documentation/_build/html/syntax/adapt_configs.html +2 -2
  57. data/documentation/_build/html/syntax/syntax.html +2 -2
  58. data/documentation/_build/html/tips_and_tricks/the_clang.html +2 -2
  59. data/documentation/_build/html/why_bake/why_bake.html +2 -2
  60. data/lib/adapt/config/loader.rb +112 -112
  61. data/lib/bake/bundle.rb +158 -158
  62. data/lib/bake/cache.rb +179 -180
  63. data/lib/bake/config/checks.rb +68 -68
  64. data/lib/bake/config/loader.rb +363 -363
  65. data/lib/bake/libElement.rb +176 -176
  66. data/lib/bake/mergeConfig.rb +208 -208
  67. data/lib/bake/model/language.rb +45 -45
  68. data/lib/bake/model/loader.rb +99 -99
  69. data/lib/bake/model/metamodel.rb +307 -307
  70. data/lib/bake/model/metamodel_ext.rb +27 -27
  71. data/lib/bake/options/create.rb +95 -95
  72. data/lib/bake/options/options.rb +315 -310
  73. data/lib/bake/options/showDoc.rb +20 -20
  74. data/lib/bake/options/showLicense.rb +9 -9
  75. data/lib/bake/options/showToolchains.rb +38 -38
  76. data/lib/bake/options/usage.rb +79 -68
  77. data/lib/bake/subst.rb +313 -313
  78. data/lib/bake/toolchain/clang.rb +44 -44
  79. data/lib/bake/toolchain/clang_analyze.rb +31 -31
  80. data/lib/bake/toolchain/colorizing_formatter.rb +125 -125
  81. data/lib/bake/toolchain/diab.rb +53 -53
  82. data/lib/bake/toolchain/errorparser/diab_compiler_error_parser.rb +40 -40
  83. data/lib/bake/toolchain/errorparser/diab_linker_error_parser.rb +41 -41
  84. data/lib/bake/toolchain/errorparser/error_parser.rb +71 -71
  85. data/lib/bake/toolchain/errorparser/gcc_compiler_error_parser.rb +35 -35
  86. data/lib/bake/toolchain/errorparser/gcc_linker_error_parser.rb +35 -35
  87. data/lib/bake/toolchain/errorparser/greenhills_compiler_error_parser.rb +32 -32
  88. data/lib/bake/toolchain/errorparser/greenhills_linker_error_parser.rb +44 -44
  89. data/lib/bake/toolchain/errorparser/keil_compiler_error_parser.rb +40 -40
  90. data/lib/bake/toolchain/errorparser/keil_linker_error_parser.rb +30 -30
  91. data/lib/bake/toolchain/errorparser/lint_error_parser.rb +34 -34
  92. data/lib/bake/toolchain/errorparser/msvc_compiler_error_parser.rb +63 -63
  93. data/lib/bake/toolchain/errorparser/msvc_linker_error_parser.rb +42 -42
  94. data/lib/bake/toolchain/errorparser/process_output.rb +2 -2
  95. data/lib/bake/toolchain/errorparser/ti_compiler_error_parser.rb +30 -30
  96. data/lib/bake/toolchain/errorparser/ti_linker_error_parser.rb +30 -30
  97. data/lib/bake/toolchain/gcc.rb +49 -49
  98. data/lib/bake/toolchain/gcc_env.rb +55 -55
  99. data/lib/bake/toolchain/greenhills.rb +52 -52
  100. data/lib/bake/toolchain/keil.rb +53 -53
  101. data/lib/bake/toolchain/lint.rb +20 -20
  102. data/lib/bake/toolchain/msvc.rb +58 -58
  103. data/lib/bake/toolchain/provider.rb +146 -146
  104. data/lib/bake/toolchain/ti.rb +47 -47
  105. data/lib/bake/util.rb +149 -149
  106. data/lib/bakery/buildPattern.rb +24 -24
  107. data/lib/bakery/model/language.rb +22 -22
  108. data/lib/bakery/model/loader.rb +55 -55
  109. data/lib/bakery/model/metamodel.rb +48 -48
  110. data/lib/bakery/options/options.rb +87 -87
  111. data/lib/bakery/toBake.rb +81 -81
  112. data/lib/blocks/block.rb +324 -324
  113. data/lib/blocks/blockBase.rb +204 -204
  114. data/lib/blocks/commandLine.rb +38 -38
  115. data/lib/blocks/compile.rb +529 -528
  116. data/lib/blocks/convert.rb +41 -41
  117. data/lib/blocks/docu.rb +30 -30
  118. data/lib/blocks/executable.rb +174 -174
  119. data/lib/blocks/has_execute_command.rb +31 -31
  120. data/lib/blocks/library.rb +114 -114
  121. data/lib/blocks/lint.rb +56 -56
  122. data/lib/blocks/makefile.rb +100 -100
  123. data/lib/blocks/showIncludes.rb +140 -125
  124. data/lib/common/abortException.rb +4 -4
  125. data/lib/common/cleanup.rb +10 -10
  126. data/lib/common/exit_helper.rb +38 -38
  127. data/lib/common/ext/file.rb +88 -88
  128. data/lib/common/ext/rtext.rb +11 -11
  129. data/lib/common/ext/stdout.rb +45 -45
  130. data/lib/common/ide_interface.rb +194 -194
  131. data/lib/common/options/parser.rb +95 -85
  132. data/lib/common/process.rb +64 -64
  133. data/lib/common/utils.rb +52 -52
  134. data/lib/common/version.rb +31 -23
  135. data/lib/multithread/job.rb +44 -44
  136. data/lib/tocxx.rb +558 -555
  137. data/lib/vs/options.rb +69 -69
  138. data/license.txt +90 -90
  139. metadata +2 -2
@@ -1,149 +1,149 @@
1
- require 'bake/model/metamodel_ext'
2
- require 'bake/model/metamodel'
3
- require 'set'
4
- require 'bake/toolchain/colorizing_formatter'
5
- require 'common/exit_helper'
6
- require 'common/utils'
7
-
8
-
9
- def remove_empty_strings_and_join(a, j=' ')
10
- return a.reject{|e|e.to_s.empty?}.join(j)
11
- end
12
-
13
- def adjustFlags(orgStr, flags)
14
- orgSplitted = Bake::Utils::flagSplit(orgStr, false)
15
-
16
- flags.each do |f|
17
- if f.overwrite != ""
18
- orgSplitted = Bake::Utils::flagSplit(f.overwrite, false)
19
- end
20
-
21
- if f.remove != ""
22
- rmSplitted = Bake::Utils::flagSplit(f.remove, false)
23
- orgSplitted.delete_if {|o| rmSplitted.any? { |r|
24
- begin
25
- o.match("\\A"+r+"\\Z")
26
- rescue Exception => e
27
- Bake.formatter.printError(e.message, f)
28
- Bake::ExitHelper.exit(1)
29
- end
30
- }}
31
- end
32
-
33
- if f.add != ""
34
- Bake::Utils::flagSplit(f.add, false).each do |a|
35
- orgSplitted << a unless orgSplitted.any? { |o| o==a }
36
- end
37
- end
38
-
39
- end
40
-
41
- orgSplitted.join(" ")
42
- end
43
-
44
- def integrateToolchain(tcs, toolchain)
45
- return tcs unless toolchain
46
-
47
- tcs[:OUTPUT_DIR] = toolchain.outputDir if toolchain.outputDir != ""
48
- integrateLinker(tcs, toolchain.linker) if toolchain.respond_to?"linker"
49
- integrateArchiver(tcs, toolchain.archiver)
50
- toolchain.compiler.each do |c|
51
- integrateCompiler(tcs, c, c.ctype)
52
- end
53
- integrateLintPolicy(tcs, toolchain.lintPolicy)
54
- integrateDocu(tcs, toolchain.docu) if toolchain.docu
55
- end
56
-
57
- def integrateLintPolicy(tcs, policies)
58
- policies.each do |d|
59
- tcs[:LINT_POLICY] << d.name
60
- end
61
- end
62
-
63
- def integrateDocu(tcs, docu)
64
- tcs[:DOCU] = docu.name if docu.name != ""
65
- end
66
-
67
- def integrateLinker(tcs, linker)
68
- return tcs unless linker
69
- tcs[:LINKER][:COMMAND] = linker.command if linker.command != ""
70
- tcs[:LINKER][:FLAGS] = adjustFlags(tcs[:LINKER][:FLAGS], linker.flags)
71
- tcs[:LINKER][:LIB_PREFIX_FLAGS] = adjustFlags(tcs[:LINKER][:LIB_PREFIX_FLAGS], linker.libprefixflags)
72
- tcs[:LINKER][:LIB_POSTFIX_FLAGS] = adjustFlags(tcs[:LINKER][:LIB_POSTFIX_FLAGS], linker.libpostfixflags)
73
- end
74
-
75
- def integrateArchiver(tcs, archiver)
76
- return tcs unless archiver
77
- tcs[:ARCHIVER][:COMMAND] = archiver.command if archiver.command != ""
78
- tcs[:ARCHIVER][:FLAGS] = adjustFlags(tcs[:ARCHIVER][:FLAGS], archiver.flags)
79
- end
80
-
81
- def integrateCompiler(tcs, compiler, type)
82
- return tcs unless compiler
83
- if compiler.respond_to?"command"
84
- tcs[:COMPILER][type][:COMMAND] = compiler.command if compiler.command != ""
85
- end
86
- tcs[:COMPILER][type][:FLAGS] = adjustFlags(tcs[:COMPILER][type][:FLAGS], compiler.flags)
87
- compiler.define.each do |d|
88
- tcs[:COMPILER][type][:DEFINES] << d.str unless tcs[:COMPILER][type][:DEFINES].include? d.str
89
- end
90
- end
91
-
92
- def integrateCompilerFile(tcs, compiler)
93
- [:CPP, :C, :ASM].each do |t|
94
- integrateCompiler(tcs, compiler, t)
95
- end
96
- return tcs
97
- end
98
-
99
-
100
- def sanitize_filename(filename)
101
- filename.strip do |name|
102
- # NOTE: File.basename doesn't work right with Windows paths on Unix
103
- # get only the filename, not the whole path
104
- name.gsub! /^.*(\\|\/)/, ''
105
-
106
- # Finally, replace all non alphanumeric, underscore
107
- # or periods with underscore
108
- # name.gsub! /[^\w\.\-]/, '_'
109
- # Basically strip out the non-ascii alphabets too
110
- # and replace with x.
111
- # You don't want all _ :)
112
- name.gsub!(/[^0-9A-Za-z.\-]/, 'x')
113
- end
114
- end
115
-
116
- def searchRootsFile(dir)
117
- rootsFile = dir+"/roots.bake"
118
- return rootsFile if File.exist?(rootsFile)
119
-
120
- parent = File.dirname(dir)
121
- return searchRootsFile(parent) if parent != dir
122
-
123
- return nil
124
- end
125
-
126
- def calc_def_roots(dir)
127
- def_roots = []
128
- rootsFile = searchRootsFile(dir)
129
- if (rootsFile)
130
- File.open(rootsFile).each do |line|
131
- line = line.split("#")[0].strip.gsub(/[\\]/,'/')
132
- if line != ""
133
- if File.is_absolute?(line)
134
- def_roots << line
135
- else
136
- def_roots << File.expand_path(File.dirname(rootsFile) + "/" + line)
137
- end
138
- end
139
- end
140
- else
141
- def_roots << File.dirname(dir)
142
- end
143
- def_roots
144
- end
145
-
146
- def add_line_if_no_comment(array, str)
147
- s = str.split("#")[0].strip
148
- array << s unless s.empty?
149
- end
1
+ require 'bake/model/metamodel_ext'
2
+ require 'bake/model/metamodel'
3
+ require 'set'
4
+ require 'bake/toolchain/colorizing_formatter'
5
+ require 'common/exit_helper'
6
+ require 'common/utils'
7
+
8
+
9
+ def remove_empty_strings_and_join(a, j=' ')
10
+ return a.reject{|e|e.to_s.empty?}.join(j)
11
+ end
12
+
13
+ def adjustFlags(orgStr, flags)
14
+ orgSplitted = Bake::Utils::flagSplit(orgStr, false)
15
+
16
+ flags.each do |f|
17
+ if f.overwrite != ""
18
+ orgSplitted = Bake::Utils::flagSplit(f.overwrite, false)
19
+ end
20
+
21
+ if f.remove != ""
22
+ rmSplitted = Bake::Utils::flagSplit(f.remove, false)
23
+ orgSplitted.delete_if {|o| rmSplitted.any? { |r|
24
+ begin
25
+ o.match("\\A"+r+"\\Z")
26
+ rescue Exception => e
27
+ Bake.formatter.printError(e.message, f)
28
+ Bake::ExitHelper.exit(1)
29
+ end
30
+ }}
31
+ end
32
+
33
+ if f.add != ""
34
+ Bake::Utils::flagSplit(f.add, false).each do |a|
35
+ orgSplitted << a unless orgSplitted.any? { |o| o==a }
36
+ end
37
+ end
38
+
39
+ end
40
+
41
+ orgSplitted.join(" ")
42
+ end
43
+
44
+ def integrateToolchain(tcs, toolchain)
45
+ return tcs unless toolchain
46
+
47
+ tcs[:OUTPUT_DIR] = toolchain.outputDir if toolchain.outputDir != ""
48
+ integrateLinker(tcs, toolchain.linker) if toolchain.respond_to?"linker"
49
+ integrateArchiver(tcs, toolchain.archiver)
50
+ toolchain.compiler.each do |c|
51
+ integrateCompiler(tcs, c, c.ctype)
52
+ end
53
+ integrateLintPolicy(tcs, toolchain.lintPolicy)
54
+ integrateDocu(tcs, toolchain.docu) if toolchain.docu
55
+ end
56
+
57
+ def integrateLintPolicy(tcs, policies)
58
+ policies.each do |d|
59
+ tcs[:LINT_POLICY] << d.name
60
+ end
61
+ end
62
+
63
+ def integrateDocu(tcs, docu)
64
+ tcs[:DOCU] = docu.name if docu.name != ""
65
+ end
66
+
67
+ def integrateLinker(tcs, linker)
68
+ return tcs unless linker
69
+ tcs[:LINKER][:COMMAND] = linker.command if linker.command != ""
70
+ tcs[:LINKER][:FLAGS] = adjustFlags(tcs[:LINKER][:FLAGS], linker.flags)
71
+ tcs[:LINKER][:LIB_PREFIX_FLAGS] = adjustFlags(tcs[:LINKER][:LIB_PREFIX_FLAGS], linker.libprefixflags)
72
+ tcs[:LINKER][:LIB_POSTFIX_FLAGS] = adjustFlags(tcs[:LINKER][:LIB_POSTFIX_FLAGS], linker.libpostfixflags)
73
+ end
74
+
75
+ def integrateArchiver(tcs, archiver)
76
+ return tcs unless archiver
77
+ tcs[:ARCHIVER][:COMMAND] = archiver.command if archiver.command != ""
78
+ tcs[:ARCHIVER][:FLAGS] = adjustFlags(tcs[:ARCHIVER][:FLAGS], archiver.flags)
79
+ end
80
+
81
+ def integrateCompiler(tcs, compiler, type)
82
+ return tcs unless compiler
83
+ if compiler.respond_to?"command"
84
+ tcs[:COMPILER][type][:COMMAND] = compiler.command if compiler.command != ""
85
+ end
86
+ tcs[:COMPILER][type][:FLAGS] = adjustFlags(tcs[:COMPILER][type][:FLAGS], compiler.flags)
87
+ compiler.define.each do |d|
88
+ tcs[:COMPILER][type][:DEFINES] << d.str unless tcs[:COMPILER][type][:DEFINES].include? d.str
89
+ end
90
+ end
91
+
92
+ def integrateCompilerFile(tcs, compiler)
93
+ [:CPP, :C, :ASM].each do |t|
94
+ integrateCompiler(tcs, compiler, t)
95
+ end
96
+ return tcs
97
+ end
98
+
99
+
100
+ def sanitize_filename(filename)
101
+ filename.strip do |name|
102
+ # NOTE: File.basename doesn't work right with Windows paths on Unix
103
+ # get only the filename, not the whole path
104
+ name.gsub! /^.*(\\|\/)/, ''
105
+
106
+ # Finally, replace all non alphanumeric, underscore
107
+ # or periods with underscore
108
+ # name.gsub! /[^\w\.\-]/, '_'
109
+ # Basically strip out the non-ascii alphabets too
110
+ # and replace with x.
111
+ # You don't want all _ :)
112
+ name.gsub!(/[^0-9A-Za-z.\-]/, 'x')
113
+ end
114
+ end
115
+
116
+ def searchRootsFile(dir)
117
+ rootsFile = dir+"/roots.bake"
118
+ return rootsFile if File.exist?(rootsFile)
119
+
120
+ parent = File.dirname(dir)
121
+ return searchRootsFile(parent) if parent != dir
122
+
123
+ return nil
124
+ end
125
+
126
+ def calc_def_roots(dir)
127
+ def_roots = []
128
+ rootsFile = searchRootsFile(dir)
129
+ if (rootsFile)
130
+ File.open(rootsFile).each do |line|
131
+ line = line.split("#")[0].strip.gsub(/[\\]/,'/')
132
+ if line != ""
133
+ if File.is_absolute?(line)
134
+ def_roots << line
135
+ else
136
+ def_roots << File.expand_path(File.dirname(rootsFile) + "/" + line)
137
+ end
138
+ end
139
+ end
140
+ else
141
+ def_roots << File.dirname(dir)
142
+ end
143
+ def_roots
144
+ end
145
+
146
+ def add_line_if_no_comment(array, str)
147
+ s = str.split("#")[0].strip
148
+ array << s unless s.empty?
149
+ end
@@ -1,24 +1,24 @@
1
- module Bake
2
-
3
- class BuildPattern
4
- attr_reader :proj, :conf, :coll_p
5
- def initialize(proj, conf, coll_p)
6
- @proj = proj
7
- @conf = conf
8
- @coll_p = coll_p
9
- end
10
- def getId
11
- proj + "*******" + conf
12
- end
13
- def hash
14
- getId.hash
15
- end
16
- def eql?(comparee)
17
- self == comparee
18
- end
19
- def ==(comparee)
20
- self.getId == comparee.getId
21
- end
22
- end
23
-
24
- end
1
+ module Bake
2
+
3
+ class BuildPattern
4
+ attr_reader :proj, :conf, :coll_p
5
+ def initialize(proj, conf, coll_p)
6
+ @proj = proj
7
+ @conf = conf
8
+ @coll_p = coll_p
9
+ end
10
+ def getId
11
+ proj + "*******" + conf
12
+ end
13
+ def hash
14
+ getId.hash
15
+ end
16
+ def eql?(comparee)
17
+ self == comparee
18
+ end
19
+ def ==(comparee)
20
+ self.getId == comparee.getId
21
+ end
22
+ end
23
+
24
+ end
@@ -1,22 +1,22 @@
1
- require 'bake/model/metamodel'
2
- require 'rtext/language'
3
-
4
- module Bake
5
-
6
- BakeryLanguage =
7
- RText::Language.new(BakeryModel.ecore,
8
- :feature_provider => proc {|c|
9
- RGen::Serializer::OppositeReferenceFilter.call(c.eAllStructuralFeatures).reject {|f|
10
- f.eAnnotations.any? {|a|
11
- a.details.any? {|d| d.key == 'internal' && d.value == 'true'}
12
- }
13
- }
14
- },
15
- :unlabled_arguments => proc {|c|
16
- ["name"]
17
- },
18
- :line_number_attribute => "line_number",
19
- :file_name_attribute => "file_name"
20
- )
21
-
22
- end
1
+ require 'bake/model/metamodel'
2
+ require 'rtext/language'
3
+
4
+ module Bake
5
+
6
+ BakeryLanguage =
7
+ RText::Language.new(BakeryModel.ecore,
8
+ :feature_provider => proc {|c|
9
+ RGen::Serializer::OppositeReferenceFilter.call(c.eAllStructuralFeatures).reject {|f|
10
+ f.eAnnotations.any? {|a|
11
+ a.details.any? {|d| d.key == 'internal' && d.value == 'true'}
12
+ }
13
+ }
14
+ },
15
+ :unlabled_arguments => proc {|c|
16
+ ["name"]
17
+ },
18
+ :line_number_attribute => "line_number",
19
+ :file_name_attribute => "file_name"
20
+ )
21
+
22
+ end
@@ -1,56 +1,56 @@
1
- require 'bakery/model/metamodel'
2
- require 'bakery/model/language'
3
- require 'common/version'
4
-
5
- require 'rgen/environment'
6
- require 'rgen/fragment/fragmented_model'
7
-
8
- require 'rtext/default_loader'
9
-
10
- require 'common/exit_helper'
11
- require 'bake/toolchain/colorizing_formatter'
12
-
13
- module Bake
14
-
15
- class BakeryLoader
16
-
17
- attr_reader :model
18
-
19
- def initialize
20
- @env = RGen::Environment.new
21
- @model = RGen::Fragment::FragmentedModel.new(:env => @env)
22
- end
23
-
24
- def load(filename)
25
-
26
- sumErrors = 0
27
-
28
- if not File.exists?filename
29
- Bake.formatter.printError("Error: #{filename} does not exist")
30
- ExitHelper.exit(1)
31
- end
32
-
33
- loader = RText::DefaultLoader.new(
34
- Bake::BakeryLanguage,
35
- @model,
36
- :file_provider => proc { [filename] },
37
- :cache => @DumpFileCache)
38
- loader.load()
39
-
40
- f = @model.fragments[0]
41
-
42
- f.data[:problems].each do |p|
43
- Bake.formatter.printError(p.message, p.file, p.line)
44
- end
45
-
46
- if f.data[:problems].length > 0
47
- ExitHelper.exit(1)
48
- end
49
-
50
- return @env
51
-
52
- end
53
-
54
-
55
- end
1
+ require 'bakery/model/metamodel'
2
+ require 'bakery/model/language'
3
+ require 'common/version'
4
+
5
+ require 'rgen/environment'
6
+ require 'rgen/fragment/fragmented_model'
7
+
8
+ require 'rtext/default_loader'
9
+
10
+ require 'common/exit_helper'
11
+ require 'bake/toolchain/colorizing_formatter'
12
+
13
+ module Bake
14
+
15
+ class BakeryLoader
16
+
17
+ attr_reader :model
18
+
19
+ def initialize
20
+ @env = RGen::Environment.new
21
+ @model = RGen::Fragment::FragmentedModel.new(:env => @env)
22
+ end
23
+
24
+ def load(filename)
25
+
26
+ sumErrors = 0
27
+
28
+ if not File.exists?filename
29
+ Bake.formatter.printError("Error: #{filename} does not exist")
30
+ ExitHelper.exit(1)
31
+ end
32
+
33
+ loader = RText::DefaultLoader.new(
34
+ Bake::BakeryLanguage,
35
+ @model,
36
+ :file_provider => proc { [filename] },
37
+ :cache => @DumpFileCache)
38
+ loader.load()
39
+
40
+ f = @model.fragments[0]
41
+
42
+ f.data[:problems].each do |p|
43
+ Bake.formatter.printError(p.message, p.file, p.line)
44
+ end
45
+
46
+ if f.data[:problems].length > 0
47
+ ExitHelper.exit(1)
48
+ end
49
+
50
+ return @env
51
+
52
+ end
53
+
54
+
55
+ end
56
56
  end