Thank you for the confirmation. I've never worked with flex, but I was
wondering what it is that prevents adding a single-character token as an
option?
E.g., in lexer.l adding one additional [A-Z] token?
198 [A-Z] {
199 return TOKEN(CURRENCY, yytext, yyleng);
200 }
201 [A-Z][A-Z0-9\'\.\_\-]*[A-Z0-9] {
202 return TOKEN(CURRENCY, yytext, yyleng);
203 }
204 \/[A-Z0-9\'\.\_\-]*[A-Z]([A-Z0-9\'\.\_\-]*[A-Z0-9])? {
205 return TOKEN(CURRENCY, yytext, yyleng);
206 }
In the spirit of blindly trying things I used the above change and it
*seems* to parse OK.
(venv) $ cat ~/tmp/odd.beancount
2014-02-16 open Assets:US:ETrade:Cash
2014-02-16 open Assets:US:ETrade:V
2014-02-16 open Expenses:Financial:Commissions
2014-02-16 open Equity:OpeningBalances
2014-02-16 * "Opening Balance"
Assets:US:ETrade:Cash 10,000.00 USD
Equity:OpeningBalances
2014-02-16 * "Buying some V"
Assets:US:ETrade:V 10.00 V {231.59 USD}
Assets:US:ETrade:Cash
(venv) $ bean-query ~/tmp/odd.beancount
Input file: "Beancount"
Ready with 6 directives (4 postings in 2 transactions).
beancount> balances
account sum_position
---------------------- --------------------------
Assets:US:ETrade:Cash 7684.10 USD
Assets:US:ETrade:V 10.00 V {231.59 USD}
Equity:OpeningBalances -10000.00 USD
On Friday, September 24, 2021 at 10:06:52 PM UTC-7 [email protected] wrote:
> I was going to send a link to that section; you found it.
> The C++ parser is in branch "master" but it's not hooked up yet, it won't
> be running.
> I'm still working on finishing it (actually, these days).
>
> My plan is to finish it, then to translate the booking code to C++ (with
> improvements in the design doc), and make a one-time conversion to Python
> objects, so we can use all the existing code and hook up the new parser.
>
> Just use V_ in the meantime.
> (Or trade options instead of single stocks... "V_211015_P222.5" is a
> valid currency symbol... you can sell ATM puts and size up a bit for
> equivalent delta exposure with a theta component. Okay okay, never mind...)
>
>
>
>
>
> On Sat, Sep 25, 2021 at 12:35 AM Jim Robinson <[email protected]> wrote:
>
>> Huh, digging around in the source code I see it very specifically talks
>> about "V" as being a valid currency symbol in v3:
>>
>>
>> https://github.com/beancount/beancount/blob/master/beancount/parser/lexer.l#L161-L204
>>
>> It looks like my install is 2.3.4 (it was recommended on the homepage
>> that we not use the master branch)
>>
>> On Friday, September 24, 2021 at 9:18:26 PM UTC-7 Jim Robinson wrote:
>>
>>> Oh, and please forgive the unbalanced transaction issue, I was just
>>> messing around with the example documentation and hadn't corrected that
>>> problem when I ran into the 'Invalid token' issue I was complaining about.
>>>
>>> On Friday, September 24, 2021 at 9:13:23 PM UTC-7 Jim Robinson wrote:
>>>
>>>> At first glance I can't see that there is a way to override what
>>>> beancount is doing here.
>>>>
>>>> It appears as though it has some sort of an opinionated parsers as to
>>>> what is considered valid for a Ticker Symbol, and it won't accept "V" (the
>>>> symbol for Visa). It appears to be wanting an all-uppercase > 1 length
>>>> symbol, which isn't really valid for the real world.
>>>>
>>>> Is there a way to override this behavior? I'm not spotting anything on
>>>> my first pass of the options documentation.
>>>>
>>>> The following ledger fails to parse, complaining about an invalid token
>>>> 'V' (specifically it is complaining about the use of the ticker symbol as
>>>> a
>>>> unit in "10.00 V", it's fine with the account name).
>>>>
>>>> 2014-02-16 open Assets:US:ETrade:Cash
>>>> 2014-02-16 open Assets:US:ETrade:V
>>>> 2014-02-16 open Expenses:Financial:Commissions
>>>> 2014-02-16 open Equity:OpeningBalances
>>>>
>>>> 2014-02-16 * "Opening Balance"
>>>> Assets:US:ETrade:Cash 10,000.00 USD
>>>> Equity:OpeningBalances
>>>>
>>>> 2014-02-16 * Example purchase of stock symbol V (Visa)
>>>> Assets:US:ETrade:V 10.00 V {231.59 USD}
>>>> Assets:US:ETrade:Cash -23,159.00 USD
>>>> Expenses:Financial:Commissions 9.95 USD
>>>>
>>>> --
>> You received this message because you are subscribed to the Google Groups
>> "Beancount" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/beancount/2436d5fd-314c-45c5-8853-8880588661afn%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/beancount/2436d5fd-314c-45c5-8853-8880588661afn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
--
You received this message because you are subscribed to the Google Groups
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beancount/5c94994f-6f92-4c56-bdb1-3c47003882dfn%40googlegroups.com.