bolt 0.24.0 → 0.25.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of bolt might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bolt-modules/boltlib/lib/puppet/datatypes/applyresult.rb +19 -0
- data/bolt-modules/boltlib/lib/puppet/datatypes/resultset.rb +3 -3
- data/bolt-modules/boltlib/lib/puppet/functions/apply_prep.rb +2 -1
- data/lib/bolt/analytics.rb +0 -1
- data/lib/bolt/applicator.rb +7 -54
- data/lib/bolt/apply_result.rb +116 -0
- data/lib/bolt/outputter/human.rb +13 -8
- data/lib/bolt/pal.rb +6 -2
- data/lib/bolt/transport/ssh.rb +2 -1
- data/lib/bolt/version.rb +1 -1
- data/lib/bolt_spec/run.rb +1 -0
- data/libexec/apply_catalog.rb +25 -30
- metadata +37 -1212
- data/vendored/facter/lib/facter.rb +0 -261
- data/vendored/facter/lib/facter/Cfkey.rb +0 -42
- data/vendored/facter/lib/facter/application.rb +0 -206
- data/vendored/facter/lib/facter/architecture.rb +0 -50
- data/vendored/facter/lib/facter/augeasversion.rb +0 -28
- data/vendored/facter/lib/facter/blockdevices.rb +0 -105
- data/vendored/facter/lib/facter/core/aggregate.rb +0 -220
- data/vendored/facter/lib/facter/core/directed_graph.rb +0 -46
- data/vendored/facter/lib/facter/core/execution.rb +0 -123
- data/vendored/facter/lib/facter/core/execution/base.rb +0 -81
- data/vendored/facter/lib/facter/core/execution/posix.rb +0 -50
- data/vendored/facter/lib/facter/core/execution/windows.rb +0 -57
- data/vendored/facter/lib/facter/core/logging.rb +0 -197
- data/vendored/facter/lib/facter/core/resolvable.rb +0 -94
- data/vendored/facter/lib/facter/core/suitable.rb +0 -113
- data/vendored/facter/lib/facter/dhcp_servers.rb +0 -45
- data/vendored/facter/lib/facter/domain.rb +0 -99
- data/vendored/facter/lib/facter/ec2.rb +0 -68
- data/vendored/facter/lib/facter/ec2/rest.rb +0 -137
- data/vendored/facter/lib/facter/facterversion.rb +0 -15
- data/vendored/facter/lib/facter/filesystems.rb +0 -45
- data/vendored/facter/lib/facter/fqdn.rb +0 -24
- data/vendored/facter/lib/facter/gce.rb +0 -16
- data/vendored/facter/lib/facter/gce/metadata.rb +0 -87
- data/vendored/facter/lib/facter/gid.rb +0 -25
- data/vendored/facter/lib/facter/hardwareisa.rb +0 -20
- data/vendored/facter/lib/facter/hardwaremodel.rb +0 -67
- data/vendored/facter/lib/facter/hostname.rb +0 -31
- data/vendored/facter/lib/facter/id.rb +0 -21
- data/vendored/facter/lib/facter/interfaces.rb +0 -58
- data/vendored/facter/lib/facter/ipaddress.rb +0 -169
- data/vendored/facter/lib/facter/ipaddress6.rb +0 -82
- data/vendored/facter/lib/facter/iphostnumber.rb +0 -29
- data/vendored/facter/lib/facter/kernel.rb +0 -22
- data/vendored/facter/lib/facter/kernelmajversion.rb +0 -23
- data/vendored/facter/lib/facter/kernelrelease.rb +0 -45
- data/vendored/facter/lib/facter/kernelversion.rb +0 -22
- data/vendored/facter/lib/facter/ldom.rb +0 -51
- data/vendored/facter/lib/facter/lsbdistcodename.rb +0 -20
- data/vendored/facter/lib/facter/lsbdistdescription.rb +0 -21
- data/vendored/facter/lib/facter/lsbdistid.rb +0 -20
- data/vendored/facter/lib/facter/lsbdistrelease.rb +0 -20
- data/vendored/facter/lib/facter/lsbmajdistrelease.rb +0 -22
- data/vendored/facter/lib/facter/lsbminordistrelease.rb +0 -22
- data/vendored/facter/lib/facter/lsbrelease.rb +0 -20
- data/vendored/facter/lib/facter/macaddress.rb +0 -99
- data/vendored/facter/lib/facter/macosx.rb +0 -56
- data/vendored/facter/lib/facter/manufacturer.rb +0 -68
- data/vendored/facter/lib/facter/memory.rb +0 -168
- data/vendored/facter/lib/facter/netmask.rb +0 -43
- data/vendored/facter/lib/facter/network.rb +0 -20
- data/vendored/facter/lib/facter/operatingsystem.rb +0 -24
- data/vendored/facter/lib/facter/operatingsystem/base.rb +0 -61
- data/vendored/facter/lib/facter/operatingsystem/cumuluslinux.rb +0 -27
- data/vendored/facter/lib/facter/operatingsystem/implementation.rb +0 -33
- data/vendored/facter/lib/facter/operatingsystem/linux.rb +0 -484
- data/vendored/facter/lib/facter/operatingsystem/osreleaselinux.rb +0 -28
- data/vendored/facter/lib/facter/operatingsystem/sunos.rb +0 -54
- data/vendored/facter/lib/facter/operatingsystem/vmkernel.rb +0 -11
- data/vendored/facter/lib/facter/operatingsystem/windows.rb +0 -43
- data/vendored/facter/lib/facter/operatingsystemmajrelease.rb +0 -31
- data/vendored/facter/lib/facter/operatingsystemrelease.rb +0 -29
- data/vendored/facter/lib/facter/os.rb +0 -98
- data/vendored/facter/lib/facter/osfamily.rb +0 -18
- data/vendored/facter/lib/facter/partitions.rb +0 -39
- data/vendored/facter/lib/facter/path.rb +0 -14
- data/vendored/facter/lib/facter/physicalprocessorcount.rb +0 -27
- data/vendored/facter/lib/facter/processor.rb +0 -52
- data/vendored/facter/lib/facter/processors.rb +0 -66
- data/vendored/facter/lib/facter/processors/os.rb +0 -244
- data/vendored/facter/lib/facter/ps.rb +0 -31
- data/vendored/facter/lib/facter/puppetversion.rb +0 -20
- data/vendored/facter/lib/facter/rackspace.rb +0 -37
- data/vendored/facter/lib/facter/rubyplatform.rb +0 -12
- data/vendored/facter/lib/facter/rubysitedir.rb +0 -15
- data/vendored/facter/lib/facter/rubyversion.rb +0 -12
- data/vendored/facter/lib/facter/selinux.rb +0 -154
- data/vendored/facter/lib/facter/ssh.rb +0 -73
- data/vendored/facter/lib/facter/system32.rb +0 -21
- data/vendored/facter/lib/facter/system_uptime.rb +0 -44
- data/vendored/facter/lib/facter/timezone.rb +0 -14
- data/vendored/facter/lib/facter/uniqueid.rb +0 -4
- data/vendored/facter/lib/facter/uptime.rb +0 -16
- data/vendored/facter/lib/facter/uptime_days.rb +0 -13
- data/vendored/facter/lib/facter/uptime_hours.rb +0 -13
- data/vendored/facter/lib/facter/uptime_seconds.rb +0 -20
- data/vendored/facter/lib/facter/util/architecture.rb +0 -19
- data/vendored/facter/lib/facter/util/collection.rb +0 -161
- data/vendored/facter/lib/facter/util/composite_loader.rb +0 -12
- data/vendored/facter/lib/facter/util/config.rb +0 -88
- data/vendored/facter/lib/facter/util/confine.rb +0 -66
- data/vendored/facter/lib/facter/util/dhcp_servers.rb +0 -58
- data/vendored/facter/lib/facter/util/directory_loader.rb +0 -88
- data/vendored/facter/lib/facter/util/ec2.rb +0 -106
- data/vendored/facter/lib/facter/util/fact.rb +0 -204
- data/vendored/facter/lib/facter/util/file_read.rb +0 -37
- data/vendored/facter/lib/facter/util/formatter.rb +0 -39
- data/vendored/facter/lib/facter/util/ip.rb +0 -340
- data/vendored/facter/lib/facter/util/ip/windows.rb +0 -215
- data/vendored/facter/lib/facter/util/loader.rb +0 -155
- data/vendored/facter/lib/facter/util/macaddress.rb +0 -43
- data/vendored/facter/lib/facter/util/macosx.rb +0 -73
- data/vendored/facter/lib/facter/util/manufacturer.rb +0 -99
- data/vendored/facter/lib/facter/util/memory.rb +0 -228
- data/vendored/facter/lib/facter/util/netmask.rb +0 -40
- data/vendored/facter/lib/facter/util/normalization.rb +0 -94
- data/vendored/facter/lib/facter/util/nothing_loader.rb +0 -12
- data/vendored/facter/lib/facter/util/operatingsystem.rb +0 -21
- data/vendored/facter/lib/facter/util/parser.rb +0 -168
- data/vendored/facter/lib/facter/util/partitions.rb +0 -47
- data/vendored/facter/lib/facter/util/partitions/linux.rb +0 -71
- data/vendored/facter/lib/facter/util/partitions/openbsd.rb +0 -40
- data/vendored/facter/lib/facter/util/plist.rb +0 -24
- data/vendored/facter/lib/facter/util/plist/generator.rb +0 -228
- data/vendored/facter/lib/facter/util/plist/parser.rb +0 -226
- data/vendored/facter/lib/facter/util/posix.rb +0 -16
- data/vendored/facter/lib/facter/util/processor.rb +0 -289
- data/vendored/facter/lib/facter/util/registry.rb +0 -11
- data/vendored/facter/lib/facter/util/resolution.rb +0 -160
- data/vendored/facter/lib/facter/util/solaris_zones.rb +0 -158
- data/vendored/facter/lib/facter/util/unix_root.rb +0 -5
- data/vendored/facter/lib/facter/util/uptime.rb +0 -83
- data/vendored/facter/lib/facter/util/values.rb +0 -109
- data/vendored/facter/lib/facter/util/virtual.rb +0 -212
- data/vendored/facter/lib/facter/util/vlans.rb +0 -21
- data/vendored/facter/lib/facter/util/windows.rb +0 -10
- data/vendored/facter/lib/facter/util/windows/api_types.rb +0 -135
- data/vendored/facter/lib/facter/util/windows/dir.rb +0 -43
- data/vendored/facter/lib/facter/util/windows/error.rb +0 -87
- data/vendored/facter/lib/facter/util/windows/process.rb +0 -294
- data/vendored/facter/lib/facter/util/windows/user.rb +0 -186
- data/vendored/facter/lib/facter/util/windows_root.rb +0 -7
- data/vendored/facter/lib/facter/util/wmi.rb +0 -49
- data/vendored/facter/lib/facter/util/xendomains.rb +0 -28
- data/vendored/facter/lib/facter/version.rb +0 -86
- data/vendored/facter/lib/facter/virtual.rb +0 -330
- data/vendored/facter/lib/facter/vlans.rb +0 -17
- data/vendored/facter/lib/facter/xendomains.rb +0 -20
- data/vendored/facter/lib/facter/zfs_version.rb +0 -14
- data/vendored/facter/lib/facter/zonename.rb +0 -6
- data/vendored/facter/lib/facter/zones.rb +0 -18
- data/vendored/facter/lib/facter/zpool_version.rb +0 -10
- data/vendored/hiera/lib/hiera.rb +0 -119
- data/vendored/hiera/lib/hiera/backend.rb +0 -360
- data/vendored/hiera/lib/hiera/backend/json_backend.rb +0 -58
- data/vendored/hiera/lib/hiera/backend/yaml_backend.rb +0 -63
- data/vendored/hiera/lib/hiera/config.rb +0 -97
- data/vendored/hiera/lib/hiera/console_logger.rb +0 -13
- data/vendored/hiera/lib/hiera/error.rb +0 -4
- data/vendored/hiera/lib/hiera/fallback_logger.rb +0 -41
- data/vendored/hiera/lib/hiera/filecache.rb +0 -86
- data/vendored/hiera/lib/hiera/interpolate.rb +0 -121
- data/vendored/hiera/lib/hiera/noop_logger.rb +0 -8
- data/vendored/hiera/lib/hiera/puppet_logger.rb +0 -17
- data/vendored/hiera/lib/hiera/recursive_guard.rb +0 -20
- data/vendored/hiera/lib/hiera/util.rb +0 -65
- data/vendored/hiera/lib/hiera/util/win32.rb +0 -40
- data/vendored/hiera/lib/hiera/version.rb +0 -89
- data/vendored/puppet/lib/hiera/puppet_function.rb +0 -84
- data/vendored/puppet/lib/hiera/scope.rb +0 -83
- data/vendored/puppet/lib/hiera_puppet.rb +0 -79
- data/vendored/puppet/lib/puppet.rb +0 -299
- data/vendored/puppet/lib/puppet/agent.rb +0 -134
- data/vendored/puppet/lib/puppet/agent/disabler.rb +0 -53
- data/vendored/puppet/lib/puppet/agent/locker.rb +0 -53
- data/vendored/puppet/lib/puppet/application.rb +0 -509
- data/vendored/puppet/lib/puppet/application/agent.rb +0 -469
- data/vendored/puppet/lib/puppet/application/apply.rb +0 -407
- data/vendored/puppet/lib/puppet/application/catalog.rb +0 -4
- data/vendored/puppet/lib/puppet/application/cert.rb +0 -76
- data/vendored/puppet/lib/puppet/application/config.rb +0 -5
- data/vendored/puppet/lib/puppet/application/describe.rb +0 -257
- data/vendored/puppet/lib/puppet/application/device.rb +0 -386
- data/vendored/puppet/lib/puppet/application/doc.rb +0 -232
- data/vendored/puppet/lib/puppet/application/epp.rb +0 -5
- data/vendored/puppet/lib/puppet/application/face_base.rb +0 -268
- data/vendored/puppet/lib/puppet/application/facts.rb +0 -9
- data/vendored/puppet/lib/puppet/application/filebucket.rb +0 -300
- data/vendored/puppet/lib/puppet/application/generate.rb +0 -5
- data/vendored/puppet/lib/puppet/application/help.rb +0 -5
- data/vendored/puppet/lib/puppet/application/indirection_base.rb +0 -4
- data/vendored/puppet/lib/puppet/application/key.rb +0 -4
- data/vendored/puppet/lib/puppet/application/lookup.rb +0 -369
- data/vendored/puppet/lib/puppet/application/man.rb +0 -4
- data/vendored/puppet/lib/puppet/application/module.rb +0 -4
- data/vendored/puppet/lib/puppet/application/node.rb +0 -4
- data/vendored/puppet/lib/puppet/application/parser.rb +0 -5
- data/vendored/puppet/lib/puppet/application/plugin.rb +0 -3
- data/vendored/puppet/lib/puppet/application/report.rb +0 -4
- data/vendored/puppet/lib/puppet/application/resource.rb +0 -231
- data/vendored/puppet/lib/puppet/application/script.rb +0 -261
- data/vendored/puppet/lib/puppet/application/ssl.rb +0 -133
- data/vendored/puppet/lib/puppet/application/status.rb +0 -4
- data/vendored/puppet/lib/puppet/application_support.rb +0 -61
- data/vendored/puppet/lib/puppet/coercion.rb +0 -40
- data/vendored/puppet/lib/puppet/compilable_resource_type.rb +0 -15
- data/vendored/puppet/lib/puppet/configurer.rb +0 -484
- data/vendored/puppet/lib/puppet/configurer/downloader.rb +0 -67
- data/vendored/puppet/lib/puppet/configurer/fact_handler.rb +0 -50
- data/vendored/puppet/lib/puppet/configurer/plugin_handler.rb +0 -48
- data/vendored/puppet/lib/puppet/confine.rb +0 -83
- data/vendored/puppet/lib/puppet/confine/any.rb +0 -26
- data/vendored/puppet/lib/puppet/confine/exists.rb +0 -19
- data/vendored/puppet/lib/puppet/confine/false.rb +0 -19
- data/vendored/puppet/lib/puppet/confine/feature.rb +0 -17
- data/vendored/puppet/lib/puppet/confine/true.rb +0 -20
- data/vendored/puppet/lib/puppet/confine/variable.rb +0 -59
- data/vendored/puppet/lib/puppet/confine_collection.rb +0 -50
- data/vendored/puppet/lib/puppet/confiner.rb +0 -46
- data/vendored/puppet/lib/puppet/context.rb +0 -116
- data/vendored/puppet/lib/puppet/context/trusted_information.rb +0 -76
- data/vendored/puppet/lib/puppet/daemon.rb +0 -195
- data/vendored/puppet/lib/puppet/data_binding.rb +0 -14
- data/vendored/puppet/lib/puppet/datatypes.rb +0 -213
- data/vendored/puppet/lib/puppet/datatypes/error.rb +0 -21
- data/vendored/puppet/lib/puppet/datatypes/impl/error.rb +0 -40
- data/vendored/puppet/lib/puppet/defaults.rb +0 -2003
- data/vendored/puppet/lib/puppet/environments.rb +0 -505
- data/vendored/puppet/lib/puppet/error.rb +0 -117
- data/vendored/puppet/lib/puppet/etc.rb +0 -160
- data/vendored/puppet/lib/puppet/external/dot.rb +0 -325
- data/vendored/puppet/lib/puppet/external/pson/common.rb +0 -374
- data/vendored/puppet/lib/puppet/external/pson/pure.rb +0 -15
- data/vendored/puppet/lib/puppet/external/pson/pure/generator.rb +0 -395
- data/vendored/puppet/lib/puppet/external/pson/pure/parser.rb +0 -307
- data/vendored/puppet/lib/puppet/external/pson/version.rb +0 -8
- data/vendored/puppet/lib/puppet/face.rb +0 -12
- data/vendored/puppet/lib/puppet/face/catalog.rb +0 -130
- data/vendored/puppet/lib/puppet/face/catalog/select.rb +0 -49
- data/vendored/puppet/lib/puppet/face/config.rb +0 -265
- data/vendored/puppet/lib/puppet/face/epp.rb +0 -554
- data/vendored/puppet/lib/puppet/face/facts.rb +0 -87
- data/vendored/puppet/lib/puppet/face/generate.rb +0 -64
- data/vendored/puppet/lib/puppet/face/help.rb +0 -215
- data/vendored/puppet/lib/puppet/face/key.rb +0 -16
- data/vendored/puppet/lib/puppet/face/man.rb +0 -145
- data/vendored/puppet/lib/puppet/face/module.rb +0 -19
- data/vendored/puppet/lib/puppet/face/module/build.rb +0 -14
- data/vendored/puppet/lib/puppet/face/module/changes.rb +0 -42
- data/vendored/puppet/lib/puppet/face/module/generate.rb +0 -14
- data/vendored/puppet/lib/puppet/face/module/install.rb +0 -146
- data/vendored/puppet/lib/puppet/face/module/list.rb +0 -263
- data/vendored/puppet/lib/puppet/face/module/search.rb +0 -98
- data/vendored/puppet/lib/puppet/face/module/uninstall.rb +0 -89
- data/vendored/puppet/lib/puppet/face/module/upgrade.rb +0 -87
- data/vendored/puppet/lib/puppet/face/node.rb +0 -43
- data/vendored/puppet/lib/puppet/face/node/clean.rb +0 -100
- data/vendored/puppet/lib/puppet/face/parser.rb +0 -187
- data/vendored/puppet/lib/puppet/face/plugin.rb +0 -56
- data/vendored/puppet/lib/puppet/face/report.rb +0 -54
- data/vendored/puppet/lib/puppet/face/resource.rb +0 -53
- data/vendored/puppet/lib/puppet/face/status.rb +0 -51
- data/vendored/puppet/lib/puppet/feature/base.rb +0 -76
- data/vendored/puppet/lib/puppet/feature/bolt.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/cfpropertylist.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/eventlog.rb +0 -5
- data/vendored/puppet/lib/puppet/feature/hiera_eyaml.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/hocon.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/libuser.rb +0 -8
- data/vendored/puppet/lib/puppet/feature/msgpack.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/pe_license.rb +0 -4
- data/vendored/puppet/lib/puppet/feature/selinux.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/ssh.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/telnet.rb +0 -9
- data/vendored/puppet/lib/puppet/feature/zlib.rb +0 -5
- data/vendored/puppet/lib/puppet/file_bucket.rb +0 -4
- data/vendored/puppet/lib/puppet/file_bucket/dipper.rb +0 -173
- data/vendored/puppet/lib/puppet/file_bucket/file.rb +0 -129
- data/vendored/puppet/lib/puppet/file_serving.rb +0 -3
- data/vendored/puppet/lib/puppet/file_serving/base.rb +0 -86
- data/vendored/puppet/lib/puppet/file_serving/configuration.rb +0 -115
- data/vendored/puppet/lib/puppet/file_serving/configuration/parser.rb +0 -137
- data/vendored/puppet/lib/puppet/file_serving/content.rb +0 -43
- data/vendored/puppet/lib/puppet/file_serving/fileset.rb +0 -174
- data/vendored/puppet/lib/puppet/file_serving/http_metadata.rb +0 -46
- data/vendored/puppet/lib/puppet/file_serving/metadata.rb +0 -164
- data/vendored/puppet/lib/puppet/file_serving/mount.rb +0 -39
- data/vendored/puppet/lib/puppet/file_serving/mount/file.rb +0 -121
- data/vendored/puppet/lib/puppet/file_serving/mount/locales.rb +0 -35
- data/vendored/puppet/lib/puppet/file_serving/mount/modules.rb +0 -24
- data/vendored/puppet/lib/puppet/file_serving/mount/pluginfacts.rb +0 -35
- data/vendored/puppet/lib/puppet/file_serving/mount/plugins.rb +0 -35
- data/vendored/puppet/lib/puppet/file_serving/mount/tasks.rb +0 -21
- data/vendored/puppet/lib/puppet/file_serving/terminus_helper.rb +0 -31
- data/vendored/puppet/lib/puppet/file_serving/terminus_selector.rb +0 -32
- data/vendored/puppet/lib/puppet/file_system.rb +0 -404
- data/vendored/puppet/lib/puppet/file_system/file_impl.rb +0 -154
- data/vendored/puppet/lib/puppet/file_system/memory_file.rb +0 -66
- data/vendored/puppet/lib/puppet/file_system/memory_impl.rb +0 -86
- data/vendored/puppet/lib/puppet/file_system/path_pattern.rb +0 -98
- data/vendored/puppet/lib/puppet/file_system/posix.rb +0 -46
- data/vendored/puppet/lib/puppet/file_system/uniquefile.rb +0 -190
- data/vendored/puppet/lib/puppet/file_system/windows.rb +0 -130
- data/vendored/puppet/lib/puppet/forge.rb +0 -241
- data/vendored/puppet/lib/puppet/forge/cache.rb +0 -60
- data/vendored/puppet/lib/puppet/forge/errors.rb +0 -114
- data/vendored/puppet/lib/puppet/forge/repository.rb +0 -155
- data/vendored/puppet/lib/puppet/functions.rb +0 -863
- data/vendored/puppet/lib/puppet/functions/abs.rb +0 -61
- data/vendored/puppet/lib/puppet/functions/alert.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/all.rb +0 -104
- data/vendored/puppet/lib/puppet/functions/annotate.rb +0 -108
- data/vendored/puppet/lib/puppet/functions/any.rb +0 -109
- data/vendored/puppet/lib/puppet/functions/assert_type.rb +0 -93
- data/vendored/puppet/lib/puppet/functions/binary_file.rb +0 -32
- data/vendored/puppet/lib/puppet/functions/break.rb +0 -47
- data/vendored/puppet/lib/puppet/functions/call.rb +0 -79
- data/vendored/puppet/lib/puppet/functions/camelcase.rb +0 -62
- data/vendored/puppet/lib/puppet/functions/capitalize.rb +0 -61
- data/vendored/puppet/lib/puppet/functions/ceiling.rb +0 -37
- data/vendored/puppet/lib/puppet/functions/chomp.rb +0 -57
- data/vendored/puppet/lib/puppet/functions/chop.rb +0 -67
- data/vendored/puppet/lib/puppet/functions/compare.rb +0 -125
- data/vendored/puppet/lib/puppet/functions/contain.rb +0 -55
- data/vendored/puppet/lib/puppet/functions/convert_to.rb +0 -34
- data/vendored/puppet/lib/puppet/functions/crit.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/debug.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/defined.rb +0 -159
- data/vendored/puppet/lib/puppet/functions/dig.rb +0 -67
- data/vendored/puppet/lib/puppet/functions/downcase.rb +0 -89
- data/vendored/puppet/lib/puppet/functions/each.rb +0 -169
- data/vendored/puppet/lib/puppet/functions/emerg.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/empty.rb +0 -77
- data/vendored/puppet/lib/puppet/functions/epp.rb +0 -48
- data/vendored/puppet/lib/puppet/functions/err.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/eyaml_lookup_key.rb +0 -97
- data/vendored/puppet/lib/puppet/functions/filter.rb +0 -144
- data/vendored/puppet/lib/puppet/functions/find_file.rb +0 -44
- data/vendored/puppet/lib/puppet/functions/flatten.rb +0 -64
- data/vendored/puppet/lib/puppet/functions/floor.rb +0 -37
- data/vendored/puppet/lib/puppet/functions/get.rb +0 -150
- data/vendored/puppet/lib/puppet/functions/getvar.rb +0 -87
- data/vendored/puppet/lib/puppet/functions/hiera.rb +0 -88
- data/vendored/puppet/lib/puppet/functions/hiera_array.rb +0 -81
- data/vendored/puppet/lib/puppet/functions/hiera_hash.rb +0 -92
- data/vendored/puppet/lib/puppet/functions/hiera_include.rb +0 -104
- data/vendored/puppet/lib/puppet/functions/hocon_data.rb +0 -41
- data/vendored/puppet/lib/puppet/functions/import.rb +0 -7
- data/vendored/puppet/lib/puppet/functions/include.rb +0 -53
- data/vendored/puppet/lib/puppet/functions/info.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/inline_epp.rb +0 -59
- data/vendored/puppet/lib/puppet/functions/join.rb +0 -56
- data/vendored/puppet/lib/puppet/functions/json_data.rb +0 -33
- data/vendored/puppet/lib/puppet/functions/keys.rb +0 -25
- data/vendored/puppet/lib/puppet/functions/length.rb +0 -44
- data/vendored/puppet/lib/puppet/functions/lest.rb +0 -55
- data/vendored/puppet/lib/puppet/functions/lookup.rb +0 -224
- data/vendored/puppet/lib/puppet/functions/lstrip.rb +0 -58
- data/vendored/puppet/lib/puppet/functions/map.rb +0 -136
- data/vendored/puppet/lib/puppet/functions/match.rb +0 -131
- data/vendored/puppet/lib/puppet/functions/max.rb +0 -183
- data/vendored/puppet/lib/puppet/functions/min.rb +0 -182
- data/vendored/puppet/lib/puppet/functions/module_directory.rb +0 -41
- data/vendored/puppet/lib/puppet/functions/new.rb +0 -1006
- data/vendored/puppet/lib/puppet/functions/next.rb +0 -16
- data/vendored/puppet/lib/puppet/functions/notice.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/reduce.rb +0 -164
- data/vendored/puppet/lib/puppet/functions/regsubst.rb +0 -82
- data/vendored/puppet/lib/puppet/functions/require.rb +0 -77
- data/vendored/puppet/lib/puppet/functions/return.rb +0 -15
- data/vendored/puppet/lib/puppet/functions/reverse_each.rb +0 -94
- data/vendored/puppet/lib/puppet/functions/round.rb +0 -24
- data/vendored/puppet/lib/puppet/functions/rstrip.rb +0 -58
- data/vendored/puppet/lib/puppet/functions/scanf.rb +0 -44
- data/vendored/puppet/lib/puppet/functions/size.rb +0 -15
- data/vendored/puppet/lib/puppet/functions/slice.rb +0 -124
- data/vendored/puppet/lib/puppet/functions/sort.rb +0 -74
- data/vendored/puppet/lib/puppet/functions/split.rb +0 -49
- data/vendored/puppet/lib/puppet/functions/step.rb +0 -98
- data/vendored/puppet/lib/puppet/functions/strftime.rb +0 -211
- data/vendored/puppet/lib/puppet/functions/strip.rb +0 -58
- data/vendored/puppet/lib/puppet/functions/then.rb +0 -77
- data/vendored/puppet/lib/puppet/functions/tree_each.rb +0 -200
- data/vendored/puppet/lib/puppet/functions/type.rb +0 -72
- data/vendored/puppet/lib/puppet/functions/unique.rb +0 -132
- data/vendored/puppet/lib/puppet/functions/unwrap.rb +0 -44
- data/vendored/puppet/lib/puppet/functions/upcase.rb +0 -89
- data/vendored/puppet/lib/puppet/functions/values.rb +0 -25
- data/vendored/puppet/lib/puppet/functions/versioncmp.rb +0 -36
- data/vendored/puppet/lib/puppet/functions/warning.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/with.rb +0 -32
- data/vendored/puppet/lib/puppet/functions/yaml_data.rb +0 -43
- data/vendored/puppet/lib/puppet/generate/models/type/property.rb +0 -70
- data/vendored/puppet/lib/puppet/generate/models/type/type.rb +0 -62
- data/vendored/puppet/lib/puppet/generate/type.rb +0 -239
- data/vendored/puppet/lib/puppet/gettext/config.rb +0 -275
- data/vendored/puppet/lib/puppet/gettext/module_translations.rb +0 -42
- data/vendored/puppet/lib/puppet/gettext/stubs.rb +0 -11
- data/vendored/puppet/lib/puppet/graph.rb +0 -9
- data/vendored/puppet/lib/puppet/graph/key.rb +0 -26
- data/vendored/puppet/lib/puppet/graph/prioritizer.rb +0 -29
- data/vendored/puppet/lib/puppet/graph/rb_tree_map.rb +0 -388
- data/vendored/puppet/lib/puppet/graph/relationship_graph.rb +0 -283
- data/vendored/puppet/lib/puppet/graph/sequential_prioritizer.rb +0 -31
- data/vendored/puppet/lib/puppet/graph/simple_graph.rb +0 -543
- data/vendored/puppet/lib/puppet/indirector.rb +0 -61
- data/vendored/puppet/lib/puppet/indirector/catalog/compiler.rb +0 -416
- data/vendored/puppet/lib/puppet/indirector/catalog/json.rb +0 -35
- data/vendored/puppet/lib/puppet/indirector/catalog/msgpack.rb +0 -6
- data/vendored/puppet/lib/puppet/indirector/catalog/rest.rb +0 -6
- data/vendored/puppet/lib/puppet/indirector/catalog/store_configs.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/catalog/yaml.rb +0 -6
- data/vendored/puppet/lib/puppet/indirector/certificate/file.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/certificate/rest.rb +0 -16
- data/vendored/puppet/lib/puppet/indirector/certificate_request/file.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/certificate_request/memory.rb +0 -6
- data/vendored/puppet/lib/puppet/indirector/certificate_request/rest.rb +0 -10
- data/vendored/puppet/lib/puppet/indirector/code.rb +0 -6
- data/vendored/puppet/lib/puppet/indirector/data_binding/hiera.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/data_binding/none.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/direct_file_server.rb +0 -17
- data/vendored/puppet/lib/puppet/indirector/envelope.rb +0 -11
- data/vendored/puppet/lib/puppet/indirector/errors.rb +0 -5
- data/vendored/puppet/lib/puppet/indirector/exec.rb +0 -38
- data/vendored/puppet/lib/puppet/indirector/face.rb +0 -153
- data/vendored/puppet/lib/puppet/indirector/facts/facter.rb +0 -88
- data/vendored/puppet/lib/puppet/indirector/facts/memory.rb +0 -9
- data/vendored/puppet/lib/puppet/indirector/facts/network_device.rb +0 -27
- data/vendored/puppet/lib/puppet/indirector/facts/rest.rb +0 -21
- data/vendored/puppet/lib/puppet/indirector/facts/store_configs.rb +0 -11
- data/vendored/puppet/lib/puppet/indirector/facts/yaml.rb +0 -84
- data/vendored/puppet/lib/puppet/indirector/file_bucket_file/file.rb +0 -262
- data/vendored/puppet/lib/puppet/indirector/file_bucket_file/rest.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/file_bucket_file/selector.rb +0 -53
- data/vendored/puppet/lib/puppet/indirector/file_content.rb +0 -5
- data/vendored/puppet/lib/puppet/indirector/file_content/file.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/file_content/file_server.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/file_content/http.rb +0 -17
- data/vendored/puppet/lib/puppet/indirector/file_content/rest.rb +0 -9
- data/vendored/puppet/lib/puppet/indirector/file_content/selector.rb +0 -30
- data/vendored/puppet/lib/puppet/indirector/file_metadata.rb +0 -5
- data/vendored/puppet/lib/puppet/indirector/file_metadata/file.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/file_metadata/file_server.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/file_metadata/http.rb +0 -27
- data/vendored/puppet/lib/puppet/indirector/file_metadata/rest.rb +0 -9
- data/vendored/puppet/lib/puppet/indirector/file_metadata/selector.rb +0 -30
- data/vendored/puppet/lib/puppet/indirector/file_server.rb +0 -59
- data/vendored/puppet/lib/puppet/indirector/generic_http.rb +0 -16
- data/vendored/puppet/lib/puppet/indirector/hiera.rb +0 -94
- data/vendored/puppet/lib/puppet/indirector/indirection.rb +0 -340
- data/vendored/puppet/lib/puppet/indirector/json.rb +0 -75
- data/vendored/puppet/lib/puppet/indirector/key/file.rb +0 -45
- data/vendored/puppet/lib/puppet/indirector/key/memory.rb +0 -6
- data/vendored/puppet/lib/puppet/indirector/memory.rb +0 -34
- data/vendored/puppet/lib/puppet/indirector/msgpack.rb +0 -83
- data/vendored/puppet/lib/puppet/indirector/node/exec.rb +0 -69
- data/vendored/puppet/lib/puppet/indirector/node/memory.rb +0 -10
- data/vendored/puppet/lib/puppet/indirector/node/msgpack.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/node/plain.rb +0 -21
- data/vendored/puppet/lib/puppet/indirector/node/rest.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/node/store_configs.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/node/yaml.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/none.rb +0 -9
- data/vendored/puppet/lib/puppet/indirector/plain.rb +0 -9
- data/vendored/puppet/lib/puppet/indirector/report/msgpack.rb +0 -11
- data/vendored/puppet/lib/puppet/indirector/report/processor.rb +0 -59
- data/vendored/puppet/lib/puppet/indirector/report/rest.rb +0 -28
- data/vendored/puppet/lib/puppet/indirector/report/yaml.rb +0 -11
- data/vendored/puppet/lib/puppet/indirector/request.rb +0 -278
- data/vendored/puppet/lib/puppet/indirector/resource/ral.rb +0 -63
- data/vendored/puppet/lib/puppet/indirector/resource/store_configs.rb +0 -12
- data/vendored/puppet/lib/puppet/indirector/resource/validator.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/rest.rb +0 -301
- data/vendored/puppet/lib/puppet/indirector/ssl_file.rb +0 -160
- data/vendored/puppet/lib/puppet/indirector/status.rb +0 -3
- data/vendored/puppet/lib/puppet/indirector/status/local.rb +0 -12
- data/vendored/puppet/lib/puppet/indirector/status/rest.rb +0 -9
- data/vendored/puppet/lib/puppet/indirector/store_configs.rb +0 -30
- data/vendored/puppet/lib/puppet/indirector/terminus.rb +0 -169
- data/vendored/puppet/lib/puppet/indirector/yaml.rb +0 -63
- data/vendored/puppet/lib/puppet/info_service.rb +0 -17
- data/vendored/puppet/lib/puppet/info_service/class_information_service.rb +0 -110
- data/vendored/puppet/lib/puppet/info_service/task_information_service.rb +0 -36
- data/vendored/puppet/lib/puppet/interface.rb +0 -237
- data/vendored/puppet/lib/puppet/interface/action.rb +0 -399
- data/vendored/puppet/lib/puppet/interface/action_builder.rb +0 -166
- data/vendored/puppet/lib/puppet/interface/action_manager.rb +0 -97
- data/vendored/puppet/lib/puppet/interface/documentation.rb +0 -353
- data/vendored/puppet/lib/puppet/interface/face_collection.rb +0 -134
- data/vendored/puppet/lib/puppet/interface/option.rb +0 -171
- data/vendored/puppet/lib/puppet/interface/option_builder.rb +0 -105
- data/vendored/puppet/lib/puppet/interface/option_manager.rb +0 -104
- data/vendored/puppet/lib/puppet/loaders.rb +0 -28
- data/vendored/puppet/lib/puppet/metatype/manager.rb +0 -197
- data/vendored/puppet/lib/puppet/module.rb +0 -441
- data/vendored/puppet/lib/puppet/module/task.rb +0 -258
- data/vendored/puppet/lib/puppet/module_tool.rb +0 -193
- data/vendored/puppet/lib/puppet/module_tool/applications.rb +0 -13
- data/vendored/puppet/lib/puppet/module_tool/applications/application.rb +0 -90
- data/vendored/puppet/lib/puppet/module_tool/applications/checksummer.rb +0 -62
- data/vendored/puppet/lib/puppet/module_tool/applications/installer.rb +0 -354
- data/vendored/puppet/lib/puppet/module_tool/applications/searcher.rb +0 -29
- data/vendored/puppet/lib/puppet/module_tool/applications/uninstaller.rb +0 -120
- data/vendored/puppet/lib/puppet/module_tool/applications/unpacker.rb +0 -100
- data/vendored/puppet/lib/puppet/module_tool/applications/upgrader.rb +0 -280
- data/vendored/puppet/lib/puppet/module_tool/checksums.rb +0 -49
- data/vendored/puppet/lib/puppet/module_tool/contents_description.rb +0 -88
- data/vendored/puppet/lib/puppet/module_tool/dependency.rb +0 -41
- data/vendored/puppet/lib/puppet/module_tool/errors.rb +0 -11
- data/vendored/puppet/lib/puppet/module_tool/errors/base.rb +0 -15
- data/vendored/puppet/lib/puppet/module_tool/errors/installer.rb +0 -93
- data/vendored/puppet/lib/puppet/module_tool/errors/shared.rb +0 -195
- data/vendored/puppet/lib/puppet/module_tool/errors/uninstaller.rb +0 -50
- data/vendored/puppet/lib/puppet/module_tool/errors/upgrader.rb +0 -63
- data/vendored/puppet/lib/puppet/module_tool/install_directory.rb +0 -45
- data/vendored/puppet/lib/puppet/module_tool/installed_modules.rb +0 -96
- data/vendored/puppet/lib/puppet/module_tool/local_tarball.rb +0 -90
- data/vendored/puppet/lib/puppet/module_tool/metadata.rb +0 -222
- data/vendored/puppet/lib/puppet/module_tool/shared_behaviors.rb +0 -180
- data/vendored/puppet/lib/puppet/module_tool/tar.rb +0 -18
- data/vendored/puppet/lib/puppet/module_tool/tar/gnu.rb +0 -19
- data/vendored/puppet/lib/puppet/module_tool/tar/mini.rb +0 -106
- data/vendored/puppet/lib/puppet/network.rb +0 -3
- data/vendored/puppet/lib/puppet/network/auth_config_parser.rb +0 -90
- data/vendored/puppet/lib/puppet/network/authconfig.rb +0 -99
- data/vendored/puppet/lib/puppet/network/authorization.rb +0 -41
- data/vendored/puppet/lib/puppet/network/authstore.rb +0 -282
- data/vendored/puppet/lib/puppet/network/client_request.rb +0 -29
- data/vendored/puppet/lib/puppet/network/format.rb +0 -110
- data/vendored/puppet/lib/puppet/network/format_handler.rb +0 -108
- data/vendored/puppet/lib/puppet/network/format_support.rb +0 -139
- data/vendored/puppet/lib/puppet/network/formats.rb +0 -260
- data/vendored/puppet/lib/puppet/network/http.rb +0 -28
- data/vendored/puppet/lib/puppet/network/http/api.rb +0 -35
- data/vendored/puppet/lib/puppet/network/http/api/indirected_routes.rb +0 -286
- data/vendored/puppet/lib/puppet/network/http/api/indirection_type.rb +0 -32
- data/vendored/puppet/lib/puppet/network/http/api/master.rb +0 -2
- data/vendored/puppet/lib/puppet/network/http/api/master/v3.rb +0 -28
- data/vendored/puppet/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
- data/vendored/puppet/lib/puppet/network/http/api/master/v3/environment.rb +0 -85
- data/vendored/puppet/lib/puppet/network/http/api/master/v3/environments.rb +0 -35
- data/vendored/puppet/lib/puppet/network/http/compression.rb +0 -120
- data/vendored/puppet/lib/puppet/network/http/connection.rb +0 -319
- data/vendored/puppet/lib/puppet/network/http/error.rb +0 -73
- data/vendored/puppet/lib/puppet/network/http/factory.rb +0 -55
- data/vendored/puppet/lib/puppet/network/http/handler.rb +0 -215
- data/vendored/puppet/lib/puppet/network/http/issues.rb +0 -12
- data/vendored/puppet/lib/puppet/network/http/memory_response.rb +0 -13
- data/vendored/puppet/lib/puppet/network/http/nocache_pool.rb +0 -21
- data/vendored/puppet/lib/puppet/network/http/pool.rb +0 -129
- data/vendored/puppet/lib/puppet/network/http/request.rb +0 -70
- data/vendored/puppet/lib/puppet/network/http/response.rb +0 -23
- data/vendored/puppet/lib/puppet/network/http/route.rb +0 -100
- data/vendored/puppet/lib/puppet/network/http/session.rb +0 -17
- data/vendored/puppet/lib/puppet/network/http/site.rb +0 -39
- data/vendored/puppet/lib/puppet/network/http_pool.rb +0 -61
- data/vendored/puppet/lib/puppet/network/resolver.rb +0 -158
- data/vendored/puppet/lib/puppet/network/rest_controller.rb +0 -2
- data/vendored/puppet/lib/puppet/network/rights.rb +0 -209
- data/vendored/puppet/lib/puppet/node.rb +0 -281
- data/vendored/puppet/lib/puppet/node/environment.rb +0 -575
- data/vendored/puppet/lib/puppet/node/facts.rb +0 -147
- data/vendored/puppet/lib/puppet/parameter.rb +0 -572
- data/vendored/puppet/lib/puppet/parameter/boolean.rb +0 -15
- data/vendored/puppet/lib/puppet/parameter/package_options.rb +0 -31
- data/vendored/puppet/lib/puppet/parameter/path.rb +0 -57
- data/vendored/puppet/lib/puppet/parameter/value.rb +0 -91
- data/vendored/puppet/lib/puppet/parameter/value_collection.rb +0 -212
- data/vendored/puppet/lib/puppet/parser.rb +0 -20
- data/vendored/puppet/lib/puppet/parser/abstract_compiler.rb +0 -36
- data/vendored/puppet/lib/puppet/parser/ast.rb +0 -61
- data/vendored/puppet/lib/puppet/parser/ast/block_expression.rb +0 -15
- data/vendored/puppet/lib/puppet/parser/ast/branch.rb +0 -19
- data/vendored/puppet/lib/puppet/parser/ast/hostclass.rb +0 -27
- data/vendored/puppet/lib/puppet/parser/ast/leaf.rb +0 -80
- data/vendored/puppet/lib/puppet/parser/ast/node.rb +0 -17
- data/vendored/puppet/lib/puppet/parser/ast/pops_bridge.rb +0 -291
- data/vendored/puppet/lib/puppet/parser/ast/resource.rb +0 -66
- data/vendored/puppet/lib/puppet/parser/ast/resource_instance.rb +0 -10
- data/vendored/puppet/lib/puppet/parser/ast/resourceparam.rb +0 -31
- data/vendored/puppet/lib/puppet/parser/ast/top_level_construct.rb +0 -4
- data/vendored/puppet/lib/puppet/parser/catalog_compiler.rb +0 -56
- data/vendored/puppet/lib/puppet/parser/compiler.rb +0 -798
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator.rb +0 -33
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -64
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +0 -64
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -20
- data/vendored/puppet/lib/puppet/parser/e4_parser_adapter.rb +0 -60
- data/vendored/puppet/lib/puppet/parser/environment_compiler.rb +0 -199
- data/vendored/puppet/lib/puppet/parser/files.rb +0 -92
- data/vendored/puppet/lib/puppet/parser/functions.rb +0 -311
- data/vendored/puppet/lib/puppet/parser/functions/assert_type.rb +0 -60
- data/vendored/puppet/lib/puppet/parser/functions/binary_file.rb +0 -24
- data/vendored/puppet/lib/puppet/parser/functions/break.rb +0 -39
- data/vendored/puppet/lib/puppet/parser/functions/contain.rb +0 -30
- data/vendored/puppet/lib/puppet/parser/functions/create_resources.rb +0 -106
- data/vendored/puppet/lib/puppet/parser/functions/defined.rb +0 -107
- data/vendored/puppet/lib/puppet/parser/functions/dig.rb +0 -38
- data/vendored/puppet/lib/puppet/parser/functions/digest.rb +0 -5
- data/vendored/puppet/lib/puppet/parser/functions/each.rb +0 -104
- data/vendored/puppet/lib/puppet/parser/functions/epp.rb +0 -39
- data/vendored/puppet/lib/puppet/parser/functions/fail.rb +0 -4
- data/vendored/puppet/lib/puppet/parser/functions/file.rb +0 -33
- data/vendored/puppet/lib/puppet/parser/functions/filter.rb +0 -78
- data/vendored/puppet/lib/puppet/parser/functions/find_file.rb +0 -28
- data/vendored/puppet/lib/puppet/parser/functions/fqdn_rand.rb +0 -36
- data/vendored/puppet/lib/puppet/parser/functions/generate.rb +0 -36
- data/vendored/puppet/lib/puppet/parser/functions/hiera.rb +0 -103
- data/vendored/puppet/lib/puppet/parser/functions/hiera_array.rb +0 -92
- data/vendored/puppet/lib/puppet/parser/functions/hiera_hash.rb +0 -102
- data/vendored/puppet/lib/puppet/parser/functions/hiera_include.rb +0 -101
- data/vendored/puppet/lib/puppet/parser/functions/include.rb +0 -34
- data/vendored/puppet/lib/puppet/parser/functions/inline_epp.rb +0 -51
- data/vendored/puppet/lib/puppet/parser/functions/inline_template.rb +0 -26
- data/vendored/puppet/lib/puppet/parser/functions/lest.rb +0 -49
- data/vendored/puppet/lib/puppet/parser/functions/lookup.rb +0 -132
- data/vendored/puppet/lib/puppet/parser/functions/map.rb +0 -76
- data/vendored/puppet/lib/puppet/parser/functions/match.rb +0 -43
- data/vendored/puppet/lib/puppet/parser/functions/md5.rb +0 -5
- data/vendored/puppet/lib/puppet/parser/functions/new.rb +0 -991
- data/vendored/puppet/lib/puppet/parser/functions/next.rb +0 -38
- data/vendored/puppet/lib/puppet/parser/functions/realize.rb +0 -20
- data/vendored/puppet/lib/puppet/parser/functions/reduce.rb +0 -137
- data/vendored/puppet/lib/puppet/parser/functions/regsubst.rb +0 -62
- data/vendored/puppet/lib/puppet/parser/functions/require.rb +0 -40
- data/vendored/puppet/lib/puppet/parser/functions/return.rb +0 -92
- data/vendored/puppet/lib/puppet/parser/functions/reverse_each.rb +0 -83
- data/vendored/puppet/lib/puppet/parser/functions/scanf.rb +0 -38
- data/vendored/puppet/lib/puppet/parser/functions/sha1.rb +0 -5
- data/vendored/puppet/lib/puppet/parser/functions/sha256.rb +0 -5
- data/vendored/puppet/lib/puppet/parser/functions/shellquote.rb +0 -61
- data/vendored/puppet/lib/puppet/parser/functions/slice.rb +0 -39
- data/vendored/puppet/lib/puppet/parser/functions/split.rb +0 -28
- data/vendored/puppet/lib/puppet/parser/functions/sprintf.rb +0 -61
- data/vendored/puppet/lib/puppet/parser/functions/step.rb +0 -84
- data/vendored/puppet/lib/puppet/parser/functions/strftime.rb +0 -185
- data/vendored/puppet/lib/puppet/parser/functions/tag.rb +0 -12
- data/vendored/puppet/lib/puppet/parser/functions/tagged.rb +0 -21
- data/vendored/puppet/lib/puppet/parser/functions/template.rb +0 -39
- data/vendored/puppet/lib/puppet/parser/functions/then.rb +0 -73
- data/vendored/puppet/lib/puppet/parser/functions/type.rb +0 -53
- data/vendored/puppet/lib/puppet/parser/functions/versioncmp.rb +0 -30
- data/vendored/puppet/lib/puppet/parser/functions/with.rb +0 -28
- data/vendored/puppet/lib/puppet/parser/parser_factory.rb +0 -30
- data/vendored/puppet/lib/puppet/parser/relationship.rb +0 -83
- data/vendored/puppet/lib/puppet/parser/resource.rb +0 -416
- data/vendored/puppet/lib/puppet/parser/resource/param.rb +0 -29
- data/vendored/puppet/lib/puppet/parser/scope.rb +0 -1123
- data/vendored/puppet/lib/puppet/parser/script_compiler.rb +0 -123
- data/vendored/puppet/lib/puppet/parser/templatewrapper.rb +0 -102
- data/vendored/puppet/lib/puppet/parser/type_loader.rb +0 -149
- data/vendored/puppet/lib/puppet/plugins.rb +0 -9
- data/vendored/puppet/lib/puppet/plugins/configuration.rb +0 -25
- data/vendored/puppet/lib/puppet/plugins/syntax_checkers.rb +0 -98
- data/vendored/puppet/lib/puppet/pops.rb +0 -121
- data/vendored/puppet/lib/puppet/pops/adaptable.rb +0 -206
- data/vendored/puppet/lib/puppet/pops/adapters.rb +0 -152
- data/vendored/puppet/lib/puppet/pops/evaluator/access_operator.rb +0 -719
- data/vendored/puppet/lib/puppet/pops/evaluator/callable_signature.rb +0 -107
- data/vendored/puppet/lib/puppet/pops/evaluator/closure.rb +0 -373
- data/vendored/puppet/lib/puppet/pops/evaluator/collector_transformer.rb +0 -234
- data/vendored/puppet/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +0 -86
- data/vendored/puppet/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +0 -29
- data/vendored/puppet/lib/puppet/pops/evaluator/collectors/exported_collector.rb +0 -69
- data/vendored/puppet/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +0 -37
- data/vendored/puppet/lib/puppet/pops/evaluator/compare_operator.rb +0 -254
- data/vendored/puppet/lib/puppet/pops/evaluator/deferred_resolver.rb +0 -130
- data/vendored/puppet/lib/puppet/pops/evaluator/epp_evaluator.rb +0 -120
- data/vendored/puppet/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -1299
- data/vendored/puppet/lib/puppet/pops/evaluator/external_syntax_support.rb +0 -45
- data/vendored/puppet/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +0 -82
- data/vendored/puppet/lib/puppet/pops/evaluator/literal_evaluator.rb +0 -87
- data/vendored/puppet/lib/puppet/pops/evaluator/puppet_proc.rb +0 -69
- data/vendored/puppet/lib/puppet/pops/evaluator/relationship_operator.rb +0 -185
- data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_converter.rb +0 -221
- data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_resource_support.rb +0 -117
- data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_support.rb +0 -534
- data/vendored/puppet/lib/puppet/pops/functions/dispatch.rb +0 -107
- data/vendored/puppet/lib/puppet/pops/functions/dispatcher.rb +0 -71
- data/vendored/puppet/lib/puppet/pops/functions/function.rb +0 -141
- data/vendored/puppet/lib/puppet/pops/issue_reporter.rb +0 -137
- data/vendored/puppet/lib/puppet/pops/issues.rb +0 -921
- data/vendored/puppet/lib/puppet/pops/label_provider.rb +0 -90
- data/vendored/puppet/lib/puppet/pops/loader/base_loader.rb +0 -166
- data/vendored/puppet/lib/puppet/pops/loader/dependency_loader.rb +0 -92
- data/vendored/puppet/lib/puppet/pops/loader/gem_support.rb +0 -49
- data/vendored/puppet/lib/puppet/pops/loader/loader.rb +0 -209
- data/vendored/puppet/lib/puppet/pops/loader/loader_paths.rb +0 -377
- data/vendored/puppet/lib/puppet/pops/loader/module_loaders.rb +0 -549
- data/vendored/puppet/lib/puppet/pops/loader/null_loader.rb +0 -60
- data/vendored/puppet/lib/puppet/pops/loader/predefined_loader.rb +0 -24
- data/vendored/puppet/lib/puppet/pops/loader/puppet_function_instantiator.rb +0 -84
- data/vendored/puppet/lib/puppet/pops/loader/puppet_plan_instantiator.rb +0 -84
- data/vendored/puppet/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +0 -79
- data/vendored/puppet/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +0 -39
- data/vendored/puppet/lib/puppet/pops/loader/ruby_function_instantiator.rb +0 -45
- data/vendored/puppet/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +0 -62
- data/vendored/puppet/lib/puppet/pops/loader/runtime3_type_loader.rb +0 -101
- data/vendored/puppet/lib/puppet/pops/loader/simple_environment_loader.rb +0 -20
- data/vendored/puppet/lib/puppet/pops/loader/static_loader.rb +0 -127
- data/vendored/puppet/lib/puppet/pops/loader/task_instantiator.rb +0 -40
- data/vendored/puppet/lib/puppet/pops/loader/type_definition_instantiator.rb +0 -100
- data/vendored/puppet/lib/puppet/pops/loader/typed_name.rb +0 -54
- data/vendored/puppet/lib/puppet/pops/loader/uri_helper.rb +0 -22
- data/vendored/puppet/lib/puppet/pops/loaders.rb +0 -533
- data/vendored/puppet/lib/puppet/pops/lookup.rb +0 -96
- data/vendored/puppet/lib/puppet/pops/lookup/configured_data_provider.rb +0 -93
- data/vendored/puppet/lib/puppet/pops/lookup/context.rb +0 -200
- data/vendored/puppet/lib/puppet/pops/lookup/data_adapter.rb +0 -27
- data/vendored/puppet/lib/puppet/pops/lookup/data_dig_function_provider.rb +0 -145
- data/vendored/puppet/lib/puppet/pops/lookup/data_hash_function_provider.rb +0 -126
- data/vendored/puppet/lib/puppet/pops/lookup/data_provider.rb +0 -92
- data/vendored/puppet/lib/puppet/pops/lookup/environment_data_provider.rb +0 -35
- data/vendored/puppet/lib/puppet/pops/lookup/explainer.rb +0 -595
- data/vendored/puppet/lib/puppet/pops/lookup/function_provider.rb +0 -110
- data/vendored/puppet/lib/puppet/pops/lookup/global_data_provider.rb +0 -75
- data/vendored/puppet/lib/puppet/pops/lookup/hiera_config.rb +0 -761
- data/vendored/puppet/lib/puppet/pops/lookup/interpolation.rb +0 -154
- data/vendored/puppet/lib/puppet/pops/lookup/invocation.rb +0 -261
- data/vendored/puppet/lib/puppet/pops/lookup/location_resolver.rb +0 -99
- data/vendored/puppet/lib/puppet/pops/lookup/lookup_adapter.rb +0 -520
- data/vendored/puppet/lib/puppet/pops/lookup/lookup_key.rb +0 -99
- data/vendored/puppet/lib/puppet/pops/lookup/lookup_key_function_provider.rb +0 -92
- data/vendored/puppet/lib/puppet/pops/lookup/module_data_provider.rb +0 -89
- data/vendored/puppet/lib/puppet/pops/lookup/sub_lookup.rb +0 -92
- data/vendored/puppet/lib/puppet/pops/merge_strategy.rb +0 -437
- data/vendored/puppet/lib/puppet/pops/migration/migration_checker.rb +0 -58
- data/vendored/puppet/lib/puppet/pops/model/ast.rb +0 -4964
- data/vendored/puppet/lib/puppet/pops/model/ast_transformer.rb +0 -131
- data/vendored/puppet/lib/puppet/pops/model/factory.rb +0 -1163
- data/vendored/puppet/lib/puppet/pops/model/model_label_provider.rb +0 -139
- data/vendored/puppet/lib/puppet/pops/model/model_tree_dumper.rb +0 -467
- data/vendored/puppet/lib/puppet/pops/model/pn_transformer.rb +0 -400
- data/vendored/puppet/lib/puppet/pops/model/tree_dumper.rb +0 -59
- data/vendored/puppet/lib/puppet/pops/parser/code_merger.rb +0 -29
- data/vendored/puppet/lib/puppet/pops/parser/eparser.rb +0 -3361
- data/vendored/puppet/lib/puppet/pops/parser/epp_parser.rb +0 -51
- data/vendored/puppet/lib/puppet/pops/parser/epp_support.rb +0 -264
- data/vendored/puppet/lib/puppet/pops/parser/evaluating_parser.rb +0 -165
- data/vendored/puppet/lib/puppet/pops/parser/heredoc_support.rb +0 -143
- data/vendored/puppet/lib/puppet/pops/parser/interpolation_support.rb +0 -244
- data/vendored/puppet/lib/puppet/pops/parser/lexer2.rb +0 -772
- data/vendored/puppet/lib/puppet/pops/parser/lexer_support.rb +0 -221
- data/vendored/puppet/lib/puppet/pops/parser/locatable.rb +0 -23
- data/vendored/puppet/lib/puppet/pops/parser/locator.rb +0 -336
- data/vendored/puppet/lib/puppet/pops/parser/parser_support.rb +0 -247
- data/vendored/puppet/lib/puppet/pops/parser/pn_parser.rb +0 -316
- data/vendored/puppet/lib/puppet/pops/parser/slurp_support.rb +0 -117
- data/vendored/puppet/lib/puppet/pops/patterns.rb +0 -60
- data/vendored/puppet/lib/puppet/pops/pcore.rb +0 -135
- data/vendored/puppet/lib/puppet/pops/pn.rb +0 -236
- data/vendored/puppet/lib/puppet/pops/puppet_stack.rb +0 -57
- data/vendored/puppet/lib/puppet/pops/resource/param.rb +0 -55
- data/vendored/puppet/lib/puppet/pops/resource/resource_type_impl.rb +0 -314
- data/vendored/puppet/lib/puppet/pops/semantic_error.rb +0 -29
- data/vendored/puppet/lib/puppet/pops/serialization.rb +0 -43
- data/vendored/puppet/lib/puppet/pops/serialization/abstract_reader.rb +0 -180
- data/vendored/puppet/lib/puppet/pops/serialization/abstract_writer.rb +0 -222
- data/vendored/puppet/lib/puppet/pops/serialization/deserializer.rb +0 -80
- data/vendored/puppet/lib/puppet/pops/serialization/extension.rb +0 -158
- data/vendored/puppet/lib/puppet/pops/serialization/from_data_converter.rb +0 -224
- data/vendored/puppet/lib/puppet/pops/serialization/instance_reader.rb +0 -19
- data/vendored/puppet/lib/puppet/pops/serialization/instance_writer.rb +0 -14
- data/vendored/puppet/lib/puppet/pops/serialization/json.rb +0 -297
- data/vendored/puppet/lib/puppet/pops/serialization/json_path.rb +0 -127
- data/vendored/puppet/lib/puppet/pops/serialization/object.rb +0 -70
- data/vendored/puppet/lib/puppet/pops/serialization/serializer.rb +0 -140
- data/vendored/puppet/lib/puppet/pops/serialization/time_factory.rb +0 -67
- data/vendored/puppet/lib/puppet/pops/serialization/to_data_converter.rb +0 -313
- data/vendored/puppet/lib/puppet/pops/serialization/to_stringified_converter.rb +0 -226
- data/vendored/puppet/lib/puppet/pops/time/timespan.rb +0 -718
- data/vendored/puppet/lib/puppet/pops/time/timestamp.rb +0 -160
- data/vendored/puppet/lib/puppet/pops/types/annotatable.rb +0 -36
- data/vendored/puppet/lib/puppet/pops/types/annotation.rb +0 -71
- data/vendored/puppet/lib/puppet/pops/types/class_loader.rb +0 -132
- data/vendored/puppet/lib/puppet/pops/types/enumeration.rb +0 -16
- data/vendored/puppet/lib/puppet/pops/types/implementation_registry.rb +0 -134
- data/vendored/puppet/lib/puppet/pops/types/iterable.rb +0 -339
- data/vendored/puppet/lib/puppet/pops/types/p_binary_type.rb +0 -232
- data/vendored/puppet/lib/puppet/pops/types/p_init_type.rb +0 -238
- data/vendored/puppet/lib/puppet/pops/types/p_meta_type.rb +0 -94
- data/vendored/puppet/lib/puppet/pops/types/p_object_type.rb +0 -1117
- data/vendored/puppet/lib/puppet/pops/types/p_object_type_extension.rb +0 -218
- data/vendored/puppet/lib/puppet/pops/types/p_runtime_type.rb +0 -115
- data/vendored/puppet/lib/puppet/pops/types/p_sem_ver_range_type.rb +0 -190
- data/vendored/puppet/lib/puppet/pops/types/p_sem_ver_type.rb +0 -149
- data/vendored/puppet/lib/puppet/pops/types/p_sensitive_type.rb +0 -73
- data/vendored/puppet/lib/puppet/pops/types/p_timespan_type.rb +0 -192
- data/vendored/puppet/lib/puppet/pops/types/p_timestamp_type.rb +0 -73
- data/vendored/puppet/lib/puppet/pops/types/p_type_set_type.rb +0 -383
- data/vendored/puppet/lib/puppet/pops/types/p_uri_type.rb +0 -190
- data/vendored/puppet/lib/puppet/pops/types/puppet_object.rb +0 -40
- data/vendored/puppet/lib/puppet/pops/types/recursion_guard.rb +0 -136
- data/vendored/puppet/lib/puppet/pops/types/ruby_generator.rb +0 -472
- data/vendored/puppet/lib/puppet/pops/types/ruby_method.rb +0 -31
- data/vendored/puppet/lib/puppet/pops/types/string_converter.rb +0 -1123
- data/vendored/puppet/lib/puppet/pops/types/tree_iterators.rb +0 -254
- data/vendored/puppet/lib/puppet/pops/types/type_acceptor.rb +0 -25
- data/vendored/puppet/lib/puppet/pops/types/type_asserter.rb +0 -47
- data/vendored/puppet/lib/puppet/pops/types/type_assertion_error.rb +0 -27
- data/vendored/puppet/lib/puppet/pops/types/type_calculator.rb +0 -809
- data/vendored/puppet/lib/puppet/pops/types/type_conversion_error.rb +0 -15
- data/vendored/puppet/lib/puppet/pops/types/type_factory.rb +0 -631
- data/vendored/puppet/lib/puppet/pops/types/type_formatter.rb +0 -802
- data/vendored/puppet/lib/puppet/pops/types/type_mismatch_describer.rb +0 -1075
- data/vendored/puppet/lib/puppet/pops/types/type_parser.rb +0 -685
- data/vendored/puppet/lib/puppet/pops/types/type_set_reference.rb +0 -59
- data/vendored/puppet/lib/puppet/pops/types/type_with_members.rb +0 -43
- data/vendored/puppet/lib/puppet/pops/types/types.rb +0 -3631
- data/vendored/puppet/lib/puppet/pops/utils.rb +0 -119
- data/vendored/puppet/lib/puppet/pops/validation.rb +0 -466
- data/vendored/puppet/lib/puppet/pops/validation/checker4_0.rb +0 -1127
- data/vendored/puppet/lib/puppet/pops/validation/tasks_checker.rb +0 -101
- data/vendored/puppet/lib/puppet/pops/validation/validator_factory_4_0.rb +0 -43
- data/vendored/puppet/lib/puppet/pops/visitable.rb +0 -6
- data/vendored/puppet/lib/puppet/pops/visitor.rb +0 -116
- data/vendored/puppet/lib/puppet/property.rb +0 -608
- data/vendored/puppet/lib/puppet/property/boolean.rb +0 -7
- data/vendored/puppet/lib/puppet/property/ensure.rb +0 -105
- data/vendored/puppet/lib/puppet/property/keyvalue.rb +0 -157
- data/vendored/puppet/lib/puppet/property/list.rb +0 -69
- data/vendored/puppet/lib/puppet/property/ordered_list.rb +0 -29
- data/vendored/puppet/lib/puppet/provider.rb +0 -624
- data/vendored/puppet/lib/puppet/provider/aix_object.rb +0 -483
- data/vendored/puppet/lib/puppet/provider/command.rb +0 -25
- data/vendored/puppet/lib/puppet/provider/confine.rb +0 -6
- data/vendored/puppet/lib/puppet/provider/exec.rb +0 -96
- data/vendored/puppet/lib/puppet/provider/exec/posix.rb +0 -48
- data/vendored/puppet/lib/puppet/provider/exec/shell.rb +0 -25
- data/vendored/puppet/lib/puppet/provider/exec/windows.rb +0 -55
- data/vendored/puppet/lib/puppet/provider/file/posix.rb +0 -136
- data/vendored/puppet/lib/puppet/provider/file/windows.rb +0 -104
- data/vendored/puppet/lib/puppet/provider/group/aix.rb +0 -82
- data/vendored/puppet/lib/puppet/provider/group/directoryservice.rb +0 -22
- data/vendored/puppet/lib/puppet/provider/group/groupadd.rb +0 -111
- data/vendored/puppet/lib/puppet/provider/group/ldap.rb +0 -45
- data/vendored/puppet/lib/puppet/provider/group/pw.rb +0 -49
- data/vendored/puppet/lib/puppet/provider/group/windows_adsi.rb +0 -106
- data/vendored/puppet/lib/puppet/provider/ldap.rb +0 -137
- data/vendored/puppet/lib/puppet/provider/nameservice.rb +0 -325
- data/vendored/puppet/lib/puppet/provider/nameservice/directoryservice.rb +0 -508
- data/vendored/puppet/lib/puppet/provider/nameservice/objectadd.rb +0 -22
- data/vendored/puppet/lib/puppet/provider/nameservice/pw.rb +0 -21
- data/vendored/puppet/lib/puppet/provider/network_device.rb +0 -72
- data/vendored/puppet/lib/puppet/provider/package.rb +0 -56
- data/vendored/puppet/lib/puppet/provider/package/aix.rb +0 -152
- data/vendored/puppet/lib/puppet/provider/package/appdmg.rb +0 -109
- data/vendored/puppet/lib/puppet/provider/package/apple.rb +0 -46
- data/vendored/puppet/lib/puppet/provider/package/apt.rb +0 -116
- data/vendored/puppet/lib/puppet/provider/package/aptitude.rb +0 -29
- data/vendored/puppet/lib/puppet/provider/package/aptrpm.rb +0 -83
- data/vendored/puppet/lib/puppet/provider/package/blastwave.rb +0 -111
- data/vendored/puppet/lib/puppet/provider/package/dnf.rb +0 -47
- data/vendored/puppet/lib/puppet/provider/package/dpkg.rb +0 -165
- data/vendored/puppet/lib/puppet/provider/package/fink.rb +0 -79
- data/vendored/puppet/lib/puppet/provider/package/freebsd.rb +0 -47
- data/vendored/puppet/lib/puppet/provider/package/gem.rb +0 -175
- data/vendored/puppet/lib/puppet/provider/package/hpux.rb +0 -44
- data/vendored/puppet/lib/puppet/provider/package/macports.rb +0 -107
- data/vendored/puppet/lib/puppet/provider/package/nim.rb +0 -282
- data/vendored/puppet/lib/puppet/provider/package/openbsd.rb +0 -242
- data/vendored/puppet/lib/puppet/provider/package/opkg.rb +0 -81
- data/vendored/puppet/lib/puppet/provider/package/pacman.rb +0 -267
- data/vendored/puppet/lib/puppet/provider/package/pip.rb +0 -188
- data/vendored/puppet/lib/puppet/provider/package/pip3.rb +0 -20
- data/vendored/puppet/lib/puppet/provider/package/pkg.rb +0 -255
- data/vendored/puppet/lib/puppet/provider/package/pkgdmg.rb +0 -151
- data/vendored/puppet/lib/puppet/provider/package/pkgin.rb +0 -87
- data/vendored/puppet/lib/puppet/provider/package/pkgng.rb +0 -143
- data/vendored/puppet/lib/puppet/provider/package/pkgutil.rb +0 -186
- data/vendored/puppet/lib/puppet/provider/package/portage.rb +0 -300
- data/vendored/puppet/lib/puppet/provider/package/ports.rb +0 -91
- data/vendored/puppet/lib/puppet/provider/package/portupgrade.rb +0 -239
- data/vendored/puppet/lib/puppet/provider/package/puppet_gem.rb +0 -17
- data/vendored/puppet/lib/puppet/provider/package/rpm.rb +0 -405
- data/vendored/puppet/lib/puppet/provider/package/rug.rb +0 -51
- data/vendored/puppet/lib/puppet/provider/package/sun.rb +0 -133
- data/vendored/puppet/lib/puppet/provider/package/sunfreeware.rb +0 -9
- data/vendored/puppet/lib/puppet/provider/package/tdnf.rb +0 -28
- data/vendored/puppet/lib/puppet/provider/package/up2date.rb +0 -40
- data/vendored/puppet/lib/puppet/provider/package/urpmi.rb +0 -55
- data/vendored/puppet/lib/puppet/provider/package/windows.rb +0 -113
- data/vendored/puppet/lib/puppet/provider/package/windows/exe_package.rb +0 -71
- data/vendored/puppet/lib/puppet/provider/package/windows/msi_package.rb +0 -62
- data/vendored/puppet/lib/puppet/provider/package/windows/package.rb +0 -100
- data/vendored/puppet/lib/puppet/provider/package/yum.rb +0 -293
- data/vendored/puppet/lib/puppet/provider/package/zypper.rb +0 -145
- data/vendored/puppet/lib/puppet/provider/parsedfile.rb +0 -459
- data/vendored/puppet/lib/puppet/provider/service/base.rb +0 -134
- data/vendored/puppet/lib/puppet/provider/service/bsd.rb +0 -51
- data/vendored/puppet/lib/puppet/provider/service/daemontools.rb +0 -194
- data/vendored/puppet/lib/puppet/provider/service/debian.rb +0 -75
- data/vendored/puppet/lib/puppet/provider/service/freebsd.rb +0 -143
- data/vendored/puppet/lib/puppet/provider/service/gentoo.rb +0 -45
- data/vendored/puppet/lib/puppet/provider/service/init.rb +0 -194
- data/vendored/puppet/lib/puppet/provider/service/launchd.rb +0 -345
- data/vendored/puppet/lib/puppet/provider/service/openbsd.rb +0 -100
- data/vendored/puppet/lib/puppet/provider/service/openrc.rb +0 -71
- data/vendored/puppet/lib/puppet/provider/service/openwrt.rb +0 -36
- data/vendored/puppet/lib/puppet/provider/service/rcng.rb +0 -51
- data/vendored/puppet/lib/puppet/provider/service/redhat.rb +0 -72
- data/vendored/puppet/lib/puppet/provider/service/runit.rb +0 -112
- data/vendored/puppet/lib/puppet/provider/service/service.rb +0 -42
- data/vendored/puppet/lib/puppet/provider/service/smf.rb +0 -169
- data/vendored/puppet/lib/puppet/provider/service/src.rb +0 -147
- data/vendored/puppet/lib/puppet/provider/service/systemd.rb +0 -189
- data/vendored/puppet/lib/puppet/provider/service/upstart.rb +0 -369
- data/vendored/puppet/lib/puppet/provider/service/windows.rb +0 -103
- data/vendored/puppet/lib/puppet/provider/user/aix.rb +0 -271
- data/vendored/puppet/lib/puppet/provider/user/directoryservice.rb +0 -632
- data/vendored/puppet/lib/puppet/provider/user/hpux.rb +0 -95
- data/vendored/puppet/lib/puppet/provider/user/ldap.rb +0 -128
- data/vendored/puppet/lib/puppet/provider/user/openbsd.rb +0 -76
- data/vendored/puppet/lib/puppet/provider/user/pw.rb +0 -98
- data/vendored/puppet/lib/puppet/provider/user/user_role_add.rb +0 -233
- data/vendored/puppet/lib/puppet/provider/user/useradd.rb +0 -265
- data/vendored/puppet/lib/puppet/provider/user/windows_adsi.rb +0 -148
- data/vendored/puppet/lib/puppet/reference/configuration.rb +0 -92
- data/vendored/puppet/lib/puppet/reference/function.rb +0 -17
- data/vendored/puppet/lib/puppet/reference/indirection.rb +0 -71
- data/vendored/puppet/lib/puppet/reference/metaparameter.rb +0 -35
- data/vendored/puppet/lib/puppet/reference/providers.rb +0 -118
- data/vendored/puppet/lib/puppet/reference/report.rb +0 -20
- data/vendored/puppet/lib/puppet/reference/type.rb +0 -113
- data/vendored/puppet/lib/puppet/relationship.rb +0 -89
- data/vendored/puppet/lib/puppet/reports.rb +0 -93
- data/vendored/puppet/lib/puppet/reports/http.rb +0 -37
- data/vendored/puppet/lib/puppet/reports/log.rb +0 -14
- data/vendored/puppet/lib/puppet/reports/store.rb +0 -68
- data/vendored/puppet/lib/puppet/resource.rb +0 -687
- data/vendored/puppet/lib/puppet/resource/capability_finder.rb +0 -150
- data/vendored/puppet/lib/puppet/resource/catalog.rb +0 -675
- data/vendored/puppet/lib/puppet/resource/status.rb +0 -229
- data/vendored/puppet/lib/puppet/resource/type.rb +0 -528
- data/vendored/puppet/lib/puppet/resource/type_collection.rb +0 -263
- data/vendored/puppet/lib/puppet/rest/client.rb +0 -83
- data/vendored/puppet/lib/puppet/rest/errors.rb +0 -14
- data/vendored/puppet/lib/puppet/rest/response.rb +0 -34
- data/vendored/puppet/lib/puppet/rest/route.rb +0 -84
- data/vendored/puppet/lib/puppet/rest/routes.rb +0 -154
- data/vendored/puppet/lib/puppet/rest/ssl_context.rb +0 -13
- data/vendored/puppet/lib/puppet/scheduler.rb +0 -16
- data/vendored/puppet/lib/puppet/scheduler/job.rb +0 -53
- data/vendored/puppet/lib/puppet/scheduler/scheduler.rb +0 -44
- data/vendored/puppet/lib/puppet/scheduler/splay_job.rb +0 -32
- data/vendored/puppet/lib/puppet/scheduler/timer.rb +0 -13
- data/vendored/puppet/lib/puppet/settings.rb +0 -1485
- data/vendored/puppet/lib/puppet/settings/array_setting.rb +0 -17
- data/vendored/puppet/lib/puppet/settings/autosign_setting.rb +0 -22
- data/vendored/puppet/lib/puppet/settings/base_setting.rb +0 -197
- data/vendored/puppet/lib/puppet/settings/boolean_setting.rb +0 -32
- data/vendored/puppet/lib/puppet/settings/certificate_revocation_setting.rb +0 -21
- data/vendored/puppet/lib/puppet/settings/config_file.rb +0 -152
- data/vendored/puppet/lib/puppet/settings/directory_setting.rb +0 -18
- data/vendored/puppet/lib/puppet/settings/duration_setting.rb +0 -32
- data/vendored/puppet/lib/puppet/settings/enum_setting.rb +0 -16
- data/vendored/puppet/lib/puppet/settings/environment_conf.rb +0 -222
- data/vendored/puppet/lib/puppet/settings/errors.rb +0 -11
- data/vendored/puppet/lib/puppet/settings/file_or_directory_setting.rb +0 -40
- data/vendored/puppet/lib/puppet/settings/file_setting.rb +0 -245
- data/vendored/puppet/lib/puppet/settings/ini_file.rb +0 -225
- data/vendored/puppet/lib/puppet/settings/path_setting.rb +0 -8
- data/vendored/puppet/lib/puppet/settings/priority_setting.rb +0 -42
- data/vendored/puppet/lib/puppet/settings/server_list_setting.rb +0 -20
- data/vendored/puppet/lib/puppet/settings/string_setting.rb +0 -9
- data/vendored/puppet/lib/puppet/settings/symbolic_enum_setting.rb +0 -17
- data/vendored/puppet/lib/puppet/settings/terminus_setting.rb +0 -14
- data/vendored/puppet/lib/puppet/settings/ttl_setting.rb +0 -51
- data/vendored/puppet/lib/puppet/settings/value_translator.rb +0 -15
- data/vendored/puppet/lib/puppet/ssl.rb +0 -12
- data/vendored/puppet/lib/puppet/ssl/base.rb +0 -150
- data/vendored/puppet/lib/puppet/ssl/certificate.rb +0 -99
- data/vendored/puppet/lib/puppet/ssl/certificate_request.rb +0 -325
- data/vendored/puppet/lib/puppet/ssl/certificate_request_attributes.rb +0 -37
- data/vendored/puppet/lib/puppet/ssl/certificate_signer.rb +0 -33
- data/vendored/puppet/lib/puppet/ssl/digest.rb +0 -20
- data/vendored/puppet/lib/puppet/ssl/host.rb +0 -626
- data/vendored/puppet/lib/puppet/ssl/key.rb +0 -59
- data/vendored/puppet/lib/puppet/ssl/oids.rb +0 -193
- data/vendored/puppet/lib/puppet/ssl/validator.rb +0 -60
- data/vendored/puppet/lib/puppet/ssl/validator/default_validator.rb +0 -187
- data/vendored/puppet/lib/puppet/ssl/validator/no_validator.rb +0 -20
- data/vendored/puppet/lib/puppet/status.rb +0 -40
- data/vendored/puppet/lib/puppet/syntax_checkers.rb +0 -3
- data/vendored/puppet/lib/puppet/syntax_checkers/base64.rb +0 -40
- data/vendored/puppet/lib/puppet/syntax_checkers/json.rb +0 -35
- data/vendored/puppet/lib/puppet/test/test_helper.rb +0 -251
- data/vendored/puppet/lib/puppet/transaction.rb +0 -444
- data/vendored/puppet/lib/puppet/transaction/additional_resource_generator.rb +0 -220
- data/vendored/puppet/lib/puppet/transaction/event.rb +0 -167
- data/vendored/puppet/lib/puppet/transaction/event_manager.rb +0 -169
- data/vendored/puppet/lib/puppet/transaction/persistence.rb +0 -99
- data/vendored/puppet/lib/puppet/transaction/report.rb +0 -471
- data/vendored/puppet/lib/puppet/transaction/resource_harness.rb +0 -318
- data/vendored/puppet/lib/puppet/type.rb +0 -2673
- data/vendored/puppet/lib/puppet/type/component.rb +0 -88
- data/vendored/puppet/lib/puppet/type/exec.rb +0 -625
- data/vendored/puppet/lib/puppet/type/file.rb +0 -1042
- data/vendored/puppet/lib/puppet/type/file/checksum.rb +0 -50
- data/vendored/puppet/lib/puppet/type/file/checksum_value.rb +0 -54
- data/vendored/puppet/lib/puppet/type/file/content.rb +0 -172
- data/vendored/puppet/lib/puppet/type/file/ctime.rb +0 -20
- data/vendored/puppet/lib/puppet/type/file/data_sync.rb +0 -93
- data/vendored/puppet/lib/puppet/type/file/ensure.rb +0 -192
- data/vendored/puppet/lib/puppet/type/file/group.rb +0 -41
- data/vendored/puppet/lib/puppet/type/file/mode.rb +0 -177
- data/vendored/puppet/lib/puppet/type/file/mtime.rb +0 -18
- data/vendored/puppet/lib/puppet/type/file/owner.rb +0 -44
- data/vendored/puppet/lib/puppet/type/file/selcontext.rb +0 -141
- data/vendored/puppet/lib/puppet/type/file/source.rb +0 -369
- data/vendored/puppet/lib/puppet/type/file/target.rb +0 -87
- data/vendored/puppet/lib/puppet/type/file/type.rb +0 -19
- data/vendored/puppet/lib/puppet/type/filebucket.rb +0 -117
- data/vendored/puppet/lib/puppet/type/group.rb +0 -207
- data/vendored/puppet/lib/puppet/type/notify.rb +0 -46
- data/vendored/puppet/lib/puppet/type/package.rb +0 -568
- data/vendored/puppet/lib/puppet/type/resources.rb +0 -180
- data/vendored/puppet/lib/puppet/type/schedule.rb +0 -430
- data/vendored/puppet/lib/puppet/type/service.rb +0 -255
- data/vendored/puppet/lib/puppet/type/stage.rb +0 -27
- data/vendored/puppet/lib/puppet/type/tidy.rb +0 -349
- data/vendored/puppet/lib/puppet/type/user.rb +0 -818
- data/vendored/puppet/lib/puppet/type/whit.rb +0 -34
- data/vendored/puppet/lib/puppet/util.rb +0 -705
- data/vendored/puppet/lib/puppet/util/at_fork.rb +0 -35
- data/vendored/puppet/lib/puppet/util/at_fork/noop.rb +0 -18
- data/vendored/puppet/lib/puppet/util/at_fork/solaris.rb +0 -160
- data/vendored/puppet/lib/puppet/util/autoload.rb +0 -234
- data/vendored/puppet/lib/puppet/util/backups.rb +0 -86
- data/vendored/puppet/lib/puppet/util/character_encoding.rb +0 -76
- data/vendored/puppet/lib/puppet/util/checksums.rb +0 -361
- data/vendored/puppet/lib/puppet/util/classgen.rb +0 -222
- data/vendored/puppet/lib/puppet/util/colors.rb +0 -100
- data/vendored/puppet/lib/puppet/util/command_line.rb +0 -189
- data/vendored/puppet/lib/puppet/util/command_line/puppet_option_parser.rb +0 -87
- data/vendored/puppet/lib/puppet/util/command_line/trollop.rb +0 -825
- data/vendored/puppet/lib/puppet/util/connection.rb +0 -74
- data/vendored/puppet/lib/puppet/util/constant_inflector.rb +0 -24
- data/vendored/puppet/lib/puppet/util/diff.rb +0 -79
- data/vendored/puppet/lib/puppet/util/docs.rb +0 -128
- data/vendored/puppet/lib/puppet/util/errors.rb +0 -159
- data/vendored/puppet/lib/puppet/util/execution.rb +0 -412
- data/vendored/puppet/lib/puppet/util/execution_stub.rb +0 -26
- data/vendored/puppet/lib/puppet/util/feature.rb +0 -117
- data/vendored/puppet/lib/puppet/util/file_watcher.rb +0 -28
- data/vendored/puppet/lib/puppet/util/fileparsing.rb +0 -397
- data/vendored/puppet/lib/puppet/util/filetype.rb +0 -309
- data/vendored/puppet/lib/puppet/util/http_proxy.rb +0 -207
- data/vendored/puppet/lib/puppet/util/inifile.rb +0 -340
- data/vendored/puppet/lib/puppet/util/instance_loader.rb +0 -61
- data/vendored/puppet/lib/puppet/util/json.rb +0 -69
- data/vendored/puppet/lib/puppet/util/json_lockfile.rb +0 -44
- data/vendored/puppet/lib/puppet/util/ldap.rb +0 -2
- data/vendored/puppet/lib/puppet/util/ldap/connection.rb +0 -71
- data/vendored/puppet/lib/puppet/util/ldap/generator.rb +0 -42
- data/vendored/puppet/lib/puppet/util/ldap/manager.rb +0 -281
- data/vendored/puppet/lib/puppet/util/libuser.rb +0 -12
- data/vendored/puppet/lib/puppet/util/limits.rb +0 -12
- data/vendored/puppet/lib/puppet/util/lockfile.rb +0 -66
- data/vendored/puppet/lib/puppet/util/log.rb +0 -415
- data/vendored/puppet/lib/puppet/util/log/destination.rb +0 -49
- data/vendored/puppet/lib/puppet/util/log/destinations.rb +0 -258
- data/vendored/puppet/lib/puppet/util/logging.rb +0 -311
- data/vendored/puppet/lib/puppet/util/metaid.rb +0 -21
- data/vendored/puppet/lib/puppet/util/metric.rb +0 -64
- data/vendored/puppet/lib/puppet/util/monkey_patches.rb +0 -108
- data/vendored/puppet/lib/puppet/util/multi_match.rb +0 -51
- data/vendored/puppet/lib/puppet/util/network_device.rb +0 -17
- data/vendored/puppet/lib/puppet/util/network_device/base.rb +0 -23
- data/vendored/puppet/lib/puppet/util/network_device/config.rb +0 -105
- data/vendored/puppet/lib/puppet/util/network_device/transport.rb +0 -5
- data/vendored/puppet/lib/puppet/util/network_device/transport/base.rb +0 -26
- data/vendored/puppet/lib/puppet/util/package.rb +0 -31
- data/vendored/puppet/lib/puppet/util/pidlock.rb +0 -62
- data/vendored/puppet/lib/puppet/util/platform.rb +0 -38
- data/vendored/puppet/lib/puppet/util/plist.rb +0 -155
- data/vendored/puppet/lib/puppet/util/posix.rb +0 -137
- data/vendored/puppet/lib/puppet/util/profiler.rb +0 -53
- data/vendored/puppet/lib/puppet/util/profiler/aggregate.rb +0 -85
- data/vendored/puppet/lib/puppet/util/profiler/around_profiler.rb +0 -67
- data/vendored/puppet/lib/puppet/util/profiler/logging.rb +0 -48
- data/vendored/puppet/lib/puppet/util/profiler/object_counts.rb +0 -17
- data/vendored/puppet/lib/puppet/util/profiler/wall_clock.rb +0 -35
- data/vendored/puppet/lib/puppet/util/provider_features.rb +0 -181
- data/vendored/puppet/lib/puppet/util/psych_support.rb +0 -30
- data/vendored/puppet/lib/puppet/util/rdoc.rb +0 -60
- data/vendored/puppet/lib/puppet/util/rdoc/code_objects.rb +0 -294
- data/vendored/puppet/lib/puppet/util/rdoc/generators/puppet_generator.rb +0 -910
- data/vendored/puppet/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +0 -1085
- data/vendored/puppet/lib/puppet/util/rdoc/parser.rb +0 -12
- data/vendored/puppet/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +0 -259
- data/vendored/puppet/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +0 -14
- data/vendored/puppet/lib/puppet/util/reference.rb +0 -119
- data/vendored/puppet/lib/puppet/util/resource_template.rb +0 -61
- data/vendored/puppet/lib/puppet/util/retry_action.rb +0 -46
- data/vendored/puppet/lib/puppet/util/rubygems.rb +0 -63
- data/vendored/puppet/lib/puppet/util/run_mode.rb +0 -110
- data/vendored/puppet/lib/puppet/util/selinux.rb +0 -264
- data/vendored/puppet/lib/puppet/util/skip_tags.rb +0 -9
- data/vendored/puppet/lib/puppet/util/splayer.rb +0 -18
- data/vendored/puppet/lib/puppet/util/ssl.rb +0 -92
- data/vendored/puppet/lib/puppet/util/storage.rb +0 -89
- data/vendored/puppet/lib/puppet/util/suidmanager.rb +0 -167
- data/vendored/puppet/lib/puppet/util/symbolic_file_mode.rb +0 -144
- data/vendored/puppet/lib/puppet/util/tag_set.rb +0 -27
- data/vendored/puppet/lib/puppet/util/tagging.rb +0 -131
- data/vendored/puppet/lib/puppet/util/terminal.rb +0 -16
- data/vendored/puppet/lib/puppet/util/user_attr.rb +0 -21
- data/vendored/puppet/lib/puppet/util/warnings.rb +0 -31
- data/vendored/puppet/lib/puppet/util/watched_file.rb +0 -37
- data/vendored/puppet/lib/puppet/util/watcher.rb +0 -17
- data/vendored/puppet/lib/puppet/util/watcher/change_watcher.rb +0 -33
- data/vendored/puppet/lib/puppet/util/watcher/periodic_watcher.rb +0 -37
- data/vendored/puppet/lib/puppet/util/watcher/timer.rb +0 -19
- data/vendored/puppet/lib/puppet/util/windows.rb +0 -52
- data/vendored/puppet/lib/puppet/util/windows/access_control_entry.rb +0 -84
- data/vendored/puppet/lib/puppet/util/windows/access_control_list.rb +0 -113
- data/vendored/puppet/lib/puppet/util/windows/adsi.rb +0 -494
- data/vendored/puppet/lib/puppet/util/windows/api_types.rb +0 -282
- data/vendored/puppet/lib/puppet/util/windows/com.rb +0 -225
- data/vendored/puppet/lib/puppet/util/windows/error.rb +0 -83
- data/vendored/puppet/lib/puppet/util/windows/eventlog.rb +0 -197
- data/vendored/puppet/lib/puppet/util/windows/file.rb +0 -589
- data/vendored/puppet/lib/puppet/util/windows/principal.rb +0 -192
- data/vendored/puppet/lib/puppet/util/windows/process.rb +0 -497
- data/vendored/puppet/lib/puppet/util/windows/registry.rb +0 -374
- data/vendored/puppet/lib/puppet/util/windows/root_certs.rb +0 -108
- data/vendored/puppet/lib/puppet/util/windows/security.rb +0 -869
- data/vendored/puppet/lib/puppet/util/windows/security_descriptor.rb +0 -62
- data/vendored/puppet/lib/puppet/util/windows/service.rb +0 -770
- data/vendored/puppet/lib/puppet/util/windows/sid.rb +0 -282
- data/vendored/puppet/lib/puppet/util/windows/string.rb +0 -16
- data/vendored/puppet/lib/puppet/util/windows/user.rb +0 -309
- data/vendored/puppet/lib/puppet/util/yaml.rb +0 -72
- data/vendored/puppet/lib/puppet/vendor.rb +0 -57
- data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge.rb +0 -2
- data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge/core.rb +0 -210
- data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge/deep_merge_hash.rb +0 -28
- data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge/rails_compat.rb +0 -27
- data/vendored/puppet/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +0 -608
- data/vendored/puppet/lib/puppet/vendor/load_deep_merge.rb +0 -1
- data/vendored/puppet/lib/puppet/vendor/load_pathspec.rb +0 -1
- data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
- data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
- data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
- data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
- data/vendored/puppet/lib/puppet/vendor/require_vendored.rb +0 -6
- data/vendored/puppet/lib/puppet/version.rb +0 -93
- data/vendored/puppet/lib/puppet_pal.rb +0 -1135
- data/vendored/puppet/lib/puppet_x.rb +0 -14
- data/vendored/require_vendored.rb +0 -3
@@ -1,143 +0,0 @@
|
|
1
|
-
module Puppet::Pops
|
2
|
-
module Parser
|
3
|
-
module HeredocSupport
|
4
|
-
include LexerSupport
|
5
|
-
|
6
|
-
# Pattern for heredoc `@(endtag[:syntax][/escapes])
|
7
|
-
# Produces groups for endtag (group 1), syntax (group 2), and escapes (group 3)
|
8
|
-
#
|
9
|
-
PATTERN_HEREDOC = %r{@\(([^:/\r\n\)]+)(?::[[:blank:]]*([a-z][a-zA-Z0-9_+]+)[[:blank:]]*)?(?:/((?:\w|[$])*)[[:blank:]]*)?\)}
|
10
|
-
|
11
|
-
|
12
|
-
def heredoc
|
13
|
-
scn = @scanner
|
14
|
-
ctx = @lexing_context
|
15
|
-
locator = @locator
|
16
|
-
before = scn.pos
|
17
|
-
|
18
|
-
# scanner is at position before @(
|
19
|
-
# find end of the heredoc spec
|
20
|
-
str = scn.scan_until(/\)/) || lex_error(Issues::HEREDOC_UNCLOSED_PARENTHESIS, :followed_by => followed_by)
|
21
|
-
pos_after_heredoc = scn.pos
|
22
|
-
# Note: allows '+' as separator in syntax, but this needs validation as empty segments are not allowed
|
23
|
-
md = str.match(PATTERN_HEREDOC)
|
24
|
-
lex_error(Issues::HEREDOC_INVALID_SYNTAX) unless md
|
25
|
-
endtag = md[1]
|
26
|
-
syntax = md[2] || ''
|
27
|
-
escapes = md[3]
|
28
|
-
|
29
|
-
endtag.strip!
|
30
|
-
|
31
|
-
# Is this a dq string style heredoc? (endtag enclosed in "")
|
32
|
-
if endtag =~ /^"(.*)"$/
|
33
|
-
dqstring_style = true
|
34
|
-
endtag = $1.strip
|
35
|
-
end
|
36
|
-
|
37
|
-
lex_error(Issues::HEREDOC_EMPTY_ENDTAG) unless endtag.length >= 1
|
38
|
-
|
39
|
-
resulting_escapes = []
|
40
|
-
if escapes
|
41
|
-
escapes = "trnsuL$" if escapes.length < 1
|
42
|
-
|
43
|
-
escapes = escapes.split('')
|
44
|
-
unless escapes.length == escapes.uniq.length
|
45
|
-
lex_error(Issues::HEREDOC_MULTIPLE_AT_ESCAPES, :escapes => escapes)
|
46
|
-
end
|
47
|
-
resulting_escapes = ["\\"]
|
48
|
-
escapes.each do |e|
|
49
|
-
case e
|
50
|
-
when "t", "r", "n", "s", "u", "$"
|
51
|
-
resulting_escapes << e
|
52
|
-
when "L"
|
53
|
-
resulting_escapes += ["\n", "\r\n"]
|
54
|
-
else
|
55
|
-
lex_error(Issues::HEREDOC_INVALID_ESCAPE, :actual => e)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
# Produce a heredoc token to make the syntax available to the grammar
|
61
|
-
enqueue_completed([:HEREDOC, syntax, pos_after_heredoc - before], before)
|
62
|
-
|
63
|
-
# If this is the second or subsequent heredoc on the line, the lexing context's :newline_jump contains
|
64
|
-
# the position after the \n where the next heredoc text should scan. If not set, this is the first
|
65
|
-
# and it should start scanning after the first found \n (or if not found == error).
|
66
|
-
|
67
|
-
if ctx[:newline_jump]
|
68
|
-
scn.pos = ctx[:newline_jump]
|
69
|
-
else
|
70
|
-
scn.scan_until(/\n/) || lex_error(Issues::HEREDOC_WITHOUT_TEXT)
|
71
|
-
end
|
72
|
-
# offset 0 for the heredoc, and its line number
|
73
|
-
heredoc_offset = scn.pos
|
74
|
-
heredoc_line = locator.line_for_offset(heredoc_offset)-1
|
75
|
-
|
76
|
-
# Compute message to emit if there is no end (to make it refer to the opening heredoc position).
|
77
|
-
eof_error = create_lex_error(Issues::HEREDOC_WITHOUT_END_TAGGED_LINE)
|
78
|
-
|
79
|
-
# Text from this position (+ lexing contexts offset for any preceding heredoc) is heredoc until a line
|
80
|
-
# that terminates the heredoc is found.
|
81
|
-
|
82
|
-
# (Endline in EBNF form): WS* ('|' WS*)? ('-' WS*)? endtag WS* \r? (\n|$)
|
83
|
-
endline_pattern = /([[:blank:]]*)(?:([|])[[:blank:]]*)?(?:(\-)[[:blank:]]*)?#{Regexp.escape(endtag)}[[:blank:]]*\r?(?:\n|\z)/
|
84
|
-
lines = []
|
85
|
-
while !scn.eos? do
|
86
|
-
one_line = scn.scan_until(/(?:\n|\z)/)
|
87
|
-
raise eof_error unless one_line
|
88
|
-
if md = one_line.match(endline_pattern)
|
89
|
-
leading = md[1]
|
90
|
-
has_margin = md[2] == '|'
|
91
|
-
remove_break = md[3] == '-'
|
92
|
-
# Record position where next heredoc (from same line as current @()) should start scanning for content
|
93
|
-
ctx[:newline_jump] = scn.pos
|
94
|
-
|
95
|
-
|
96
|
-
# Process captured lines - remove leading, and trailing newline
|
97
|
-
str = heredoc_text(lines, leading, has_margin, remove_break)
|
98
|
-
|
99
|
-
# Use a new lexer instance configured with a sub-locator to enable correct positioning
|
100
|
-
sublexer = self.class.new()
|
101
|
-
locator = Locator::SubLocator.sub_locator(str,
|
102
|
-
locator.file, heredoc_line, heredoc_offset, leading.length())
|
103
|
-
|
104
|
-
# Emit a token that provides the grammar with location information about the lines on which the heredoc
|
105
|
-
# content is based.
|
106
|
-
enqueue([:SUBLOCATE,
|
107
|
-
LexerSupport::TokenValue.new([:SUBLOCATE,
|
108
|
-
lines, lines.reduce(0) {|size, s| size + s.length} ],
|
109
|
-
heredoc_offset,
|
110
|
-
locator)])
|
111
|
-
|
112
|
-
sublexer.lex_unquoted_string(str, locator, resulting_escapes, dqstring_style)
|
113
|
-
sublexer.interpolate_uq_to(self)
|
114
|
-
# Continue scan after @(...)
|
115
|
-
scn.pos = pos_after_heredoc
|
116
|
-
return
|
117
|
-
else
|
118
|
-
lines << one_line
|
119
|
-
end
|
120
|
-
end
|
121
|
-
raise eof_error
|
122
|
-
end
|
123
|
-
|
124
|
-
# Produces the heredoc text string given the individual (unprocessed) lines as an array.
|
125
|
-
# @param lines [Array<String>] unprocessed lines of text in the heredoc w/o terminating line
|
126
|
-
# @param leading [String] the leading text up (up to pipe or other terminating char)
|
127
|
-
# @param has_margin [Boolean] if the left margin should be adjusted as indicated by `leading`
|
128
|
-
# @param remove_break [Boolean] if the line break (\r?\n) at the end of the last line should be removed or not
|
129
|
-
#
|
130
|
-
def heredoc_text(lines, leading, has_margin, remove_break)
|
131
|
-
if has_margin
|
132
|
-
leading_pattern = /^#{Regexp.escape(leading)}/
|
133
|
-
lines = lines.collect {|s| s.gsub(leading_pattern, '') }
|
134
|
-
end
|
135
|
-
result = lines.join('')
|
136
|
-
result.gsub!(/\r?\n\z/m, '') if remove_break
|
137
|
-
result
|
138
|
-
end
|
139
|
-
|
140
|
-
|
141
|
-
end
|
142
|
-
end
|
143
|
-
end
|
@@ -1,244 +0,0 @@
|
|
1
|
-
# This module is an integral part of the Lexer.
|
2
|
-
# It defines interpolation support
|
3
|
-
# PERFORMANCE NOTE: There are 4 very similar methods in this module that are designed to be as
|
4
|
-
# performant as possible. While it is possible to parameterize them into one common method, the overhead
|
5
|
-
# of passing parameters and evaluating conditional logic has a negative impact on performance.
|
6
|
-
#
|
7
|
-
module Puppet::Pops::Parser::InterpolationSupport
|
8
|
-
|
9
|
-
PATTERN_VARIABLE = %r{(::)?(\w+::)*\w+}
|
10
|
-
|
11
|
-
# This is the starting point for a double quoted string with possible interpolation
|
12
|
-
# The structure mimics that of the grammar.
|
13
|
-
# The logic is explicit (where the former implementation used parameters/structures) given to a
|
14
|
-
# generic handler.
|
15
|
-
# (This is both easier to understand and faster).
|
16
|
-
#
|
17
|
-
def interpolate_dq
|
18
|
-
scn = @scanner
|
19
|
-
ctx = @lexing_context
|
20
|
-
before = scn.pos
|
21
|
-
# skip the leading " by doing a scan since the slurp_dqstring uses last matched when there is an error
|
22
|
-
scn.scan(/"/)
|
23
|
-
value,terminator = slurp_dqstring()
|
24
|
-
text = value
|
25
|
-
after = scn.pos
|
26
|
-
while true
|
27
|
-
case terminator
|
28
|
-
when '"'
|
29
|
-
# simple case, there was no interpolation, return directly
|
30
|
-
return emit_completed([:STRING, text, scn.pos-before], before)
|
31
|
-
when '${'
|
32
|
-
count = ctx[:brace_count]
|
33
|
-
ctx[:brace_count] += 1
|
34
|
-
# The ${ terminator is counted towards the string part
|
35
|
-
enqueue_completed([:DQPRE, text, scn.pos-before], before)
|
36
|
-
# Lex expression tokens until a closing (balanced) brace count is reached
|
37
|
-
enqueue_until count
|
38
|
-
break
|
39
|
-
when '$'
|
40
|
-
if varname = scn.scan(PATTERN_VARIABLE)
|
41
|
-
# The $ is counted towards the variable
|
42
|
-
enqueue_completed([:DQPRE, text, after-before-1], before)
|
43
|
-
enqueue_completed([:VARIABLE, varname, scn.pos - after + 1], after - 1)
|
44
|
-
break
|
45
|
-
else
|
46
|
-
# false $ variable start
|
47
|
-
text += terminator
|
48
|
-
value,terminator = slurp_dqstring()
|
49
|
-
text += value
|
50
|
-
after = scn.pos
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
interpolate_tail_dq
|
55
|
-
# return the first enqueued token and shift the queue
|
56
|
-
@token_queue.shift
|
57
|
-
end
|
58
|
-
|
59
|
-
def interpolate_tail_dq
|
60
|
-
scn = @scanner
|
61
|
-
ctx = @lexing_context
|
62
|
-
before = scn.pos
|
63
|
-
value,terminator = slurp_dqstring
|
64
|
-
text = value
|
65
|
-
after = scn.pos
|
66
|
-
while true
|
67
|
-
case terminator
|
68
|
-
when '"'
|
69
|
-
# simple case, there was no further interpolation, return directly
|
70
|
-
enqueue_completed([:DQPOST, text, scn.pos-before], before)
|
71
|
-
return
|
72
|
-
when '${'
|
73
|
-
count = ctx[:brace_count]
|
74
|
-
ctx[:brace_count] += 1
|
75
|
-
# The ${ terminator is counted towards the string part
|
76
|
-
enqueue_completed([:DQMID, text, scn.pos-before], before)
|
77
|
-
# Lex expression tokens until a closing (balanced) brace count is reached
|
78
|
-
enqueue_until count
|
79
|
-
break
|
80
|
-
when '$'
|
81
|
-
if varname = scn.scan(PATTERN_VARIABLE)
|
82
|
-
# The $ is counted towards the variable
|
83
|
-
enqueue_completed([:DQMID, text, after-before-1], before)
|
84
|
-
enqueue_completed([:VARIABLE, varname, scn.pos - after + 1], after - 1)
|
85
|
-
break
|
86
|
-
else
|
87
|
-
# false $ variable start
|
88
|
-
text += terminator
|
89
|
-
value,terminator = slurp_dqstring
|
90
|
-
text += value
|
91
|
-
after = scn.pos
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
interpolate_tail_dq
|
96
|
-
end
|
97
|
-
|
98
|
-
# This is the starting point for a un-quoted string with possible interpolation
|
99
|
-
# The logic is explicit (where the former implementation used parameters/strucures) given to a
|
100
|
-
# generic handler.
|
101
|
-
# (This is both easier to understand and faster).
|
102
|
-
#
|
103
|
-
def interpolate_uq
|
104
|
-
scn = @scanner
|
105
|
-
ctx = @lexing_context
|
106
|
-
before = scn.pos
|
107
|
-
value,terminator = slurp_uqstring()
|
108
|
-
text = value
|
109
|
-
after = scn.pos
|
110
|
-
while true
|
111
|
-
case terminator
|
112
|
-
when ''
|
113
|
-
# simple case, there was no interpolation, return directly
|
114
|
-
enqueue_completed([:STRING, text, scn.pos-before], before)
|
115
|
-
return
|
116
|
-
when '${'
|
117
|
-
count = ctx[:brace_count]
|
118
|
-
ctx[:brace_count] += 1
|
119
|
-
# The ${ terminator is counted towards the string part
|
120
|
-
enqueue_completed([:DQPRE, text, scn.pos-before], before)
|
121
|
-
# Lex expression tokens until a closing (balanced) brace count is reached
|
122
|
-
enqueue_until count
|
123
|
-
break
|
124
|
-
when '$'
|
125
|
-
if varname = scn.scan(PATTERN_VARIABLE)
|
126
|
-
# The $ is counted towards the variable
|
127
|
-
enqueue_completed([:DQPRE, text, after-before-1], before)
|
128
|
-
enqueue_completed([:VARIABLE, varname, scn.pos - after + 1], after - 1)
|
129
|
-
break
|
130
|
-
else
|
131
|
-
# false $ variable start
|
132
|
-
text += terminator
|
133
|
-
value,terminator = slurp_uqstring()
|
134
|
-
text += value
|
135
|
-
after = scn.pos
|
136
|
-
end
|
137
|
-
end
|
138
|
-
end
|
139
|
-
interpolate_tail_uq
|
140
|
-
nil
|
141
|
-
end
|
142
|
-
|
143
|
-
def interpolate_tail_uq
|
144
|
-
scn = @scanner
|
145
|
-
ctx = @lexing_context
|
146
|
-
before = scn.pos
|
147
|
-
value,terminator = slurp_uqstring
|
148
|
-
text = value
|
149
|
-
after = scn.pos
|
150
|
-
while true
|
151
|
-
case terminator
|
152
|
-
when ''
|
153
|
-
# simple case, there was no further interpolation, return directly
|
154
|
-
enqueue_completed([:DQPOST, text, scn.pos-before], before)
|
155
|
-
return
|
156
|
-
when '${'
|
157
|
-
count = ctx[:brace_count]
|
158
|
-
ctx[:brace_count] += 1
|
159
|
-
# The ${ terminator is counted towards the string part
|
160
|
-
enqueue_completed([:DQMID, text, scn.pos-before], before)
|
161
|
-
# Lex expression tokens until a closing (balanced) brace count is reached
|
162
|
-
enqueue_until count
|
163
|
-
break
|
164
|
-
when '$'
|
165
|
-
if varname = scn.scan(PATTERN_VARIABLE)
|
166
|
-
# The $ is counted towards the variable
|
167
|
-
enqueue_completed([:DQMID, text, after-before-1], before)
|
168
|
-
enqueue_completed([:VARIABLE, varname, scn.pos - after + 1], after - 1)
|
169
|
-
break
|
170
|
-
else
|
171
|
-
# false $ variable start
|
172
|
-
text += terminator
|
173
|
-
value,terminator = slurp_uqstring
|
174
|
-
text += value
|
175
|
-
after = scn.pos
|
176
|
-
end
|
177
|
-
end
|
178
|
-
end
|
179
|
-
interpolate_tail_uq
|
180
|
-
end
|
181
|
-
|
182
|
-
# Enqueues lexed tokens until either end of input, or the given brace_count is reached
|
183
|
-
#
|
184
|
-
def enqueue_until brace_count
|
185
|
-
scn = @scanner
|
186
|
-
ctx = @lexing_context
|
187
|
-
queue = @token_queue
|
188
|
-
queue_base = @token_queue[0]
|
189
|
-
|
190
|
-
scn.skip(self.class::PATTERN_WS)
|
191
|
-
queue_size = queue.size
|
192
|
-
until scn.eos? do
|
193
|
-
if token = lex_token
|
194
|
-
if token.equal?(queue_base)
|
195
|
-
# A nested #interpolate_dq call shifted the queue_base token from the @token_queue. It must
|
196
|
-
# be put back since it is intended for the top level #interpolate_dq call only.
|
197
|
-
queue.insert(0, token)
|
198
|
-
next # all relevant tokens are already on the queue
|
199
|
-
end
|
200
|
-
token_name = token[0]
|
201
|
-
ctx[:after] = token_name
|
202
|
-
if token_name == :RBRACE && ctx[:brace_count] == brace_count
|
203
|
-
qlength = queue.size - queue_size
|
204
|
-
if qlength == 1
|
205
|
-
# Single token is subject to replacement
|
206
|
-
queue[-1] = transform_to_variable(queue[-1])
|
207
|
-
elsif qlength > 1 && [:DOT, :LBRACK].include?(queue[queue_size + 1][0])
|
208
|
-
# A first word, number of name token followed by '[' or '.' is subject to replacement
|
209
|
-
# But not for other operators such as ?, +, - etc. where user must use a $ before the name
|
210
|
-
# to get a variable
|
211
|
-
queue[queue_size] = transform_to_variable(queue[queue_size])
|
212
|
-
end
|
213
|
-
return
|
214
|
-
end
|
215
|
-
queue << token
|
216
|
-
else
|
217
|
-
scn.skip(self.class::PATTERN_WS)
|
218
|
-
end
|
219
|
-
end
|
220
|
-
end
|
221
|
-
|
222
|
-
def transform_to_variable(token)
|
223
|
-
token_name = token[0]
|
224
|
-
if [:NUMBER, :NAME, :WORD].include?(token_name) || self.class::KEYWORD_NAMES[token_name] || @taskm_keywords[token_name]
|
225
|
-
t = token[1]
|
226
|
-
ta = t.token_array
|
227
|
-
[:VARIABLE, self.class::TokenValue.new([:VARIABLE, ta[1], ta[2]], t.offset, t.locator)]
|
228
|
-
else
|
229
|
-
token
|
230
|
-
end
|
231
|
-
end
|
232
|
-
|
233
|
-
# Interpolates unquoted string and transfers the result to the given lexer
|
234
|
-
# (This is used when a second lexer instance is used to lex a substring)
|
235
|
-
#
|
236
|
-
def interpolate_uq_to(lexer)
|
237
|
-
interpolate_uq
|
238
|
-
queue = @token_queue
|
239
|
-
until queue.empty? do
|
240
|
-
lexer.enqueue(queue.shift)
|
241
|
-
end
|
242
|
-
end
|
243
|
-
|
244
|
-
end
|
@@ -1,772 +0,0 @@
|
|
1
|
-
# The Lexer is responsible for turning source text into tokens.
|
2
|
-
# This version is a performance enhanced lexer (in comparison to the 3.x and earlier "future parser" lexer.
|
3
|
-
#
|
4
|
-
# Old returns tokens [:KEY, value, { locator = }
|
5
|
-
# Could return [[token], locator]
|
6
|
-
# or Token.new([token], locator) with the same API x[0] = token_symbol, x[1] = self, x[:key] = (:value, :file, :line, :pos) etc
|
7
|
-
|
8
|
-
require 'strscan'
|
9
|
-
require 'puppet/pops/parser/lexer_support'
|
10
|
-
require 'puppet/pops/parser/heredoc_support'
|
11
|
-
require 'puppet/pops/parser/interpolation_support'
|
12
|
-
require 'puppet/pops/parser/epp_support'
|
13
|
-
require 'puppet/pops/parser/slurp_support'
|
14
|
-
|
15
|
-
module Puppet::Pops
|
16
|
-
module Parser
|
17
|
-
class Lexer2
|
18
|
-
include LexerSupport
|
19
|
-
include HeredocSupport
|
20
|
-
include InterpolationSupport
|
21
|
-
include SlurpSupport
|
22
|
-
include EppSupport
|
23
|
-
|
24
|
-
# ALl tokens have three slots, the token name (a Symbol), the token text (String), and a token text length.
|
25
|
-
# All operator and punctuation tokens reuse singleton arrays Tokens that require unique values create
|
26
|
-
# a unique array per token.
|
27
|
-
#
|
28
|
-
# PEFORMANCE NOTES:
|
29
|
-
# This construct reduces the amount of object that needs to be created for operators and punctuation.
|
30
|
-
# The length is pre-calculated for all singleton tokens. The length is used both to signal the length of
|
31
|
-
# the token, and to advance the scanner position (without having to advance it with a scan(regexp)).
|
32
|
-
#
|
33
|
-
TOKEN_LBRACK = [:LBRACK, '['.freeze, 1].freeze
|
34
|
-
TOKEN_LISTSTART = [:LISTSTART, '['.freeze, 1].freeze
|
35
|
-
TOKEN_RBRACK = [:RBRACK, ']'.freeze, 1].freeze
|
36
|
-
TOKEN_LBRACE = [:LBRACE, '{'.freeze, 1].freeze
|
37
|
-
TOKEN_RBRACE = [:RBRACE, '}'.freeze, 1].freeze
|
38
|
-
TOKEN_SELBRACE = [:SELBRACE, '{'.freeze, 1].freeze
|
39
|
-
TOKEN_LPAREN = [:LPAREN, '('.freeze, 1].freeze
|
40
|
-
TOKEN_WSLPAREN = [:WSLPAREN, '('.freeze, 1].freeze
|
41
|
-
TOKEN_RPAREN = [:RPAREN, ')'.freeze, 1].freeze
|
42
|
-
|
43
|
-
TOKEN_EQUALS = [:EQUALS, '='.freeze, 1].freeze
|
44
|
-
TOKEN_APPENDS = [:APPENDS, '+='.freeze, 2].freeze
|
45
|
-
TOKEN_DELETES = [:DELETES, '-='.freeze, 2].freeze
|
46
|
-
|
47
|
-
TOKEN_ISEQUAL = [:ISEQUAL, '=='.freeze, 2].freeze
|
48
|
-
TOKEN_NOTEQUAL = [:NOTEQUAL, '!='.freeze, 2].freeze
|
49
|
-
TOKEN_MATCH = [:MATCH, '=~'.freeze, 2].freeze
|
50
|
-
TOKEN_NOMATCH = [:NOMATCH, '!~'.freeze, 2].freeze
|
51
|
-
TOKEN_GREATEREQUAL = [:GREATEREQUAL, '>='.freeze, 2].freeze
|
52
|
-
TOKEN_GREATERTHAN = [:GREATERTHAN, '>'.freeze, 1].freeze
|
53
|
-
TOKEN_LESSEQUAL = [:LESSEQUAL, '<='.freeze, 2].freeze
|
54
|
-
TOKEN_LESSTHAN = [:LESSTHAN, '<'.freeze, 1].freeze
|
55
|
-
|
56
|
-
TOKEN_FARROW = [:FARROW, '=>'.freeze, 2].freeze
|
57
|
-
TOKEN_PARROW = [:PARROW, '+>'.freeze, 2].freeze
|
58
|
-
|
59
|
-
TOKEN_LSHIFT = [:LSHIFT, '<<'.freeze, 2].freeze
|
60
|
-
TOKEN_LLCOLLECT = [:LLCOLLECT, '<<|'.freeze, 3].freeze
|
61
|
-
TOKEN_LCOLLECT = [:LCOLLECT, '<|'.freeze, 2].freeze
|
62
|
-
|
63
|
-
TOKEN_RSHIFT = [:RSHIFT, '>>'.freeze, 2].freeze
|
64
|
-
TOKEN_RRCOLLECT = [:RRCOLLECT, '|>>'.freeze, 3].freeze
|
65
|
-
TOKEN_RCOLLECT = [:RCOLLECT, '|>'.freeze, 2].freeze
|
66
|
-
|
67
|
-
TOKEN_PLUS = [:PLUS, '+'.freeze, 1].freeze
|
68
|
-
TOKEN_MINUS = [:MINUS, '-'.freeze, 1].freeze
|
69
|
-
TOKEN_DIV = [:DIV, '/'.freeze, 1].freeze
|
70
|
-
TOKEN_TIMES = [:TIMES, '*'.freeze, 1].freeze
|
71
|
-
TOKEN_MODULO = [:MODULO, '%'.freeze, 1].freeze
|
72
|
-
|
73
|
-
TOKEN_NOT = [:NOT, '!'.freeze, 1].freeze
|
74
|
-
TOKEN_DOT = [:DOT, '.'.freeze, 1].freeze
|
75
|
-
TOKEN_PIPE = [:PIPE, '|'.freeze, 1].freeze
|
76
|
-
TOKEN_AT = [:AT , '@'.freeze, 1].freeze
|
77
|
-
TOKEN_ATAT = [:ATAT , '@@'.freeze, 2].freeze
|
78
|
-
TOKEN_COLON = [:COLON, ':'.freeze, 1].freeze
|
79
|
-
TOKEN_COMMA = [:COMMA, ','.freeze, 1].freeze
|
80
|
-
TOKEN_SEMIC = [:SEMIC, ';'.freeze, 1].freeze
|
81
|
-
TOKEN_QMARK = [:QMARK, '?'.freeze, 1].freeze
|
82
|
-
TOKEN_TILDE = [:TILDE, '~'.freeze, 1].freeze # lexed but not an operator in Puppet
|
83
|
-
|
84
|
-
TOKEN_REGEXP = [:REGEXP, nil, 0].freeze
|
85
|
-
|
86
|
-
TOKEN_IN_EDGE = [:IN_EDGE, '->'.freeze, 2].freeze
|
87
|
-
TOKEN_IN_EDGE_SUB = [:IN_EDGE_SUB, '~>'.freeze, 2].freeze
|
88
|
-
TOKEN_OUT_EDGE = [:OUT_EDGE, '<-'.freeze, 2].freeze
|
89
|
-
TOKEN_OUT_EDGE_SUB = [:OUT_EDGE_SUB, '<~'.freeze, 2].freeze
|
90
|
-
|
91
|
-
# Tokens that are always unique to what has been lexed
|
92
|
-
TOKEN_STRING = [:STRING, nil, 0].freeze
|
93
|
-
TOKEN_WORD = [:WORD, nil, 0].freeze
|
94
|
-
TOKEN_DQPRE = [:DQPRE, nil, 0].freeze
|
95
|
-
TOKEN_DQMID = [:DQPRE, nil, 0].freeze
|
96
|
-
TOKEN_DQPOS = [:DQPRE, nil, 0].freeze
|
97
|
-
TOKEN_NUMBER = [:NUMBER, nil, 0].freeze
|
98
|
-
TOKEN_VARIABLE = [:VARIABLE, nil, 1].freeze
|
99
|
-
TOKEN_VARIABLE_EMPTY = [:VARIABLE, ''.freeze, 1].freeze
|
100
|
-
|
101
|
-
# HEREDOC has syntax as an argument.
|
102
|
-
TOKEN_HEREDOC = [:HEREDOC, nil, 0].freeze
|
103
|
-
|
104
|
-
# EPP_START is currently a marker token, may later get syntax
|
105
|
-
TOKEN_EPPSTART = [:EPP_START, nil, 0].freeze
|
106
|
-
TOKEN_EPPEND = [:EPP_END, '%>', 2].freeze
|
107
|
-
TOKEN_EPPEND_TRIM = [:EPP_END_TRIM, '-%>', 3].freeze
|
108
|
-
|
109
|
-
# This is used for unrecognized tokens, will always be a single character. This particular instance
|
110
|
-
# is not used, but is kept here for documentation purposes.
|
111
|
-
TOKEN_OTHER = [:OTHER, nil, 0]
|
112
|
-
|
113
|
-
# Keywords are all singleton tokens with pre calculated lengths.
|
114
|
-
# Booleans are pre-calculated (rather than evaluating the strings "false" "true" repeatedly.
|
115
|
-
#
|
116
|
-
KEYWORDS = {
|
117
|
-
'case' => [:CASE, 'case', 4],
|
118
|
-
'class' => [:CLASS, 'class', 5],
|
119
|
-
'default' => [:DEFAULT, 'default', 7],
|
120
|
-
'define' => [:DEFINE, 'define', 6],
|
121
|
-
'if' => [:IF, 'if', 2],
|
122
|
-
'elsif' => [:ELSIF, 'elsif', 5],
|
123
|
-
'else' => [:ELSE, 'else', 4],
|
124
|
-
'inherits' => [:INHERITS, 'inherits', 8],
|
125
|
-
'node' => [:NODE, 'node', 4],
|
126
|
-
'and' => [:AND, 'and', 3],
|
127
|
-
'or' => [:OR, 'or', 2],
|
128
|
-
'undef' => [:UNDEF, 'undef', 5],
|
129
|
-
'false' => [:BOOLEAN, false, 5],
|
130
|
-
'true' => [:BOOLEAN, true, 4],
|
131
|
-
'in' => [:IN, 'in', 2],
|
132
|
-
'unless' => [:UNLESS, 'unless', 6],
|
133
|
-
'function' => [:FUNCTION, 'function', 8],
|
134
|
-
'type' => [:TYPE, 'type', 4],
|
135
|
-
'attr' => [:ATTR, 'attr', 4],
|
136
|
-
'private' => [:PRIVATE, 'private', 7],
|
137
|
-
'application' => [:APPLICATION, 'application', 11],
|
138
|
-
'consumes' => [:CONSUMES, 'consumes', 8],
|
139
|
-
'produces' => [:PRODUCES, 'produces', 8],
|
140
|
-
'site' => [:SITE, 'site', 4],
|
141
|
-
}
|
142
|
-
|
143
|
-
KEYWORDS.each {|k,v| v[1].freeze; v.freeze }
|
144
|
-
KEYWORDS.freeze
|
145
|
-
|
146
|
-
# Reverse lookup of keyword name to string
|
147
|
-
KEYWORD_NAMES = {}
|
148
|
-
KEYWORDS.each {|k, v| KEYWORD_NAMES[v[0]] = k }
|
149
|
-
KEYWORD_NAMES.freeze
|
150
|
-
|
151
|
-
PATTERN_WS = %r{[[:blank:]\r]+}
|
152
|
-
PATTERN_NON_WS = %r{\w+\b?}
|
153
|
-
|
154
|
-
# The single line comment includes the line ending.
|
155
|
-
PATTERN_COMMENT = %r{#.*\r?}
|
156
|
-
PATTERN_MLCOMMENT = %r{/\*(.*?)\*/}m
|
157
|
-
|
158
|
-
PATTERN_REGEX = %r{/[^/]*/}
|
159
|
-
PATTERN_REGEX_END = %r{/}
|
160
|
-
PATTERN_REGEX_A = %r{\A/} # for replacement to ""
|
161
|
-
PATTERN_REGEX_Z = %r{/\Z} # for replacement to ""
|
162
|
-
PATTERN_REGEX_ESC = %r{\\/} # for replacement to "/"
|
163
|
-
|
164
|
-
# The 3x patterns:
|
165
|
-
# PATTERN_CLASSREF = %r{((::){0,1}[A-Z][-\w]*)+}
|
166
|
-
# PATTERN_NAME = %r{((::)?[a-z0-9][-\w]*)(::[a-z0-9][-\w]*)*}
|
167
|
-
|
168
|
-
# The NAME and CLASSREF in 4x are strict. Each segment must start with
|
169
|
-
# a letter a-z and may not contain dashes (\w includes letters, digits and _).
|
170
|
-
#
|
171
|
-
PATTERN_CLASSREF = %r{((::){0,1}[A-Z][\w]*)+}
|
172
|
-
PATTERN_NAME = %r{^((::)?[a-z][\w]*)(::[a-z][\w]*)*$}
|
173
|
-
|
174
|
-
PATTERN_BARE_WORD = %r{((?:::){0,1}(?:[a-z_](?:[\w-]*[\w])?))+}
|
175
|
-
|
176
|
-
PATTERN_DOLLAR_VAR = %r{\$(::)?(\w+::)*\w+}
|
177
|
-
PATTERN_NUMBER = %r{\b(?:0[xX][0-9A-Fa-f]+|0?\d+(?:\.\d+)?(?:[eE]-?\d+)?)\b}
|
178
|
-
|
179
|
-
# PERFORMANCE NOTE:
|
180
|
-
# Comparison against a frozen string is faster (than unfrozen).
|
181
|
-
#
|
182
|
-
STRING_BSLASH_SLASH = '\/'.freeze
|
183
|
-
|
184
|
-
attr_reader :locator
|
185
|
-
|
186
|
-
def initialize()
|
187
|
-
@selector = {
|
188
|
-
'.' => lambda { emit(TOKEN_DOT, @scanner.pos) },
|
189
|
-
',' => lambda { emit(TOKEN_COMMA, @scanner.pos) },
|
190
|
-
'[' => lambda do
|
191
|
-
before = @scanner.pos
|
192
|
-
if (before == 0 || @scanner.string[locator.char_offset(before)-1,1] =~ /[[:blank:]\r\n]+/)
|
193
|
-
emit(TOKEN_LISTSTART, before)
|
194
|
-
else
|
195
|
-
emit(TOKEN_LBRACK, before)
|
196
|
-
end
|
197
|
-
end,
|
198
|
-
']' => lambda { emit(TOKEN_RBRACK, @scanner.pos) },
|
199
|
-
'(' => lambda do
|
200
|
-
before = @scanner.pos
|
201
|
-
# If first on a line, or only whitespace between start of line and '('
|
202
|
-
# then the token is special to avoid being taken as start of a call.
|
203
|
-
line_start = @lexing_context[:line_lexical_start]
|
204
|
-
if before == line_start || @scanner.string.byteslice(line_start, before - line_start) =~ /\A[[:blank:]\r]+\Z/
|
205
|
-
emit(TOKEN_WSLPAREN, before)
|
206
|
-
else
|
207
|
-
emit(TOKEN_LPAREN, before)
|
208
|
-
end
|
209
|
-
end,
|
210
|
-
')' => lambda { emit(TOKEN_RPAREN, @scanner.pos) },
|
211
|
-
';' => lambda { emit(TOKEN_SEMIC, @scanner.pos) },
|
212
|
-
'?' => lambda { emit(TOKEN_QMARK, @scanner.pos) },
|
213
|
-
'*' => lambda { emit(TOKEN_TIMES, @scanner.pos) },
|
214
|
-
'%' => lambda do
|
215
|
-
scn = @scanner
|
216
|
-
before = scn.pos
|
217
|
-
la = scn.peek(2)
|
218
|
-
if la[1] == '>' && @lexing_context[:epp_mode]
|
219
|
-
scn.pos += 2
|
220
|
-
if @lexing_context[:epp_mode] == :expr
|
221
|
-
enqueue_completed(TOKEN_EPPEND, before)
|
222
|
-
end
|
223
|
-
@lexing_context[:epp_mode] = :text
|
224
|
-
interpolate_epp
|
225
|
-
else
|
226
|
-
emit(TOKEN_MODULO, before)
|
227
|
-
end
|
228
|
-
end,
|
229
|
-
'{' => lambda do
|
230
|
-
# The lexer needs to help the parser since the technology used cannot deal with
|
231
|
-
# lookahead of same token with different precedence. This is solved by making left brace
|
232
|
-
# after ? into a separate token.
|
233
|
-
#
|
234
|
-
@lexing_context[:brace_count] += 1
|
235
|
-
emit(if @lexing_context[:after] == :QMARK
|
236
|
-
TOKEN_SELBRACE
|
237
|
-
else
|
238
|
-
TOKEN_LBRACE
|
239
|
-
end, @scanner.pos)
|
240
|
-
end,
|
241
|
-
'}' => lambda do
|
242
|
-
@lexing_context[:brace_count] -= 1
|
243
|
-
emit(TOKEN_RBRACE, @scanner.pos)
|
244
|
-
end,
|
245
|
-
|
246
|
-
|
247
|
-
# TOKENS @, @@, @(
|
248
|
-
'@' => lambda do
|
249
|
-
scn = @scanner
|
250
|
-
la = scn.peek(2)
|
251
|
-
if la[1] == '@'
|
252
|
-
emit(TOKEN_ATAT, scn.pos) # TODO; Check if this is good for the grammar
|
253
|
-
elsif la[1] == '('
|
254
|
-
heredoc
|
255
|
-
else
|
256
|
-
emit(TOKEN_AT, scn.pos)
|
257
|
-
end
|
258
|
-
end,
|
259
|
-
|
260
|
-
# TOKENS |, |>, |>>
|
261
|
-
'|' => lambda do
|
262
|
-
scn = @scanner
|
263
|
-
la = scn.peek(3)
|
264
|
-
emit(la[1] == '>' ? (la[2] == '>' ? TOKEN_RRCOLLECT : TOKEN_RCOLLECT) : TOKEN_PIPE, scn.pos)
|
265
|
-
end,
|
266
|
-
|
267
|
-
# TOKENS =, =>, ==, =~
|
268
|
-
'=' => lambda do
|
269
|
-
scn = @scanner
|
270
|
-
la = scn.peek(2)
|
271
|
-
emit(case la[1]
|
272
|
-
when '='
|
273
|
-
TOKEN_ISEQUAL
|
274
|
-
when '>'
|
275
|
-
TOKEN_FARROW
|
276
|
-
when '~'
|
277
|
-
TOKEN_MATCH
|
278
|
-
else
|
279
|
-
TOKEN_EQUALS
|
280
|
-
end, scn.pos)
|
281
|
-
end,
|
282
|
-
|
283
|
-
# TOKENS '+', '+=', and '+>'
|
284
|
-
'+' => lambda do
|
285
|
-
scn = @scanner
|
286
|
-
la = scn.peek(2)
|
287
|
-
emit(case la[1]
|
288
|
-
when '='
|
289
|
-
TOKEN_APPENDS
|
290
|
-
when '>'
|
291
|
-
TOKEN_PARROW
|
292
|
-
else
|
293
|
-
TOKEN_PLUS
|
294
|
-
end, scn.pos)
|
295
|
-
end,
|
296
|
-
|
297
|
-
# TOKENS '-', '->', and epp '-%>' (end of interpolation with trim)
|
298
|
-
'-' => lambda do
|
299
|
-
scn = @scanner
|
300
|
-
la = scn.peek(3)
|
301
|
-
before = scn.pos
|
302
|
-
if @lexing_context[:epp_mode] && la[1] == '%' && la[2] == '>'
|
303
|
-
scn.pos += 3
|
304
|
-
if @lexing_context[:epp_mode] == :expr
|
305
|
-
enqueue_completed(TOKEN_EPPEND_TRIM, before)
|
306
|
-
end
|
307
|
-
interpolate_epp(:with_trim)
|
308
|
-
else
|
309
|
-
emit(case la[1]
|
310
|
-
when '>'
|
311
|
-
TOKEN_IN_EDGE
|
312
|
-
when '='
|
313
|
-
TOKEN_DELETES
|
314
|
-
else
|
315
|
-
TOKEN_MINUS
|
316
|
-
end, before)
|
317
|
-
end
|
318
|
-
end,
|
319
|
-
|
320
|
-
# TOKENS !, !=, !~
|
321
|
-
'!' => lambda do
|
322
|
-
scn = @scanner
|
323
|
-
la = scn.peek(2)
|
324
|
-
emit(case la[1]
|
325
|
-
when '='
|
326
|
-
TOKEN_NOTEQUAL
|
327
|
-
when '~'
|
328
|
-
TOKEN_NOMATCH
|
329
|
-
else
|
330
|
-
TOKEN_NOT
|
331
|
-
end, scn.pos)
|
332
|
-
end,
|
333
|
-
|
334
|
-
# TOKENS ~>, ~
|
335
|
-
'~' => lambda do
|
336
|
-
scn = @scanner
|
337
|
-
la = scn.peek(2)
|
338
|
-
emit(la[1] == '>' ? TOKEN_IN_EDGE_SUB : TOKEN_TILDE, scn.pos)
|
339
|
-
end,
|
340
|
-
|
341
|
-
'#' => lambda { @scanner.skip(PATTERN_COMMENT); nil },
|
342
|
-
|
343
|
-
# TOKENS '/', '/*' and '/ regexp /'
|
344
|
-
'/' => lambda do
|
345
|
-
scn = @scanner
|
346
|
-
la = scn.peek(2)
|
347
|
-
if la[1] == '*'
|
348
|
-
lex_error(Issues::UNCLOSED_MLCOMMENT) if scn.skip(PATTERN_MLCOMMENT).nil?
|
349
|
-
nil
|
350
|
-
else
|
351
|
-
before = scn.pos
|
352
|
-
# regexp position is a regexp, else a div
|
353
|
-
if regexp_acceptable? && value = scn.scan(PATTERN_REGEX)
|
354
|
-
# Ensure an escaped / was not matched
|
355
|
-
while escaped_end(value)
|
356
|
-
more = scn.scan_until(PATTERN_REGEX_END)
|
357
|
-
return emit(TOKEN_DIV, before) unless more
|
358
|
-
value << more
|
359
|
-
end
|
360
|
-
regex = value.sub(PATTERN_REGEX_A, '').sub(PATTERN_REGEX_Z, '').gsub(PATTERN_REGEX_ESC, '/')
|
361
|
-
emit_completed([:REGEX, Regexp.new(regex), scn.pos-before], before)
|
362
|
-
else
|
363
|
-
emit(TOKEN_DIV, before)
|
364
|
-
end
|
365
|
-
end
|
366
|
-
end,
|
367
|
-
|
368
|
-
# TOKENS <, <=, <|, <<|, <<, <-, <~
|
369
|
-
'<' => lambda do
|
370
|
-
scn = @scanner
|
371
|
-
la = scn.peek(3)
|
372
|
-
emit(case la[1]
|
373
|
-
when '<'
|
374
|
-
if la[2] == '|'
|
375
|
-
TOKEN_LLCOLLECT
|
376
|
-
else
|
377
|
-
TOKEN_LSHIFT
|
378
|
-
end
|
379
|
-
when '='
|
380
|
-
TOKEN_LESSEQUAL
|
381
|
-
when '|'
|
382
|
-
TOKEN_LCOLLECT
|
383
|
-
when '-'
|
384
|
-
TOKEN_OUT_EDGE
|
385
|
-
when '~'
|
386
|
-
TOKEN_OUT_EDGE_SUB
|
387
|
-
else
|
388
|
-
TOKEN_LESSTHAN
|
389
|
-
end, scn.pos)
|
390
|
-
end,
|
391
|
-
|
392
|
-
# TOKENS >, >=, >>
|
393
|
-
'>' => lambda do
|
394
|
-
scn = @scanner
|
395
|
-
la = scn.peek(2)
|
396
|
-
emit(case la[1]
|
397
|
-
when '>'
|
398
|
-
TOKEN_RSHIFT
|
399
|
-
when '='
|
400
|
-
TOKEN_GREATEREQUAL
|
401
|
-
else
|
402
|
-
TOKEN_GREATERTHAN
|
403
|
-
end, scn.pos)
|
404
|
-
end,
|
405
|
-
|
406
|
-
# TOKENS :, ::CLASSREF, ::NAME
|
407
|
-
':' => lambda do
|
408
|
-
scn = @scanner
|
409
|
-
la = scn.peek(3)
|
410
|
-
before = scn.pos
|
411
|
-
if la[1] == ':'
|
412
|
-
# PERFORMANCE NOTE: This could potentially be speeded up by using a case/when listing all
|
413
|
-
# upper case letters. Alternatively, the 'A', and 'Z' comparisons may be faster if they are
|
414
|
-
# frozen.
|
415
|
-
#
|
416
|
-
la2 = la[2]
|
417
|
-
if la2 >= 'A' && la2 <= 'Z'
|
418
|
-
# CLASSREF or error
|
419
|
-
value = scn.scan(PATTERN_CLASSREF)
|
420
|
-
if value && scn.peek(2) != '::'
|
421
|
-
after = scn.pos
|
422
|
-
emit_completed([:CLASSREF, value.freeze, after-before], before)
|
423
|
-
else
|
424
|
-
# move to faulty position ('::<uc-letter>' was ok)
|
425
|
-
scn.pos = scn.pos + 3
|
426
|
-
lex_error(Issues::ILLEGAL_FULLY_QUALIFIED_CLASS_REFERENCE)
|
427
|
-
end
|
428
|
-
else
|
429
|
-
value = scn.scan(PATTERN_BARE_WORD)
|
430
|
-
if value
|
431
|
-
if value =~ PATTERN_NAME
|
432
|
-
emit_completed([:NAME, value.freeze, scn.pos - before], before)
|
433
|
-
else
|
434
|
-
emit_completed([:WORD, value.freeze, scn.pos - before], before)
|
435
|
-
end
|
436
|
-
else
|
437
|
-
# move to faulty position ('::' was ok)
|
438
|
-
scn.pos = scn.pos + 2
|
439
|
-
lex_error(Issues::ILLEGAL_FULLY_QUALIFIED_NAME)
|
440
|
-
end
|
441
|
-
end
|
442
|
-
else
|
443
|
-
emit(TOKEN_COLON, before)
|
444
|
-
end
|
445
|
-
end,
|
446
|
-
|
447
|
-
'$' => lambda do
|
448
|
-
scn = @scanner
|
449
|
-
before = scn.pos
|
450
|
-
if value = scn.scan(PATTERN_DOLLAR_VAR)
|
451
|
-
emit_completed([:VARIABLE, value[1..-1].freeze, scn.pos - before], before)
|
452
|
-
else
|
453
|
-
# consume the $ and let higher layer complain about the error instead of getting a syntax error
|
454
|
-
emit(TOKEN_VARIABLE_EMPTY, before)
|
455
|
-
end
|
456
|
-
end,
|
457
|
-
|
458
|
-
'"' => lambda do
|
459
|
-
# Recursive string interpolation, 'interpolate' either returns a STRING token, or
|
460
|
-
# a DQPRE with the rest of the string's tokens placed in the @token_queue
|
461
|
-
interpolate_dq
|
462
|
-
end,
|
463
|
-
|
464
|
-
"'" => lambda do
|
465
|
-
scn = @scanner
|
466
|
-
before = scn.pos
|
467
|
-
emit_completed([:STRING, slurp_sqstring.freeze, scn.pos - before], before)
|
468
|
-
end,
|
469
|
-
|
470
|
-
"\n" => lambda do
|
471
|
-
# If heredoc_cont is in effect there are heredoc text lines to skip over
|
472
|
-
# otherwise just skip the newline.
|
473
|
-
#
|
474
|
-
ctx = @lexing_context
|
475
|
-
if ctx[:newline_jump]
|
476
|
-
@scanner.pos = ctx[:newline_jump]
|
477
|
-
ctx[:newline_jump] = nil
|
478
|
-
else
|
479
|
-
@scanner.pos += 1
|
480
|
-
end
|
481
|
-
ctx[:line_lexical_start] = @scanner.pos
|
482
|
-
nil
|
483
|
-
end,
|
484
|
-
'' => lambda { nil } # when the peek(1) returns empty
|
485
|
-
}
|
486
|
-
|
487
|
-
[ ' ', "\t", "\r" ].each { |c| @selector[c] = lambda { @scanner.skip(PATTERN_WS); nil } }
|
488
|
-
|
489
|
-
[ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].each do |c|
|
490
|
-
@selector[c] = lambda do
|
491
|
-
scn = @scanner
|
492
|
-
before = scn.pos
|
493
|
-
value = scn.scan(PATTERN_NUMBER)
|
494
|
-
if value
|
495
|
-
length = scn.pos - before
|
496
|
-
assert_numeric(value, before)
|
497
|
-
emit_completed([:NUMBER, value.freeze, length], before)
|
498
|
-
else
|
499
|
-
invalid_number = scn.scan_until(PATTERN_NON_WS)
|
500
|
-
if before > 1
|
501
|
-
after = scn.pos
|
502
|
-
scn.pos = before - 1
|
503
|
-
if scn.peek(1) == '.'
|
504
|
-
# preceded by a dot. Is this a bad decimal number then?
|
505
|
-
scn.pos = before - 2
|
506
|
-
while scn.peek(1) =~ /^\d$/
|
507
|
-
invalid_number = nil
|
508
|
-
before = scn.pos
|
509
|
-
break if before == 0
|
510
|
-
scn.pos = scn.pos - 1
|
511
|
-
end
|
512
|
-
end
|
513
|
-
scn.pos = before
|
514
|
-
invalid_number = scn.peek(after - before) unless invalid_number
|
515
|
-
end
|
516
|
-
assert_numeric(invalid_number, before)
|
517
|
-
scn.pos = before + 1
|
518
|
-
lex_error(Issues::ILLEGAL_NUMBER, {:value => invalid_number})
|
519
|
-
end
|
520
|
-
end
|
521
|
-
end
|
522
|
-
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
|
523
|
-
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '_'].each do |c|
|
524
|
-
@selector[c] = lambda do
|
525
|
-
scn = @scanner
|
526
|
-
before = scn.pos
|
527
|
-
value = scn.scan(PATTERN_BARE_WORD)
|
528
|
-
if value && value =~ PATTERN_NAME
|
529
|
-
emit_completed(KEYWORDS[value] || @taskm_keywords[value] || [:NAME, value.freeze, scn.pos - before], before)
|
530
|
-
elsif value
|
531
|
-
emit_completed([:WORD, value.freeze, scn.pos - before], before)
|
532
|
-
else
|
533
|
-
# move to faulty position ([a-z_] was ok)
|
534
|
-
scn.pos = scn.pos + 1
|
535
|
-
fully_qualified = scn.match?(/::/)
|
536
|
-
if fully_qualified
|
537
|
-
lex_error(Issues::ILLEGAL_FULLY_QUALIFIED_NAME)
|
538
|
-
else
|
539
|
-
lex_error(Issues::ILLEGAL_NAME_OR_BARE_WORD)
|
540
|
-
end
|
541
|
-
end
|
542
|
-
end
|
543
|
-
end
|
544
|
-
|
545
|
-
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
|
546
|
-
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'].each do |c|
|
547
|
-
@selector[c] = lambda do
|
548
|
-
scn = @scanner
|
549
|
-
before = scn.pos
|
550
|
-
value = @scanner.scan(PATTERN_CLASSREF)
|
551
|
-
if value && @scanner.peek(2) != '::'
|
552
|
-
emit_completed([:CLASSREF, value.freeze, scn.pos - before], before)
|
553
|
-
else
|
554
|
-
# move to faulty position ([A-Z] was ok)
|
555
|
-
scn.pos = scn.pos + 1
|
556
|
-
lex_error(Issues::ILLEGAL_CLASS_REFERENCE)
|
557
|
-
end
|
558
|
-
end
|
559
|
-
end
|
560
|
-
|
561
|
-
@selector.default = lambda do
|
562
|
-
# In case of unicode spaces of various kinds that are captured by a regexp, but not by the
|
563
|
-
# simpler case expression above (not worth handling those special cases with better performance).
|
564
|
-
scn = @scanner
|
565
|
-
if scn.skip(PATTERN_WS)
|
566
|
-
nil
|
567
|
-
else
|
568
|
-
# "unrecognized char"
|
569
|
-
emit([:OTHER, scn.peek(0), 1], scn.pos)
|
570
|
-
end
|
571
|
-
end
|
572
|
-
@selector.each { |k,v| k.freeze }
|
573
|
-
@selector.freeze
|
574
|
-
end
|
575
|
-
|
576
|
-
# Determine if last char of value is escaped by a backslash
|
577
|
-
def escaped_end(value)
|
578
|
-
escaped = false
|
579
|
-
if value.end_with?(STRING_BSLASH_SLASH)
|
580
|
-
value[1...-1].each_codepoint do |cp|
|
581
|
-
if cp == 0x5c # backslash
|
582
|
-
escaped = !escaped
|
583
|
-
else
|
584
|
-
escaped = false
|
585
|
-
end
|
586
|
-
end
|
587
|
-
end
|
588
|
-
escaped
|
589
|
-
end
|
590
|
-
|
591
|
-
# Clears the lexer state (it is not required to call this as it will be garbage collected
|
592
|
-
# and the next lex call (lex_string, lex_file) will reset the internal state.
|
593
|
-
#
|
594
|
-
def clear()
|
595
|
-
# not really needed, but if someone wants to ensure garbage is collected as early as possible
|
596
|
-
@scanner = nil
|
597
|
-
@locator = nil
|
598
|
-
@lexing_context = nil
|
599
|
-
end
|
600
|
-
|
601
|
-
# Convenience method, and for compatibility with older lexer. Use the lex_string instead which allows
|
602
|
-
# passing the path to use without first having to call file= (which reads the file if it exists).
|
603
|
-
# (Bad form to use overloading of assignment operator for something that is not really an assignment. Also,
|
604
|
-
# overloading of = does not allow passing more than one argument).
|
605
|
-
#
|
606
|
-
def string=(string)
|
607
|
-
lex_string(string, nil)
|
608
|
-
end
|
609
|
-
|
610
|
-
def lex_string(string, path=nil)
|
611
|
-
initvars
|
612
|
-
assert_not_bom(string)
|
613
|
-
@scanner = StringScanner.new(string)
|
614
|
-
@locator = Locator.locator(string, path)
|
615
|
-
end
|
616
|
-
|
617
|
-
# Lexes an unquoted string.
|
618
|
-
# @param string [String] the string to lex
|
619
|
-
# @param locator [Locator] the locator to use (a default is used if nil is given)
|
620
|
-
# @param escapes [Array<String>] array of character strings representing the escape sequences to transform
|
621
|
-
# @param interpolate [Boolean] whether interpolation of expressions should be made or not.
|
622
|
-
#
|
623
|
-
def lex_unquoted_string(string, locator, escapes, interpolate)
|
624
|
-
initvars
|
625
|
-
assert_not_bom(string)
|
626
|
-
@scanner = StringScanner.new(string)
|
627
|
-
@locator = locator || Locator.locator(string, '')
|
628
|
-
@lexing_context[:escapes] = escapes || UQ_ESCAPES
|
629
|
-
@lexing_context[:uq_slurp_pattern] = interpolate ? (escapes.include?('$') ? SLURP_UQ_PATTERN : SLURP_UQNE_PATTERN) : SLURP_ALL_PATTERN
|
630
|
-
end
|
631
|
-
|
632
|
-
# Convenience method, and for compatibility with older lexer. Use the lex_file instead.
|
633
|
-
# (Bad form to use overloading of assignment operator for something that is not really an assignment).
|
634
|
-
#
|
635
|
-
def file=(file)
|
636
|
-
lex_file(file)
|
637
|
-
end
|
638
|
-
|
639
|
-
# TODO: This method should not be used, callers should get the locator since it is most likely required to
|
640
|
-
# compute line, position etc given offsets.
|
641
|
-
#
|
642
|
-
def file
|
643
|
-
@locator ? @locator.file : nil
|
644
|
-
end
|
645
|
-
|
646
|
-
# Initializes lexing of the content of the given file. An empty string is used if the file does not exist.
|
647
|
-
#
|
648
|
-
def lex_file(file)
|
649
|
-
initvars
|
650
|
-
contents = Puppet::FileSystem.exist?(file) ? Puppet::FileSystem.read(file, :mode => 'rb', :encoding => 'utf-8') : ''
|
651
|
-
assert_not_bom(contents)
|
652
|
-
@scanner = StringScanner.new(contents.freeze)
|
653
|
-
@locator = Locator.locator(contents, file)
|
654
|
-
end
|
655
|
-
|
656
|
-
def initvars
|
657
|
-
@token_queue = []
|
658
|
-
# NOTE: additional keys are used; :escapes, :uq_slurp_pattern, :newline_jump, :epp_*
|
659
|
-
@lexing_context = {
|
660
|
-
:brace_count => 0,
|
661
|
-
:after => nil,
|
662
|
-
:line_lexical_start => 0
|
663
|
-
}
|
664
|
-
# Use of --tasks introduces the new keyword 'plan'
|
665
|
-
@taskm_keywords = Puppet[:tasks] ? { 'plan' => [:PLAN, 'plan', 4], 'apply' => [:APPLY, 'apply', 5] }.freeze : EMPTY_HASH
|
666
|
-
end
|
667
|
-
|
668
|
-
# Scans all of the content and returns it in an array
|
669
|
-
# Note that the terminating [false, false] token is included in the result.
|
670
|
-
#
|
671
|
-
def fullscan
|
672
|
-
result = []
|
673
|
-
scan {|token| result.push(token) }
|
674
|
-
result
|
675
|
-
end
|
676
|
-
|
677
|
-
# A block must be passed to scan. It will be called with two arguments, a symbol for the token,
|
678
|
-
# and an instance of LexerSupport::TokenValue
|
679
|
-
# PERFORMANCE NOTE: The TokenValue is designed to reduce the amount of garbage / temporary data
|
680
|
-
# and to only convert the lexer's internal tokens on demand. It is slightly more costly to create an
|
681
|
-
# instance of a class defined in Ruby than an Array or Hash, but the gain is much bigger since transformation
|
682
|
-
# logic is avoided for many of its members (most are never used (e.g. line/pos information which is only of
|
683
|
-
# value in general for error messages, and for some expressions (which the lexer does not know about).
|
684
|
-
#
|
685
|
-
def scan
|
686
|
-
# PERFORMANCE note: it is faster to access local variables than instance variables.
|
687
|
-
# This makes a small but notable difference since instance member access is avoided for
|
688
|
-
# every token in the lexed content.
|
689
|
-
#
|
690
|
-
scn = @scanner
|
691
|
-
lex_error_without_pos(Issues::NO_INPUT_TO_LEXER) unless scn
|
692
|
-
|
693
|
-
ctx = @lexing_context
|
694
|
-
queue = @token_queue
|
695
|
-
selector = @selector
|
696
|
-
|
697
|
-
scn.skip(PATTERN_WS)
|
698
|
-
|
699
|
-
# This is the lexer's main loop
|
700
|
-
until queue.empty? && scn.eos? do
|
701
|
-
if token = queue.shift || selector[scn.peek(1)].call
|
702
|
-
ctx[:after] = token[0]
|
703
|
-
yield token
|
704
|
-
end
|
705
|
-
end
|
706
|
-
|
707
|
-
# Signals end of input
|
708
|
-
yield [false, false]
|
709
|
-
end
|
710
|
-
|
711
|
-
# This lexes one token at the current position of the scanner.
|
712
|
-
# PERFORMANCE NOTE: Any change to this logic should be performance measured.
|
713
|
-
#
|
714
|
-
def lex_token
|
715
|
-
@selector[@scanner.peek(1)].call
|
716
|
-
end
|
717
|
-
|
718
|
-
# Emits (produces) a token [:tokensymbol, TokenValue] and moves the scanner's position past the token
|
719
|
-
#
|
720
|
-
def emit(token, byte_offset)
|
721
|
-
@scanner.pos = byte_offset + token[2]
|
722
|
-
[token[0], TokenValue.new(token, byte_offset, @locator)]
|
723
|
-
end
|
724
|
-
|
725
|
-
# Emits the completed token on the form [:tokensymbol, TokenValue. This method does not alter
|
726
|
-
# the scanner's position.
|
727
|
-
#
|
728
|
-
def emit_completed(token, byte_offset)
|
729
|
-
[token[0], TokenValue.new(token, byte_offset, @locator)]
|
730
|
-
end
|
731
|
-
|
732
|
-
# Enqueues a completed token at the given offset
|
733
|
-
def enqueue_completed(token, byte_offset)
|
734
|
-
@token_queue << emit_completed(token, byte_offset)
|
735
|
-
end
|
736
|
-
|
737
|
-
# Allows subprocessors for heredoc etc to enqueue tokens that are tokenized by a different lexer instance
|
738
|
-
#
|
739
|
-
def enqueue(emitted_token)
|
740
|
-
@token_queue << emitted_token
|
741
|
-
end
|
742
|
-
|
743
|
-
# Answers after which tokens it is acceptable to lex a regular expression.
|
744
|
-
# PERFORMANCE NOTE:
|
745
|
-
# It may be beneficial to turn this into a hash with default value of true for missing entries.
|
746
|
-
# A case expression with literal values will however create a hash internally. Since a reference is
|
747
|
-
# always needed to the hash, this access is almost as costly as a method call.
|
748
|
-
#
|
749
|
-
def regexp_acceptable?
|
750
|
-
case @lexing_context[:after]
|
751
|
-
|
752
|
-
# Ends of (potential) R-value generating expressions
|
753
|
-
when :RPAREN, :RBRACK, :RRCOLLECT, :RCOLLECT
|
754
|
-
false
|
755
|
-
|
756
|
-
# End of (potential) R-value - but must be allowed because of case expressions
|
757
|
-
# Called out here to not be mistaken for a bug.
|
758
|
-
when :RBRACE
|
759
|
-
true
|
760
|
-
|
761
|
-
# Operands (that can be followed by DIV (even if illegal in grammar)
|
762
|
-
when :NAME, :CLASSREF, :NUMBER, :STRING, :BOOLEAN, :DQPRE, :DQMID, :DQPOST, :HEREDOC, :REGEX, :VARIABLE, :WORD
|
763
|
-
false
|
764
|
-
|
765
|
-
else
|
766
|
-
true
|
767
|
-
end
|
768
|
-
end
|
769
|
-
|
770
|
-
end
|
771
|
-
end
|
772
|
-
end
|