bake-toolkit 2.20.4 → 2.21.0

Sign up to get free protection for your applications and to get access to all the features.
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