我正在处理一个包含3个ini文件的应用程序,这些文件有点刺激性的自定义格式。我试图将这些编译成一个标准' ini文件。
我希望以伪代码的形式提供一些灵感来帮助我编写某种编译器代码。
这是其中一个ini文件的示例。小于/大于表示重定向到文件中的另一个部分。这些重定向可以是递归的。即,一个重定向然后重定向到另一个。它也可能意味着重定向到外部文件(在这种情况下存在3个值)。注释以#符号
开头 Date Price Open High Low Vol. Change %
0 Jul 15, 2016 98.78 99.02 99.30 98.51 30.14M -0.01%
1 Jul 14, 2016 98.79 97.39 98.99 97.32 38.92M 1.98%
----
['-0.01%', '1.98%']
这是我尝试实现的一个例子。我已删除了评论的可读性。
[PrimaryServer]
name = DEMO1
baseUrl = http://demo1.awesome.com
[SecondaryServer]
name = DEMO2
baseUrl = http://demo2.awesome.com
[LoginUrl]
# This is a standard redirect
baseLoginUrl = <PrimaryServer:baseUrl>
# This is a redirect appended with extra information
fullLoginUrl = <PrimaryServer:baseUrl>/login.php
# Here's a redirect that points to another redirect
enableSSL = <SSLConfiguration:enableSSL>
# This is a key that has mutliple comma-separated values, some of which are redirects.
serverNames = <PrimaryServer:name>,<SecondaryServer:name>,AdditionalRandomServerName
# This one is particularly nasty. It's a redirect to another file...
authenticationMechanism = <Authenication.ini:Mechanisms:PrimaryMechanism>
[SSLConfiguration]
enableSSL = <SSLCertificates:isCertificateInstalled>
[SSLCertificates]
isCertificateInstalled = true
我正在考虑使用ini4j(Java)来实现这一目标,但我决不会使用该语言。
我的主要问题是:
1)如何处理递归重定向
2)我如何最好地处理具有附加字符串的重定向,例如[PrimaryServer]
name = DEMO1
baseUrl = http://demo1.awesome.com
[SecondaryServer]
name = DEMO2
baseUrl = http://demo2.awesome.com
[LoginUrl]
baseLoginUrl = http://demo1.awesome.com
fullLoginUrl = http://demo1.awesome.com/login.php
enableSSL = true
serverNames = DEMO1,DEMO2,AdditionalRandomServerName
authenticationMechanism = valueFromExternalFile
[SSLConfiguration]
enableSSL = <SSLCertificates:isCertificateInstalled>
[SSLCertificates]
isCertificateInstalled = true
3)有关如何处理外部重定向的任何建议的加分点。如果那部分尚未发挥作用,那就没什么大不了的了。
到目前为止,我能够解析和整理文件,但我正在努力解决这些重定向问题。
再次,我只希望伪代码。也许我需要更多的咖啡,但我真的很困惑。
提前感谢任何建议。